summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes3
-rw-r--r--asm/credits.s441
-rw-r--r--asm/daycare.s64
-rw-r--r--asm/mon_markings.s12
-rw-r--r--asm/naming_screen.s16
-rw-r--r--asm/pokeblock.s4
-rw-r--r--asm/pokenav.s4
-rw-r--r--asm/porthole.s297
-rw-r--r--asm/roulette.s16
-rw-r--r--data/battle_anim_813F0F4.s24
-rw-r--r--data/battle_message.s123
-rw-r--r--data/decoration.s1
-rw-r--r--data/evolution_graphics.s30
-rw-r--r--data/field_special_scene.s (renamed from data/truck_scene.s)0
-rw-r--r--data/graphics.s4
-rw-r--r--data/item_menu.s5
-rw-r--r--data/item_use.s21
-rw-r--r--data/mail.s3
-rw-r--r--data/mauville_old_man.s21
-rw-r--r--data/menu_cursor.s262
-rw-r--r--data/menu_helpers.s2
-rw-r--r--data/mon_markings.s21
-rw-r--r--data/naming_screen.s97
-rw-r--r--data/option_menu.s5
-rw-r--r--data/player_pc.s9
-rw-r--r--data/pokeblock.s45
-rw-r--r--data/pokedex_area_screen.s9
-rw-r--r--data/pokemon_menu.s17
-rw-r--r--data/pokemon_summary_screen.s2
-rw-r--r--data/pokenav.s457
-rw-r--r--data/reset_rtc_screen.s8
-rw-r--r--data/rom_8077ABC.s10
-rw-r--r--data/rom_8080874.s5
-rw-r--r--data/roulette.s207
-rw-r--r--data/save_failed_screen.s6
-rw-r--r--data/secret_base.s60
-rw-r--r--data/starter_choose.s16
-rw-r--r--data/text/credits.inc51
-rw-r--r--data/title_screen.s34
-rw-r--r--data/trainer_card.s3
-rw-r--r--graphics/interface/83E5948.pal19
-rw-r--r--graphics/misc/option_menu_equals_sign.pngbin0 -> 81 bytes
-rw-r--r--graphics/misc/option_menu_text.pal35
-rw-r--r--graphics/pokenav/83DFECC.pal19
-rw-r--r--graphics/pokenav/83DFEEC.pngbin0 -> 99 bytes
-rw-r--r--graphics/pokenav/83DFF8C.binbin0 -> 1280 bytes
-rw-r--r--graphics/pokenav/83E003C.pal19
-rw-r--r--graphics/pokenav/83E005C.pngbin0 -> 79 bytes
-rw-r--r--graphics/pokenav/83E007C.binbin0 -> 1360 bytes
-rw-r--r--graphics/pokenav/83E0124_pal.binbin0 -> 32 bytes
-rw-r--r--graphics/pokenav/83E0144_pal.binbin0 -> 32 bytes
-rw-r--r--graphics/pokenav/83E0164.binbin0 -> 72 bytes
-rw-r--r--graphics/pokenav/83E01AC.bin1
-rw-r--r--graphics/pokenav/83E01F4.bin1
-rw-r--r--graphics/pokenav/83E0254.pal19
-rw-r--r--graphics/pokenav/83E0274.pal19
-rw-r--r--graphics/pokenav/83E02B4.pal19
-rw-r--r--graphics/pokenav/83E02D4.binbin0 -> 64 bytes
-rw-r--r--graphics/pokenav/83E0314.pal19
-rw-r--r--graphics/pokenav/83E03A8.pal19
-rw-r--r--graphics/pokenav/83E03C8.binbin0 -> 68 bytes
-rw-r--r--graphics/pokenav/83E3780.pngbin0 -> 88 bytes
-rw-r--r--graphics/pokenav/83E3BC0.binbin0 -> 32 bytes
-rw-r--r--graphics/pokenav/83E42D8.pal19
-rw-r--r--graphics/pokenav/83E4678.pal19
-rw-r--r--graphics/roulette/83F86BC.pal259
-rw-r--r--graphics/roulette/83F88BC.binbin0 -> 768 bytes
-rw-r--r--graphics/roulette/83F907C.pal19
-rw-r--r--graphics/roulette/83F909C.pal19
-rw-r--r--graphics/roulette/83F90BC.pal19
-rw-r--r--graphics/roulette/83F90DC.pal19
-rwxr-xr-xgraphics/roulette/center.pal19
-rw-r--r--graphics/roulette/wheel.pngbin0 -> 3248 bytes
-rw-r--r--graphics/roulette/wheel_map.binbin0 -> 1024 bytes
-rw-r--r--graphics/unknown/83764A4.pal7
-rw-r--r--graphics/unknown/83C170C.pal19
-rwxr-xr-xgraphics/unknown/unknown_E81098.bin189
-rw-r--r--include/asm.inc.h3
-rw-r--r--include/field_special_scene.h (renamed from include/truck_scene.h)6
-rw-r--r--include/rom4.h4
-rw-r--r--ld_script.txt7
-rw-r--r--shared_syms.txt1
-rw-r--r--src/bard_music.c199
-rw-r--r--src/battle_ai.c166
-rw-r--r--src/berry_tag_screen.c571
-rw-r--r--src/contest_painting.c1186
-rw-r--r--src/credits.c432
-rw-r--r--src/daycare.c33
-rw-r--r--src/field_special_scene.c (renamed from src/truck_scene.c)123
-rw-r--r--src/menu_cursor.c4
-rw-r--r--src/rom4.c7
-rw-r--r--src/save_failed_screen.c38
-rw-r--r--src/starter_choose.c4
-rw-r--r--sym_ewram.txt3
94 files changed, 3067 insertions, 2931 deletions
diff --git a/.gitattributes b/.gitattributes
index 7c8d2699d..b447e32c3 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -13,3 +13,6 @@ Makefile text eol=lf
*.png binary
*.bin binary
+
+*.h linguist-language=C
+*.inc linguist-language=Assembly
diff --git a/asm/credits.s b/asm/credits.s
index fe9a93668..4c6f9d5d8 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -6,447 +6,6 @@
.text
- thumb_func_start sub_81441B8
-sub_81441B8: @ 81441B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081441E4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0xA
- bhi _08144218
- lsls r0, 2
- ldr r1, _081441E8 @ =_081441EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081441E4: .4byte gTasks
-_081441E8: .4byte _081441EC
- .align 2, 0
-_081441EC:
- .4byte _08144218
- .4byte _08144258
- .4byte _08144278
- .4byte _08144358
- .4byte _0814438C
- .4byte _081443F8
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144428
-_08144218:
- ldr r0, _08144250 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0814422A
- b _08144446
-_0814422A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x8]
- movs r1, 0x58
- strh r1, [r0, 0xE]
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r2, [r0, 0x24]
- ldr r0, _08144254 @ =gUnknown_02039320
- strh r2, [r0]
- b _08144446
- .align 2, 0
-_08144250: .4byte gPaletteFade
-_08144254: .4byte gUnknown_02039320
-_08144258:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144270
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _08144446
-_08144270:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144446
-_08144278:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08144320 @ =0x0000feff
- ands r0, r1
- strh r0, [r2]
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r6
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r6
- ldr r1, [r4]
- ldr r0, _08144324 @ =sub_8143B68
- mov r8, r2
- cmp r1, r0
- bne _08144352
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x33
- bgt _0814434C
- movs r4, 0
- ldr r7, _08144328 @ =gCreditsEntryPointerTable
- adds r6, r3, 0
-_081442B0:
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r4
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r2, r4, 25
- movs r3, 0x90
- lsls r3, 20
- adds r2, r3
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _081442B0
- ldr r3, _0814432C @ =gTasks
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x24]
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08144334
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144330 @ =0x0000328d
- b _0814433A
- .align 2, 0
-_08144320: .4byte 0x0000feff
-_08144324: .4byte sub_8143B68
-_08144328: .4byte gCreditsEntryPointerTable
-_0814432C: .4byte gTasks
-_08144330: .4byte 0x0000328d
-_08144334:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144348 @ =0x00001967
-_0814433A:
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_08144348: .4byte 0x00001967
-_0814434C:
- movs r0, 0xA
- strh r0, [r3, 0x8]
- b _08144446
-_08144352:
- movs r0, 0
- strh r0, [r4, 0x24]
- b _08144446
-_08144358:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08144388 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x82
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08144446
- .align 2, 0
-_08144388: .4byte gPaletteFade
-_0814438C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081443A4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08144446
-_081443A4:
- ldrb r0, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- bl sub_8144454
- lsls r0, 24
- cmp r0, 0
- beq _081443BA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08144446
-_081443BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _081443E0
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443DC @ =0x0000328d
- b _081443E6
- .align 2, 0
-_081443DC: .4byte 0x0000328d
-_081443E0:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443F4 @ =0x00001967
-_081443E6:
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_081443F4: .4byte 0x00001967
-_081443F8:
- ldr r0, _08144420 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08144424 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- b _08144446
- .align 2, 0
-_08144420: .4byte gPaletteFade
-_08144424: .4byte gTasks
-_08144428:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r5, 0
- bl DestroyTask
-_08144446:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81441B8
-
- thumb_func_start sub_8144454
-sub_8144454: @ 8144454
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r5, r2, 0
- ldr r4, _08144508 @ =gTasks
- cmp r3, 0x6
- bne _08144474
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144474:
- cmp r3, 0xC
- bne _08144486
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
-_08144486:
- cmp r3, 0x12
- bne _08144496
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144496:
- cmp r3, 0x18
- bne _081444AA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444AA:
- cmp r3, 0x1E
- bne _081444BA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444BA:
- cmp r3, 0x23
- bne _081444CE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444CE:
- cmp r3, 0x28
- bne _081444DE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444DE:
- cmp r6, 0x2E
- bne _081444F2
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x4
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444F2:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0814450C
- movs r0, 0
- b _0814450E
- .align 2, 0
-_08144508: .4byte gTasks
-_0814450C:
- movs r0, 0x1
-_0814450E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144454
-
thumb_func_start sub_8144514
sub_8144514: @ 8144514
push {r4-r7,lr}
diff --git a/asm/daycare.s b/asm/daycare.s
index 80e7c46e8..d78757d8f 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,70 +6,6 @@
.text
- thumb_func_start pokemon_get_nick
-pokemon_get_nick: @ 80412B0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick
-
- thumb_func_start pokemon_get_nick_
-pokemon_get_nick_: @ 80412D0
- push {r4,lr}
- sub sp, 0x14
- adds r4, r1, 0
- movs r1, 0x2
- mov r2, sp
- bl GetBoxMonData
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy10
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end pokemon_get_nick_
-
- thumb_func_start daycare_count_pokemon
-daycare_count_pokemon: @ 80412F0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r4, 0
-_080412F8:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041310
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08041310:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _080412F8
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end daycare_count_pokemon
-
thumb_func_start sub_8041324
sub_8041324: @ 8041324
push {r4-r7,lr}
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index 6d5322b91..28bc116a9 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -560,7 +560,7 @@ sub_80F761C: @ 80F761C
add r2, sp, 0x54
ldrh r2, [r2]
strh r2, [r4, 0x2]
- ldr r0, _080F782C @ =gUnknown_083E5214
+ ldr r0, _080F782C @ =gOamData_83E5214
str r0, [r4, 0x4]
ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC
str r0, [r4, 0x8]
@@ -640,7 +640,7 @@ _080F7718:
str r0, [r4, 0x8]
ldr r0, _080F7844 @ =sub_80F78CC
str r0, [r4, 0x14]
- ldr r0, _080F7848 @ =gUnknown_083E521C
+ ldr r0, _080F7848 @ =gOamData_83E521C
str r0, [r4, 0x4]
movs r5, 0
ldr r0, [sp, 0x58]
@@ -736,14 +736,14 @@ _080F7770:
_080F7820: .4byte gUnknown_020388B8
_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
_080F7828: .4byte gUnknown_08E966B8
-_080F782C: .4byte gUnknown_083E5214
+_080F782C: .4byte gOamData_83E5214
_080F7830: .4byte gSpriteAnimTable_83E52AC
_080F7834: .4byte gDummySpriteAffineAnimTable
_080F7838: .4byte nullsub_65
_080F783C: .4byte gSprites
_080F7840: .4byte gSpriteAnimTable_83E5274
_080F7844: .4byte sub_80F78CC
-_080F7848: .4byte gUnknown_083E521C
+_080F7848: .4byte gOamData_83E521C
_080F784C: .4byte SpriteCallbackDummy
_080F7850:
ldr r0, _080F785C @ =gUnknown_020388B8
@@ -927,7 +927,7 @@ sub_80F7960: @ 80F7960
movs r2, 0
strh r6, [r0]
strh r1, [r0, 0x2]
- ldr r0, _080F79E4 @ =gUnknown_083E52B4
+ ldr r0, _080F79E4 @ =gOamData_83E52B4
str r0, [sp, 0x4]
ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C
str r0, [sp, 0x8]
@@ -961,7 +961,7 @@ sub_80F7960: @ 80F7960
.align 2, 0
_080F79DC: .4byte gUnknown_083E4A14
_080F79E0: .4byte 0xffff0000
-_080F79E4: .4byte gUnknown_083E52B4
+_080F79E4: .4byte gOamData_83E52B4
_080F79E8: .4byte gSpriteAnimTable_83E533C
_080F79EC: .4byte gDummySpriteAffineAnimTable
_080F79F0: .4byte nullsub_65
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 76ee536c7..aeec1b4bc 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -2253,7 +2253,7 @@ sub_80B6A80: @ 80B6A80
lsls r4, 2
ldr r5, _080B6B00 @ =gSprites
adds r4, r5
- ldr r1, _080B6B04 @ =gUnknown_083CE558
+ ldr r1, _080B6B04 @ =gSubspriteTables_83CE558
adds r0, r4, 0
bl SetSubspriteTables
ldr r0, _080B6B08 @ =gSpriteTemplate_83CE5F8
@@ -2268,7 +2268,7 @@ sub_80B6A80: @ 80B6A80
adds r2, r0
lsls r2, 2
adds r2, r5
- ldr r1, _080B6B0C @ =gUnknown_083CE560
+ ldr r1, _080B6B0C @ =gSubspriteTables_83CE560
adds r0, r2, 0
bl SetSubspriteTables
ldr r0, _080B6B10 @ =gSpriteTemplate_83CE5E0
@@ -2297,9 +2297,9 @@ sub_80B6A80: @ 80B6A80
_080B6AF8: .4byte gSpriteTemplate_83CE5C8
_080B6AFC: .4byte 0x02000000
_080B6B00: .4byte gSprites
-_080B6B04: .4byte gUnknown_083CE558
+_080B6B04: .4byte gSubspriteTables_83CE558
_080B6B08: .4byte gSpriteTemplate_83CE5F8
-_080B6B0C: .4byte gUnknown_083CE560
+_080B6B0C: .4byte gSubspriteTables_83CE560
_080B6B10: .4byte gSpriteTemplate_83CE5E0
thumb_func_end sub_80B6A80
@@ -2541,7 +2541,7 @@ sub_80B6CA8: @ 80B6CA8
lsls r0, 2
ldr r4, _080B6CF8 @ =gSprites
adds r0, r4
- ldr r5, _080B6CFC @ =gUnknown_083CE578
+ ldr r5, _080B6CFC @ =gSubspriteTables_83CE578
adds r1, r5, 0
bl SetSubspriteTables
ldr r0, _080B6D00 @ =gSpriteTemplate_83CE628
@@ -2564,7 +2564,7 @@ sub_80B6CA8: @ 80B6CA8
.align 2, 0
_080B6CF4: .4byte gSpriteTemplate_83CE610
_080B6CF8: .4byte gSprites
-_080B6CFC: .4byte gUnknown_083CE578
+_080B6CFC: .4byte gSubspriteTables_83CE578
_080B6D00: .4byte gSpriteTemplate_83CE628
thumb_func_end sub_80B6CA8
@@ -2816,7 +2816,7 @@ sub_80B6EBC: @ 80B6EBC
lsls r4, 2
ldr r0, _080B6EF4 @ =gSprites
adds r4, r0
- ldr r1, _080B6EF8 @ =gUnknown_083CE580
+ ldr r1, _080B6EF8 @ =gSubspriteTables_83CE580
adds r0, r4, 0
bl SetSubspriteTables
ldrb r0, [r4, 0x5]
@@ -2829,7 +2829,7 @@ sub_80B6EBC: @ 80B6EBC
.align 2, 0
_080B6EF0: .4byte gSpriteTemplate_83CE688
_080B6EF4: .4byte gSprites
-_080B6EF8: .4byte gUnknown_083CE580
+_080B6EF8: .4byte gSubspriteTables_83CE580
thumb_func_end sub_80B6EBC
thumb_func_start sub_80B6EFC
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
index d39a4b3ca..55bc29dc5 100644
--- a/asm/pokeblock.s
+++ b/asm/pokeblock.s
@@ -2280,7 +2280,7 @@ _0810C8F2:
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
- ldr r0, _0810C914 @ =gUnknown_083F7F70
+ ldr r0, _0810C914 @ =gSpriteAffineAnimTable_83F7F70
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
@@ -2289,7 +2289,7 @@ _0810C8F2:
strh r5, [r4, 0x30]
b _0810C944
.align 2, 0
-_0810C914: .4byte gUnknown_083F7F70
+_0810C914: .4byte gSpriteAffineAnimTable_83F7F70
_0810C918:
ldrh r0, [r4, 0x30]
adds r0, 0x1
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 49d627336..966285ab3 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -12455,7 +12455,7 @@ _080F1F4A:
movs r1, 0x3
orrs r0, r1
strb r0, [r4, 0x1]
- ldr r0, _080F1FB0 @ =gUnknown_083E4450
+ ldr r0, _080F1FB0 @ =gSpriteAffineAnimTable_83E4450
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
@@ -12489,7 +12489,7 @@ _080F1F4A:
b _080F1FE4
.align 2, 0
_080F1FAC: .4byte 0x00006dad
-_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB0: .4byte gSpriteAffineAnimTable_83E4450
_080F1FB4: .4byte sub_80F2240
_080F1FB8: .4byte gUnknown_083DFEC4
_080F1FBC: .4byte 0x0000030f
diff --git a/asm/porthole.s b/asm/porthole.s
deleted file mode 100644
index 5936433e6..000000000
--- a/asm/porthole.s
+++ /dev/null
@@ -1,297 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C7754
-sub_80C7754: @ 80C7754
- push {r4-r6,lr}
- sub sp, 0xC
- mov r4, sp
- adds r4, 0x5
- mov r5, sp
- adds r5, 0x6
- add r6, sp, 0x8
- add r0, sp, 0x4
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_810D9EC
- lsls r0, 24
- cmp r0, 0
- bne _080C7796
- add r0, sp, 0x4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r2, 0x1
- negs r2, r2
- movs r3, 0
- ldrsb r3, [r5, r3]
- movs r4, 0
- ldrsb r4, [r6, r4]
- str r4, [sp]
- bl warp1_set
- movs r0, 0x1
- b _080C7798
-_080C7796:
- movs r0, 0
-_080C7798:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7754
-
- thumb_func_start sub_80C77A0
-sub_80C77A0: @ 80C77A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C77CC @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, _080C77D0 @ =0x000040b4
- bl GetVarPointer
- adds r6, r0, 0
- ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4
- movs r0, 0
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080C77FC
- cmp r2, 0x1
- bgt _080C77D8
- cmp r2, 0
- beq _080C77E2
- b _080C7896
- .align 2, 0
-_080C77CC: .4byte gTasks + 0x8
-_080C77D0: .4byte 0x000040b4
-_080C77D4: .4byte gSaveBlock1 + 0x4
-_080C77D8:
- cmp r2, 0x2
- beq _080C783E
- cmp r2, 0x3
- beq _080C7878
- b _080C7896
-_080C77E2:
- ldr r0, _080C77F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C7896
- strh r2, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C77F8: .4byte gPaletteFade
-_080C77FC:
- ldr r0, _080C7830 @ =gMain
- ldrh r1, [r0, 0x2E]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C780A
- strh r2, [r4, 0x2]
-_080C780A:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- movs r0, 0xFF
- bl sub_80A212C
- lsls r0, 24
- cmp r0, 0
- beq _080C7896
- movs r0, 0x1
- bl sub_810D9B0
- cmp r0, 0x1
- bne _080C783A
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7834
- movs r0, 0x9
- b _080C7836
- .align 2, 0
-_080C7830: .4byte gMain
-_080C7834:
- movs r0, 0xA
-_080C7836:
- strh r0, [r6]
- b _080C7846
-_080C783A:
- movs r0, 0x2
- strh r0, [r4]
-_080C783E:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C784C
-_080C7846:
- movs r0, 0x3
- strh r0, [r4]
- b _080C7896
-_080C784C:
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7860
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C785C @ =gUnknown_083D295F
- b _080C7866
- .align 2, 0
-_080C785C: .4byte gUnknown_083D295F
-_080C7860:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C7874 @ =gUnknown_083D2961
-_080C7866:
- movs r0, 0xFF
- bl exec_movement
- movs r0, 0x1
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C7874: .4byte gUnknown_083D2961
-_080C7878:
- ldr r0, _080C789C @ =0x00004001
- bl FlagReset
- movs r0, 0x80
- lsls r0, 7
- bl FlagReset
- movs r0, 0
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl sp13E_warp_to_last_warp
- adds r0, r5, 0
- bl DestroyTask
-_080C7896:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C789C: .4byte 0x00004001
- thumb_func_end sub_80C77A0
-
- thumb_func_start sub_80C78A0
-sub_80C78A0: @ 80C78A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080C78F4 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8C
- movs r2, 0x70
- movs r3, 0x50
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C78F8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080C78FC @ =0x000040b4
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _080C7900
- movs r0, 0x4
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- b _080C7912
- .align 2, 0
-_080C78F4: .4byte SpriteCallbackDummy
-_080C78F8: .4byte gSprites
-_080C78FC: .4byte 0x000040b4
-_080C7900:
- movs r0, 0x3
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_080C7912:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C78A0
-
- thumb_func_start sub_80C791C
-sub_80C791C: @ 80C791C
- push {lr}
- bl sub_80C78A0
- ldr r2, _080C794C @ =gMapObjects
- ldr r0, _080C7950 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl pal_fill_black
- ldr r0, _080C7954 @ =sub_80C77A0
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_080C794C: .4byte gMapObjects
-_080C7950: .4byte gPlayerAvatar
-_080C7954: .4byte sub_80C77A0
- thumb_func_end sub_80C791C
-
- thumb_func_start sub_80C7958
-sub_80C7958: @ 80C7958
- push {lr}
- ldr r0, _080C7990 @ =0x0000082d
- bl FlagSet
- ldr r0, _080C7994 @ =0x00004001
- bl FlagSet
- movs r0, 0x80
- lsls r0, 7
- bl FlagSet
- ldr r0, _080C7998 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- bl sub_80C7754
- bl sub_8080F9C
- pop {r0}
- bx r0
- .align 2, 0
-_080C7990: .4byte 0x0000082d
-_080C7994: .4byte 0x00004001
-_080C7998: .4byte gSaveBlock1
- thumb_func_end sub_80C7958
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette.s b/asm/roulette.s
index 0704caf7f..6382ecf0b 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -369,7 +369,7 @@ _081153D0:
movs r1, 0xC0
lsls r1, 19
bl LZ77UnCompVram
- ldr r0, _08115434 @ =gUnknown_08E81098
+ ldr r0, _08115434 @ =gRouletteWheelTiles
ldr r1, _08115438 @ =0x06004000
bl LZ77UnCompVram
ldr r1, _0811543C @ =gMain
@@ -382,7 +382,7 @@ _08115424: .4byte 0x00004686
_08115428: .4byte 0x00004401
_0811542C: .4byte 0x0000060a
_08115430: .4byte gUnknown_08E8096C
-_08115434: .4byte gUnknown_08E81098
+_08115434: .4byte gRouletteWheelTiles
_08115438: .4byte 0x06004000
_0811543C: .4byte gMain
_08115440: .4byte 0x0000043c
@@ -3571,7 +3571,7 @@ _08116DEE:
cmp r3, 0x3
bls _08116DC8
movs r2, 0
- ldr r0, _08116E54 @ =gUnknown_083F8D94
+ ldr r0, _08116E54 @ =gUnknown_083F8D90 + 0x4
add r0, r12
ldr r7, [r0]
ldr r4, _08116E58 @ =0x02019016
@@ -3617,7 +3617,7 @@ _08116E38:
_08116E48: .4byte 0x02019000
_08116E4C: .4byte gTasks
_08116E50: .4byte gUnknown_083F8D90
-_08116E54: .4byte gUnknown_083F8D94
+_08116E54: .4byte gUnknown_083F8D90 + 0x4
_08116E58: .4byte 0x02019016
thumb_func_end sub_8116D54
@@ -8689,10 +8689,10 @@ _081196A8:
cmp r5, r9
bcs _0811970E
ldr r6, _08119734 @ =0x02019000
- ldr r7, _08119738 @ =gUnknown_083F8C0C
+ ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC
_081196B6:
lsls r0, r3, 3
- ldr r1, _0811973C @ =gUnknown_083F8D94
+ ldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4
adds r0, r1
ldr r1, [r6, 0x8]
ldr r2, [r0]
@@ -8757,8 +8757,8 @@ _0811970E:
b _08119766
.align 2, 0
_08119734: .4byte 0x02019000
-_08119738: .4byte gUnknown_083F8C0C
-_0811973C: .4byte gUnknown_083F8D94
+_08119738: .4byte gUnknown_083F8C00 + 0xC
+_0811973C: .4byte gUnknown_083F8D90 + 0x4
_08119740: .4byte 0x0201901b
_08119744:
ldr r0, [sp, 0x10]
diff --git a/data/battle_anim_813F0F4.s b/data/battle_anim_813F0F4.s
index 849fd8376..de29622ad 100644
--- a/data/battle_anim_813F0F4.s
+++ b/data/battle_anim_813F0F4.s
@@ -79,7 +79,7 @@ gSpriteAnimTable_840B360:: @ 840B360
.4byte gSpriteAnim_840B358
gUnknown_0840B378:: @ 840B378
- .incbin "baserom.gba", 0x0040b378, 0xc
+ .byte 0, 0, 0, 5, 1, 2, 2, 3, 5, 5, 4, 4
.align 2
gUnknown_0840B384:: @ 840B384
@@ -144,8 +144,28 @@ gSpriteTemplate_840B4A4:: @ 840B4A4
gSpriteTemplate_840B4BC:: @ 840B4BC
spr_template 55031, 55031, gOamData_837DF24, gSpriteAnimTable_840B360, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ .align 1
gUnknown_0840B4D4:: @ 840B4D4
- .incbin "baserom.gba", 0x0040b4d4, 0x28
+ .2byte 0x7ADF
+ .2byte 0x7AF0
+ .2byte 0x53D7
+ .2byte 0x3FFF
+ .2byte 0x7297
+ .2byte 0x67F5
+ .2byte 0x7B2C
+ .2byte 0x2B7E
+ .2byte 0x431F
+ .2byte 0x7BDD
+ .2byte 0x2A3F
+ .2byte 0x293F
+ .2byte 0x0
+ .2byte 0x201
+ .2byte 0x403
+ .2byte 0x101
+ .2byte 0x100
+ .2byte 0x503
+ .2byte 0x506
+ .2byte 0x4
.align 2
gBattleAnimSpriteTemplate_840B4FC:: @ 840B4FC
diff --git a/data/battle_message.s b/data/battle_message.s
index 78d7c4d95..0ad61bfc0 100644
--- a/data/battle_message.s
+++ b/data/battle_message.s
@@ -5,8 +5,127 @@
.include "data/text/battle_strings.inc"
+ .align 1
gUnknown_084016BC:: @ 84016BC
- .incbin "baserom.gba", 0x004016bc, 0xec
+ .2byte 0xE
+ .2byte 0x46
+ .2byte 0x4A
+ .2byte 0x6A
+ .2byte 0x6B
+ .2byte 0x6C
+ .2byte 0x6E
+ .2byte 0x6F
+ .2byte 0x79
+ .2byte 0x7B
+ .2byte 0x7D
+ .2byte 0x94
+ .2byte 0x96
+ .2byte 0x97
+ .2byte 0x9B
+ .2byte 0x9C
+ .2byte 0x9F
+ .2byte 0xA4
+ .2byte 0xAA
+ .2byte 0xAD
+ .2byte 0xB6
+ .2byte 0xBF
+ .2byte 0xCB
+ .2byte 0xCD
+ .2byte 0xCF
+ .2byte 0xD6
+ .2byte 0xED
+ .2byte 0xF4
+ .2byte 0xF5
+ .2byte 0x10A
+ .2byte 0x10F
+ .2byte 0x112
+ .2byte 0x113
+ .2byte 0x11A
+ .2byte 0x125
+ .2byte 0x136
+ .2byte 0x13C
+ .2byte 0x140
+ .2byte 0x149
+ .2byte 0x14A
+ .2byte 0x14E
+ .2byte 0x154
+ .2byte 0x0
+ .2byte 0x64
+ .2byte 0x69
+ .2byte 0x75
+ .2byte 0x85
+ .2byte 0xAF
+ .2byte 0x10D
+ .2byte 0x153
+ .2byte 0x0
+ .2byte 0x60
+ .2byte 0x61
+ .2byte 0x66
+ .2byte 0x68
+ .2byte 0x8C
+ .2byte 0x90
+ .2byte 0xA5
+ .2byte 0xB8
+ .2byte 0x10C
+ .2byte 0x111
+ .2byte 0x118
+ .2byte 0x119
+ .2byte 0x129
+ .2byte 0x12A
+ .2byte 0x12C
+ .2byte 0x139
+ .2byte 0x15A
+ .2byte 0x15B
+ .2byte 0x0
+ .2byte 0x1
+ .2byte 0xA
+ .2byte 0xB
+ .2byte 0x11
+ .2byte 0x13
+ .2byte 0x14
+ .2byte 0x15
+ .2byte 0x1E
+ .2byte 0x23
+ .2byte 0x25
+ .2byte 0x27
+ .2byte 0x2B
+ .2byte 0x2C
+ .2byte 0x2D
+ .2byte 0x2E
+ .2byte 0x2F
+ .2byte 0x40
+ .2byte 0x47
+ .2byte 0x51
+ .2byte 0x59
+ .2byte 0x5A
+ .2byte 0x5B
+ .2byte 0x5C
+ .2byte 0x67
+ .2byte 0x76
+ .2byte 0x7A
+ .2byte 0x80
+ .2byte 0x84
+ .2byte 0x8B
+ .2byte 0x91
+ .2byte 0xA3
+ .2byte 0xA9
+ .2byte 0xAB
+ .2byte 0xAE
+ .2byte 0xC1
+ .2byte 0xCC
+ .2byte 0xD5
+ .2byte 0xF9
+ .2byte 0xFD
+ .2byte 0xFF
+ .2byte 0x100
+ .2byte 0x103
+ .2byte 0x104
+ .2byte 0x110
+ .2byte 0x11B
+ .2byte 0x141
+ .2byte 0x157
+ .2byte 0x0
+ .align 2
gUnknown_084017A8:: @ 84017A8
- .incbin "baserom.gba", 0x004017a8, 0x8
+ .4byte -1, -1
diff --git a/data/decoration.s b/data/decoration.s
index 6bbe52703..0ca44c847 100644
--- a/data/decoration.s
+++ b/data/decoration.s
@@ -261,4 +261,5 @@ gUnknown_083ECAA0:: @ 83ECAA0
.4byte sub_80FED3C
@ XXX: what is this?
+ .align 2
.4byte 0x2000000
diff --git a/data/evolution_graphics.s b/data/evolution_graphics.s
index 1704e4fdb..e362b4dba 100644
--- a/data/evolution_graphics.s
+++ b/data/evolution_graphics.s
@@ -38,5 +38,33 @@ gSpriteAnimTable_8416EB4:: @ 8416EB4
gSpriteTemplate_8416EB8:: @ 8416EB8
spr_template 1001, 1001, gOamData_8416EA4, gSpriteAnimTable_8416EB4, NULL, gDummySpriteAffineAnimTable, nullsub_84
+ .align 1
gUnknown_08416ED0:: @ 8416ED0
- .incbin "baserom.gba", 0x00416ed0, 0x38
+ .2byte 0x3C0
+ .2byte 0x380
+ .2byte 0x340
+ .2byte 0x300
+ .2byte 0x2C0
+ .2byte 0x280
+ .2byte 0x240
+ .2byte 0x200
+ .2byte 0x1C0
+ .2byte 0x180
+ .2byte 0x140
+ .2byte 0x100
+ .2byte 0xFFFC
+ .2byte 0x10
+ .2byte 0xFFFD
+ .2byte 0x30
+ .2byte 0xFFFE
+ .2byte 0x50
+ .2byte 0xFFFF
+ .2byte 0x70
+ .2byte 0x1
+ .2byte 0x70
+ .2byte 0x2
+ .2byte 0x50
+ .2byte 0x3
+ .2byte 0x30
+ .2byte 0x4
+ .2byte 0x10
diff --git a/data/truck_scene.s b/data/field_special_scene.s
index 9d3958924..9d3958924 100644
--- a/data/truck_scene.s
+++ b/data/field_special_scene.s
diff --git a/data/graphics.s b/data/graphics.s
index f597b1248..5111c4b99 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -3401,8 +3401,8 @@ gUnknown_08E8096C:: @ 8E8096C
.incbin "graphics/unknown/unknown_E8096C.4bpp.lz"
.align 2
-gUnknown_08E81098:: @ 8E81098
- .incbin "graphics/unknown/unknown_E81098.bin.lz"
+gRouletteWheelTiles:: @ 8E81098
+ .incbin "graphics/roulette/wheel.8bpp.lz"
.align 2
gRouletteCenter_Gfx::
diff --git a/data/item_menu.s b/data/item_menu.s
index 141caa1bd..f66961b46 100644
--- a/data/item_menu.s
+++ b/data/item_menu.s
@@ -70,8 +70,9 @@ gUnknown_083C16FC:: @ 83C16FC
.4byte sub_80A65AC
.4byte sub_80A6618
+ .align 1
gUnknown_083C1704:: @ 83C1704
- .incbin "baserom.gba", 0x003c1704, 0x4
+ .2byte 0x41EE, 0x7FFF
gUnknown_083C1708:: @ 83C1708
.byte 4, 5
@@ -81,7 +82,7 @@ gUnknown_083C170A:: @ 83C170A
.align 2
gPalette_83C170C:: @ 83C170C
- .incbin "baserom.gba", 0x003c170c, 0x20
+ .incbin "graphics/unknown/83C170C.gbapal"
.align 2
gSpriteImage_83C172C:: @ 83C172C
diff --git a/data/item_use.s b/data/item_use.s
index 7e03e54d8..c4ab824a5 100644
--- a/data/item_use.s
+++ b/data/item_use.s
@@ -3,13 +3,28 @@
.section .rodata
+ .align 2
gUnknown_083D613C:: @ 83D613C
- .incbin "baserom.gba", 0x003d613c, 0x60
+ .byte 1, 0, 1, 0, 0, 0, 0, 0
+ .byte 1, 1, 1, 0, 0, 0, 0, 0
+ .byte 1, 0, 1, 1, 0, 0, 0, 0
+ .byte 1, 1, 1, 1, 0, 0, 0, 0
+ .byte 1, 0, 1, 0, 1, 0, 0, 0
+ .byte 1, 1, 1, 0, 1, 0, 0, 0
+ .byte 1, 0, 1, 1, 1, 0, 0, 0
+ .byte 1, 0, 1, 0, 1, 1, 0, 0
+ .byte 1, 1, 1, 1, 1, 0, 0, 0
+ .byte 1, 1, 1, 0, 1, 1, 0, 0
+ .byte 1, 0, 1, 1, 1, 1, 0, 0
+ .byte 1, 1, 1, 1, 1, 1, 0, 0
Unknown_83D619C::
- .incbin "baserom.gba", 0x003d619c, 0x20
+ .string "この チケットで ふねに のりほうだい\n"
+ .string "はやく のってみたいな$"
+
Unknown_83D61BC::
- .incbin "baserom.gba", 0x003d61bc, 0x20
+ .string "この チケットで ふねに のりほうだい\n"
+ .string "はやく のってみたいな$"
.align 2
gUnknown_083D61DC:: @ 83D61DC
diff --git a/data/mail.s b/data/mail.s
index 6bfc29c49..f5ae7f102 100644
--- a/data/mail.s
+++ b/data/mail.s
@@ -173,5 +173,6 @@ gUnknown_083E57A4:: @ 83E57A4
.byte 5, 15, 15, 52
.4byte Unknown_3E5790
+@ XXX: what is this?
.align 2
- .incbin "baserom.gba", 0x3e5804, 0x4
+ .4byte 0x2000000
diff --git a/data/mauville_old_man.s b/data/mauville_old_man.s
index 27ea5f311..dad75ebd0 100644
--- a/data/mauville_old_man.s
+++ b/data/mauville_old_man.s
@@ -3,8 +3,14 @@
.section .rodata
+ .align 1
gUnknown_083E537C:: @ 83E537C
- .incbin "baserom.gba", 0x003e537c, 0xc
+ ec_word SISTER
+ ec_word EATS
+ ec_word SWEETS
+ ec_word VORACIOUS
+ ec_word AND
+ ec_word DROOLING
.align 2
gUnknown_083E5388:: @ 83E5388
@@ -28,8 +34,14 @@ gUnknown_083E53A8:: @ 83E53A8
.4byte OtherText_LyingInGreenGrass
.4byte OtherText_SecretBasesWonderful
+ .align 1
gUnknown_083E53C8:: @ 83E53C8
- .incbin "baserom.gba", 0x003e53c8, 0x18
+ .2byte 0x0, 0
+ .2byte 0xC, 0
+ .2byte 0xD, 0
+ .2byte 0x12, 0
+ .2byte 0x13, 0
+ .2byte 0x15, 0
.align 2
gUnknown_083E53E0:: @ 83E53E0
@@ -72,5 +84,8 @@ gUnknown_083E53E0:: @ 83E53E0
gUnknown_083E5610:: @ 83E5610
.4byte 0x131, UnknownString_81B0763, UnknownString_81B0781, UnknownString_81B0797
+ .align 2
gUnknown_083E5620:: @ 83E5620
- .incbin "baserom.gba", 0x003e5620, 0xc
+ .4byte 0x24
+ .4byte gSaveBlock1 + 0x2D94
+ .4byte 0xC
diff --git a/data/menu_cursor.s b/data/menu_cursor.s
index 80d7e1210..0e12c519c 100644
--- a/data/menu_cursor.s
+++ b/data/menu_cursor.s
@@ -161,68 +161,172 @@ gSpriteTemplate_842F2B0:: @ 842F2B0
spr_template 65521, 0xFFFF, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
-Unknown_842F2C8: @ 842F2C8
- .incbin "baserom.gba", 0x0042f2c8, 0x10
-Unknown_842F2D8: @ 842F2D8
- .incbin "baserom.gba", 0x0042f2d8, 0x18
-Unknown_842F2F0: @ 842F2F0
- .incbin "baserom.gba", 0x0042f2f0, 0x20
-Unknown_842F310: @ 842F310
- .incbin "baserom.gba", 0x0042f310, 0x18
-Unknown_842F328: @ 842F328
- .incbin "baserom.gba", 0x0042f328, 0x18
-Unknown_842F340: @ 842F340
- .incbin "baserom.gba", 0x0042f340, 0x20
-Unknown_842F360: @ 842F360
- .incbin "baserom.gba", 0x0042f360, 0x20
-Unknown_842F380: @ 842F380
- .incbin "baserom.gba", 0x0042f380, 0x20
-Unknown_842F3A0: @ 842F3A0
- .incbin "baserom.gba", 0x0042f3a0, 0x20
-Unknown_842F3C0: @ 842F3C0
- .incbin "baserom.gba", 0x0042f3c0, 0x28
-Unknown_842F3E8: @ 842F3E8
- .incbin "baserom.gba", 0x0042f3e8, 0x28
-Unknown_842F410: @ 842F410
- .incbin "baserom.gba", 0x0042f410, 0x28
-Unknown_842F438: @ 842F438
- .incbin "baserom.gba", 0x0042f438, 0x28
-Unknown_842F460: @ 842F460
- .incbin "baserom.gba", 0x0042f460, 0x30
-Unknown_842F490: @ 842F490
- .incbin "baserom.gba", 0x0042f490, 0x30
-Unknown_842F4C0: @ 842F4C0
- .incbin "baserom.gba", 0x0042f4c0, 0x30
-Unknown_842F4F0: @ 842F4F0
- .incbin "baserom.gba", 0x0042f4f0, 0x30
-Unknown_842F520: @ 842F520
- .incbin "baserom.gba", 0x0042f520, 0x38
-Unknown_842F558: @ 842F558
- .incbin "baserom.gba", 0x0042f558, 0x18
-
- .4byte Unknown_842F2C8
- .4byte Unknown_842F2C8
- .4byte Unknown_842F2D8
- .4byte Unknown_842F2F0
- .4byte Unknown_842F310
- .4byte Unknown_842F328
- .4byte Unknown_842F340
- .4byte Unknown_842F360
- .4byte Unknown_842F380
- .4byte Unknown_842F3A0
- .4byte Unknown_842F3C0
- .4byte Unknown_842F3E8
- .4byte Unknown_842F410
- .4byte Unknown_842F438
- .4byte Unknown_842F460
- .4byte Unknown_842F490
- .4byte Unknown_842F4C0
- .4byte Unknown_842F4F0
- .4byte Unknown_842F520
+gSubspriteTable_842F2C8:: @ 842F2C8
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F2D8:: @ 842F2D8
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 2, 8x16
+ subsprite 9, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F2F0:: @ 842F2F0
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 2, 8x16
+ subsprite 9, 0, 0, 2, 8x16
+ subsprite 17, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F310:: @ 842F310
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 25, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F328:: @ 842F328
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F340:: @ 842F340
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 2, 8x16
+ subsprite 9, 0, 0, 6, 32x16
+ subsprite 41, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F360:: @ 842F360
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 17, 0, 0, 6, 32x16
+ subsprite 49, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F380:: @ 842F380
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 25, 0, 0, 6, 32x16
+ subsprite 57, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F3A0:: @ 842F3A0
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 65, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F3C0:: @ 842F3C0
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 2, 8x16
+ subsprite 9, 0, 0, 6, 32x16
+ subsprite 41, 0, 0, 6, 32x16
+ subsprite 73, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F3E8:: @ 842F3E8
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 49, 0, 0, 6, 32x16
+ subsprite 81, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F410:: @ 842F410
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 57, 0, 0, 6, 32x16
+ subsprite 89, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F438:: @ 842F438
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 65, 0, 0, 6, 32x16
+ subsprite 97, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F460:: @ 842F460
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 2, 8x16
+ subsprite 9, 0, 0, 6, 32x16
+ subsprite 41, 0, 0, 6, 32x16
+ subsprite 73, 0, 0, 6, 32x16
+ subsprite 105, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F490:: @ 842F490
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 65, 0, 0, 6, 32x16
+ subsprite 81, 0, 0, 6, 32x16
+ subsprite 113, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F4C0:: @ 842F4C0
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 65, 0, 0, 6, 32x16
+ subsprite 89, 0, 0, 6, 32x16
+ subsprite 121, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F4F0:: @ 842F4F0
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 6, 32x16
+ subsprite 33, 0, 0, 6, 32x16
+ subsprite 65, 0, 0, 6, 32x16
+ subsprite 97, 0, 0, 6, 32x16
+ subsprite 129, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F520:: @ 842F520
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 1, 0, 0, 2, 8x16
+ subsprite 9, 0, 0, 6, 32x16
+ subsprite 41, 0, 0, 6, 32x16
+ subsprite 73, 0, 0, 6, 32x16
+ subsprite 105, 0, 0, 6, 32x16
+ subsprite 137, 0, 0, 4, 8x16
+
+ .align 2
+gSubspriteTable_842F558:: @ 842F558
+ subsprite -1, 0, 0, 0, 8x16
+ subsprite 7, 0, 0, 6, 32x16
+ subsprite 35, 0, 0, 4, 8x16
+
+ .align 2
+gUnknown_0842F570:: @ 842F570
+ .4byte gSubspriteTable_842F2C8
+ .4byte gSubspriteTable_842F2C8
+ .4byte gSubspriteTable_842F2D8
+ .4byte gSubspriteTable_842F2F0
+ .4byte gSubspriteTable_842F310
+ .4byte gSubspriteTable_842F328
+ .4byte gSubspriteTable_842F340
+ .4byte gSubspriteTable_842F360
+ .4byte gSubspriteTable_842F380
+ .4byte gSubspriteTable_842F3A0
+ .4byte gSubspriteTable_842F3C0
+ .4byte gSubspriteTable_842F3E8
+ .4byte gSubspriteTable_842F410
+ .4byte gSubspriteTable_842F438
+ .4byte gSubspriteTable_842F460
+ .4byte gSubspriteTable_842F490
+ .4byte gSubspriteTable_842F4C0
+ .4byte gSubspriteTable_842F4F0
+ .4byte gSubspriteTable_842F520
.align 2
gUnknown_0842F5BC:: @ 842F5BC
- .4byte Unknown_842F558
+ .4byte gSubspriteTable_842F558
.align 2
gSubspriteTables_842F5C0:: @ 842F5C0
@@ -260,26 +364,26 @@ gSubspriteTables_842F5C0:: @ 842F5C0
.4byte 31, gMenuCursorSubsprites
.align 2
-gUnknown_0842F6C0:: @ 842F6C0
- .4byte 0x2, Unknown_842F2C8
- .4byte 0x2, Unknown_842F2C8
- .4byte 0x3, Unknown_842F2D8
- .4byte 0x4, Unknown_842F2F0
- .4byte 0x3, Unknown_842F310
- .4byte 0x3, Unknown_842F328
- .4byte 0x4, Unknown_842F340
- .4byte 0x4, Unknown_842F360
- .4byte 0x4, Unknown_842F380
- .4byte 0x4, Unknown_842F3A0
- .4byte 0x5, Unknown_842F3C0
- .4byte 0x5, Unknown_842F3E8
- .4byte 0x5, Unknown_842F410
- .4byte 0x5, Unknown_842F438
- .4byte 0x6, Unknown_842F460
- .4byte 0x6, Unknown_842F490
- .4byte 0x6, Unknown_842F4C0
- .4byte 0x6, Unknown_842F4F0
- .4byte 0x7, Unknown_842F520
+gSubspriteTables_842F6C0:: @ 842F6C0
+ .4byte 2, gSubspriteTable_842F2C8
+ .4byte 2, gSubspriteTable_842F2C8
+ .4byte 3, gSubspriteTable_842F2D8
+ .4byte 4, gSubspriteTable_842F2F0
+ .4byte 3, gSubspriteTable_842F310
+ .4byte 3, gSubspriteTable_842F328
+ .4byte 4, gSubspriteTable_842F340
+ .4byte 4, gSubspriteTable_842F360
+ .4byte 4, gSubspriteTable_842F380
+ .4byte 4, gSubspriteTable_842F3A0
+ .4byte 5, gSubspriteTable_842F3C0
+ .4byte 5, gSubspriteTable_842F3E8
+ .4byte 5, gSubspriteTable_842F410
+ .4byte 5, gSubspriteTable_842F438
+ .4byte 6, gSubspriteTable_842F460
+ .4byte 6, gSubspriteTable_842F490
+ .4byte 6, gSubspriteTable_842F4C0
+ .4byte 6, gSubspriteTable_842F4F0
+ .4byte 7, gSubspriteTable_842F520
.align 2
gUnknown_0842F758:: @ 842F758
diff --git a/data/menu_helpers.s b/data/menu_helpers.s
index b4665af1f..29d42cb4b 100644
--- a/data/menu_helpers.s
+++ b/data/menu_helpers.s
@@ -29,7 +29,7 @@ gSpriteImage_83E5928:: @ 83E5928
.align 2
Palette_3E5948: @ 83E5948
- .incbin "baserom.gba", 0x3e5948, 0x20
+ .incbin "graphics/interface/83E5948.gbapal"
.align 2
gUnknown_083E5968:: @ 83E5968
diff --git a/data/mon_markings.s b/data/mon_markings.s
index 710f37a51..b9ec7735f 100644
--- a/data/mon_markings.s
+++ b/data/mon_markings.s
@@ -11,11 +11,17 @@ gUnknown_083E49F4:: @ 83E49F4
gUnknown_083E4A14:: @ 83E4A14
.incbin "graphics/misc/mon_markings.4bpp"
-gUnknown_083E5214:: @ 83E5214
- .incbin "baserom.gba", 0x003e5214, 0x8
+ .align 2
+gOamData_83E5214:: @ 83E5214
+ .2byte 0x0
+ .2byte 0xC000
+ .2byte 0x0
-gUnknown_083E521C:: @ 83E521C
- .space 8
+ .align 2
+gOamData_83E521C:: @ 83E521C
+ .2byte 0x0
+ .2byte 0x0
+ .2byte 0x0
.align 2
gSpriteAnim_83E5224:: @ 83E5224
@@ -95,8 +101,11 @@ gSpriteAnimTable_83E52AC:: @ 83E52AC
.4byte gSpriteAnim_83E529C
.4byte gSpriteAnim_83E52A4
-gUnknown_083E52B4:: @ 83E52B4
- .incbin "baserom.gba", 0x003E52B4, 0x8
+ .align 2
+gOamData_83E52B4:: @ 83E52B4
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0
.align 2
gSpriteAnim_83E52BC:: @ 83E52BC
diff --git a/data/naming_screen.s b/data/naming_screen.s
index c9196c66a..4e477f4b9 100644
--- a/data/naming_screen.s
+++ b/data/naming_screen.s
@@ -11,8 +11,9 @@ gSpriteImage_83CE094:: @ 83CE094
gSpriteImage_83CE154:: @ 83CE154
.incbin "graphics/naming_screen/pc_icon/1.4bpp"
+@ XXX: what is this?
.align 2
- .incbin "baserom.gba", 0x003ce214, 0x4
+ .4byte 0x2000000
.align 2
gUnknown_083CE218:: @ 83CE218
@@ -39,17 +40,21 @@ gUnknown_083CE250:: @ 83CE250
.4byte sub_80B626C
.4byte sub_80B6274
+ .align 1
gUnknown_083CE258:: @ 83CE258
- .incbin "baserom.gba", 0x003ce258, 0xa
+ .2byte 0, 0, 0, -1, 1
+ .align 1
gUnknown_083CE262:: @ 83CE262
- .incbin "baserom.gba", 0x003ce262, 0xa
+ .2byte 0, -1, 1, 0, 0
+ .align 1
gUnknown_083CE26C:: @ 83CE26C
- .incbin "baserom.gba", 0x003ce26c, 0x8
+ .2byte 0, 1, 1, 2
+ .align 1
gUnknown_083CE274:: @ 83CE274
- .incbin "baserom.gba", 0x003ce274, 0x8
+ .2byte 0, 0, 3, 0
.align 2
gUnknown_083CE27C:: @ 83CE27C
@@ -64,10 +69,12 @@ gUnknown_083CE28C:: @ 83CE28C
.4byte 0x02000004
gUnknown_083CE294:: @ 83CE294
- .incbin "baserom.gba", 0x003ce294, 0x1b
+ .byte 1, 3, 5, 8, 10, 12, 14, 17, 19
+ .byte 1, 3, 5, 8, 10, 12, 14, 17, 19
+ .byte 1, 4, 7, 10, 13, 16, 16, 16, 19
gUnknown_083CE2AF:: @ 83CE2AF
- .incbin "baserom.gba", 0x003ce2af, 0x5
+ .byte 1, 2, 3
.align 2
gUnknown_083CE2B4:: @ 83CE2B4
@@ -76,17 +83,21 @@ gUnknown_083CE2B4:: @ 83CE2B4
.4byte sub_80B6B9C
.4byte sub_80B6C08
+ .align 1
gUnknown_083CE2C4:: @ 83CE2C4
- .incbin "baserom.gba", 0x003ce2c4, 0x6
+ .2byte 1, 3, 2
+ .align 1
gUnknown_083CE2CA:: @ 83CE2CA
- .incbin "baserom.gba", 0x003ce2ca, 0x6
+ .2byte 4, 6, 5
+ .align 1
gUnknown_083CE2D0:: @ 83CE2D0
- .incbin "baserom.gba", 0x003ce2d0, 0x8
+ .2byte 0, -4, -2, -1
+ .align 1
gUnknown_083CE2D8:: @ 83CE2D8
- .incbin "baserom.gba", 0x003ce2d8, 0x8
+ .2byte 2, 3, 2, 1
.align 2
gUnknown_083CE2E0:: @ 83CE2E0
@@ -104,8 +115,10 @@ gUnknown_083CE2F0:: @ 83CE2F0
.4byte sub_80B7670
.4byte sub_80B7660
+ .align 2
gUnknown_083CE308:: @ 83CE308
- .incbin "baserom.gba", 0x003ce308, 0x8
+ .4byte VRAM + 0xE000
+ .4byte VRAM + 0xE800
.align 2
gUnknown_083CE310:: @ 83CE310
@@ -143,9 +156,8 @@ gUnknown_083CE368:: @ 83CE368
.4byte nullsub_62
.4byte sub_80B7924
- .align 2
gUnknown_083CE370:: @ 83CE370
- .incbin "baserom.gba", 0x003ce370, 0x4
+ .string "♂$"
.align 2
Unknown_83CE374:
@@ -202,38 +214,59 @@ gOamData_83CE4A8:: @ 83CE4A8
.2byte 0x0000
.align 2
-Unknown_3CE4B0:: @ 83CE4B0
- .incbin "baserom.gba", 0x3ce4b0, 0x50
+gSubspriteTable_83CE4B0:: @ 83CE4B0
+ subsprite -20, -16, 1, 0, 32x8
+ subsprite 12, -16, 1, 4, 8x8
+ subsprite -20, -8, 1, 5, 32x8
+ subsprite 12, -8, 1, 9, 8x8
+ subsprite -20, 0, 1, 10, 32x8
+ subsprite 12, 0, 1, 14, 8x8
+ subsprite -20, 8, 1, 15, 32x8
+ subsprite 12, 8, 1, 19, 8x8
+
+@ unreferenced
+ .align 2
+gSubspriteTable_83CE4F0:: @ 83CE4F0
+ subsprite -12, -4, 1, 0, 8x8
+ subsprite 4, -4, 1, 1, 8x8
.align 2
-Unknown_3CE500:: @ 83CE500
- .incbin "baserom.gba", 0x3ce500, 0x10
+gSubspriteTable_83CE500:: @ 83CE500
+ subsprite -12, -4, 1, 0, 16x8
+ subsprite 4, -4, 1, 2, 8x8
.align 2
-Unknown_3CE510:: @ 83CE510
- .incbin "baserom.gba", 0x3ce510, 0x30
+gSubspriteTable_83CE510:: @ 83CE510
+ subsprite -20, -12, 1, 0, 32x8
+ subsprite 12, -12, 1, 4, 8x8
+ subsprite -20, -4, 1, 5, 32x8
+ subsprite 12, -4, 1, 9, 8x8
+ subsprite -20, 4, 1, 10, 32x8
+ subsprite 12, 4, 1, 14, 8x8
.align 2
-Unknown_3CE540:: @ 83CE540
- .incbin "baserom.gba", 0x3ce540, 0x18
+gSubspriteTable_83CE540:: @ 83CE540
+ subsprite -8, -12, 3, 0, 16x8
+ subsprite -8, -4, 3, 2, 16x8
+ subsprite -8, 4, 3, 4, 16x8
.align 2
-gUnknown_083CE558:: @ 83CE558
- .4byte 0x8, Unknown_3CE4B0
+gSubspriteTables_83CE558:: @ 83CE558
+ .4byte 8, gSubspriteTable_83CE4B0
.align 2
-gUnknown_083CE560:: @ 83CE560
- .4byte 0x2, Unknown_3CE500
- .4byte 0x2, Unknown_3CE500
- .4byte 0x2, Unknown_3CE500
+gSubspriteTables_83CE560:: @ 83CE560
+ .4byte 2, gSubspriteTable_83CE500
+ .4byte 2, gSubspriteTable_83CE500
+ .4byte 2, gSubspriteTable_83CE500
.align 2
-gUnknown_083CE578:: @ 83CE578
- .4byte 0x6, Unknown_3CE510
+gSubspriteTables_83CE578:: @ 83CE578
+ .4byte 6, gSubspriteTable_83CE510
.align 2
-gUnknown_083CE580:: @ 83CE580
- .4byte 0x3, Unknown_3CE540
+gSubspriteTables_83CE580:: @ 83CE580
+ .4byte 3, gSubspriteTable_83CE540
.align 2
gSpriteImageTable_83CE588:: @ 83CE588
diff --git a/data/option_menu.s b/data/option_menu.s
index eaf0f82b8..cb517cc89 100644
--- a/data/option_menu.s
+++ b/data/option_menu.s
@@ -5,8 +5,9 @@
.align 2
gUnknown_0839F5FC:: @ 839F5FC
- .incbin "baserom.gba", 0x0039f5fc, 0x40
+ .incbin "graphics/misc/option_menu_text.gbapal"
+@ note: this is only used in the Japanese release
.align 2
gUnknown_0839F63C:: @ 839F63C
- .incbin "baserom.gba", 0x0039f63c, 0x40
+ .incbin "graphics/misc/option_menu_equals_sign.4bpp"
diff --git a/data/player_pc.s b/data/player_pc.s
index 199411221..fe46b0443 100644
--- a/data/player_pc.s
+++ b/data/player_pc.s
@@ -18,10 +18,10 @@ gUnknown_08406298:: @ 8406298
.4byte SecretBaseText_TurnOff, PlayerPC_TurnOff
gUnknown_084062B8:: @ 84062B8
- .incbin "baserom.gba", 0x004062b8, 0x4
+ .byte 0, 1, 2, 3
gUnknown_084062BC:: @ 84062BC
- .incbin "baserom.gba", 0x004062bc, 0x4
+ .byte 0, 1, 3
.align 2
gUnknown_084062C0:: @ 84062C0
@@ -67,8 +67,11 @@ gUnknown_0840632A:: @ 840632A
gUnknown_08406330:: @ 8406330
.string "{CLEAR_TO 32}$"
+ .align 1
gUnknown_08406334:: @ 8406334
- .incbin "baserom.gba", 0x00406334, 0x6
+ .2byte 0x5294
+ .2byte 0x6B5A
+ .2byte 0x7FFF
gUnknown_0840633A:: @ 840633A
.string "{COLOR RED}{STR_VAR_1}$"
diff --git a/data/pokeblock.s b/data/pokeblock.s
index a200edfb6..6d0b1890d 100644
--- a/data/pokeblock.s
+++ b/data/pokeblock.s
@@ -4,7 +4,31 @@
.section .rodata
gUnknown_083F7E28:: @ 83F7E28
- .incbin "baserom.gba", 0x003f7e28, 0x80
+ .byte 0, 0, 0, 0, 0
+ .byte 1, 0, 0, 0, -1
+ .byte 1, 0, -1, 0, 0
+ .byte 1, -1, 0, 0, 0
+ .byte 1, 0, 0, -1, 0
+ .byte -1, 0, 0, 0, 1
+ .byte 0, 0, 0, 0, 0
+ .byte 0, 0, -1, 0, 1
+ .byte 0, -1, 0, 0, 1
+ .byte 0, 0, 0, -1, 1
+ .byte -1, 0, 1, 0, 0
+ .byte 0, 0, 1, 0, -1
+ .byte 0, 0, 0, 0, 0
+ .byte 0, -1, 1, 0, 0
+ .byte 0, 0, 1, -1, 0
+ .byte -1, 1, 0, 0, 0
+ .byte 0, 1, 0, 0, -1
+ .byte 0, 1, -1, 0, 0
+ .byte 0, 0, 0, 0, 0
+ .byte 0, 1, 0, -1, 0
+ .byte -1, 0, 0, 1, 0
+ .byte 0, 0, 0, 1, -1
+ .byte 0, 0, -1, 1, 0
+ .byte 0, -1, 0, 1, 0
+ .byte 0, 0, 0, 0, 0
.align 2
gUnknown_083F7EA8:: @ 83F7EA8
@@ -69,12 +93,17 @@ gSpriteAnim_83F7F3C:: @ 83F7F3C
gSpriteAnimTable_83F7F44:: @ 83F7F44
.4byte gSpriteAnim_83F7F3C
-Unknown_83F7F48:
- .incbin "baserom.gba", 0x003f7f48, 0x28
+ .align 2
+gSpriteAffineAnim_83F7F48:: @ 83F7F48
+ obj_rot_scal_anim_frame 0x0, 0x0, -2, 2
+ obj_rot_scal_anim_frame 0x0, 0x0, 2, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, -2, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 2, 2
+ obj_rot_scal_anim_end
.align 2
-gUnknown_083F7F70:: @ 83F7F70
- .4byte Unknown_83F7F48
+gSpriteAffineAnimTable_83F7F70:: @ 83F7F70
+ .4byte gSpriteAffineAnim_83F7F48
.align 2
gUnknown_083F7F74:: @ 83F7F74
@@ -89,4 +118,8 @@ gSpriteTemplate_83F7F84:: @ 83F7F84
spr_template 14800, 14800, gOamData_83F7F34, gSpriteAnimTable_83F7F44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_083F7F9C:: @ 83F7F9C
- .incbin "baserom.gba", 0x003f7f9c, 0x28
+ .byte 1, 20, 0, 0, 0, 0, 20, 0
+ .byte 2, 0, 20, 0, 0, 0, 20, 0
+ .byte 3, 0, 0, 20, 0, 0, 20, 0
+ .byte 4, 0, 0, 0, 20, 0, 20, 0
+ .byte 5, 0, 0, 0, 0, 20, 20, 0
diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s
index ac24f8653..9c23f8e89 100644
--- a/data/pokedex_area_screen.s
+++ b/data/pokedex_area_screen.s
@@ -18,8 +18,15 @@ gUnknown_083F856E:: @ 83F856E
.2byte 328, 0, 34
.2byte 412, 0, 0
+ .align 1
gUnknown_083F857A:: @ 83F857A
- .incbin "baserom.gba", 0x003f857a, 0x12
+ .2byte 85, 2142
+ .2byte 68, 2119
+ .2byte 88, 0
+
+@ XXX: what is this?
+ .align 2
+ .4byte 0x2000000
.align 2
gUnknown_083F858C:: @ 83F858C
diff --git a/data/pokemon_menu.s b/data/pokemon_menu.s
index 1781e8df7..9e2ce2864 100644
--- a/data/pokemon_menu.s
+++ b/data/pokemon_menu.s
@@ -30,8 +30,23 @@ gPokemonMenuActions:: @ 839F494
.4byte gMoveNames + 13 * MOVE_SOFT_BOILED, PokemonMenu_FieldMove
.4byte gMoveNames + 13 * MOVE_SWEET_SCENT, PokemonMenu_FieldMove
+ .align 1
gUnknown_0839F554:: @ 839F554
- .incbin "baserom.gba", 0x39f554, 0x1e
+ .2byte MOVE_CUT
+ .2byte MOVE_FLASH
+ .2byte MOVE_ROCK_SMASH
+ .2byte MOVE_STRENGTH
+ .2byte MOVE_SURF
+ .2byte MOVE_FLY
+ .2byte MOVE_DIVE
+ .2byte MOVE_WATERFALL
+ .2byte MOVE_TELEPORT
+ .2byte MOVE_DIG
+ .2byte MOVE_SECRET_POWER
+ .2byte MOVE_MILK_DRINK
+ .2byte MOVE_SOFT_BOILED
+ .2byte MOVE_SWEET_SCENT
+ .2byte 0xFF
Unknown_39F572: @ 839F572
.byte 4, 5, 9, 0
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
index 31457e382..f66a28e56 100644
--- a/data/pokemon_summary_screen.s
+++ b/data/pokemon_summary_screen.s
@@ -185,7 +185,7 @@ gSpriteTemplate_83C11C0:: @ 83C11C0
spr_template 30002, 30002, gOamData_83C109C, gSpriteAnimTable_83C115C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_083C11D8:: @ 83C11D8
- .incbin "baserom.gba", 0x003c11d8, 0x18
+ .byte 0xD,0xD,0xE,0xE,0xD,0xD,0xF,0xE,0xD,0xF,0xD,0xE,0xF,0xD,0xE,0xE,0xF,0xD,0xD,0xE,0xE,0xF,0xD
.align 2
gOamData_83C11F0:: @ 83C11F0
diff --git a/data/pokenav.s b/data/pokenav.s
index 4d95526a3..3ea704c03 100644
--- a/data/pokenav.s
+++ b/data/pokenav.s
@@ -3,59 +3,81 @@
.section .rodata
+ .align 2
gUnknown_083DFEC4:: @ 83DFEC4
- .incbin "baserom.gba", 0x003dfec4, 0x4
+ .4byte 0x2000000
+ .align 2
gUnknown_083DFEC8:: @ 83DFEC8
- .4byte 0x02039360
+ .4byte gTileBuffer
+ .align 1
gUnknown_083DFECC:: @ 83DFECC
- .incbin "baserom.gba", 0x003dfecc, 0x20
+ .incbin "graphics/pokenav/83DFECC.gbapal"
+ .align 1
gUnknown_083DFEEC:: @ 83DFEEC
- .incbin "baserom.gba", 0x003dfeec, 0xa0
+ .incbin "graphics/pokenav/83DFEEC.4bpp"
+ .align 2
gUnknown_083DFF8C:: @ 83DFF8C
- .incbin "baserom.gba", 0x003dff8c, 0xb0
+ .incbin "graphics/pokenav/83DFF8C.bin.lz"
+ .align 1
gUnknown_083E003C:: @ 83E003C
- .incbin "baserom.gba", 0x003e003c, 0x20
+ .incbin "graphics/pokenav/83E003C.gbapal"
+ .align 1
gUnknown_083E005C:: @ 83E005C
- .incbin "baserom.gba", 0x003e005c, 0x20
+ .incbin "graphics/pokenav/83E005C.4bpp"
+ .align 2
gUnknown_083E007C:: @ 83E007C
- .incbin "baserom.gba", 0x003e007c, 0xa8
+ .incbin "graphics/pokenav/83E007C.bin.lz"
+ .align 1
gUnknown_083E0124:: @ 83E0124
- .incbin "baserom.gba", 0x003e0124, 0x20
+ .incbin "graphics/pokenav/83E0124_pal.bin"
+ .align 1
gUnknown_083E0144:: @ 83E0144
- .incbin "baserom.gba", 0x003e0144, 0x68
+ .incbin "graphics/pokenav/83E0144_pal.bin"
+
+ .align 1
+ .incbin "graphics/pokenav/83E0164.bin"
+ .align 1
gUnknown_083E01AC:: @ 83E01AC
- .incbin "baserom.gba", 0x003e01ac, 0x48
+ .incbin "graphics/pokenav/83E01AC.bin"
+ .align 1
gUnknown_083E01F4:: @ 83E01F4
- .incbin "baserom.gba", 0x003e01f4, 0x60
+ .incbin "graphics/pokenav/83E01F4.bin"
+ .align 1
gUnknown_083E0254:: @ 83E0254
- .incbin "baserom.gba", 0x003e0254, 0x20
+ .incbin "graphics/pokenav/83E0254.gbapal"
+ .align 1
gUnknown_083E0274:: @ 83E0274
- .incbin "baserom.gba", 0x003e0274, 0x20
+ .incbin "graphics/pokenav/83E0274.gbapal"
.align 2
gPokenavConditionSearch2_Pal:: @ 83E0294
.incbin "graphics/pokenav/condition_search2.gbapal"
+ .align 1
gUnknown_083E02B4:: @ 83E02B4
- .incbin "baserom.gba", 0x003e02b4, 0x60
+ .incbin "graphics/pokenav/83E02B4.gbapal"
+ .align 1
+ .incbin "graphics/pokenav/83E02D4.bin"
+
+ .align 1
gUnknown_083E0314:: @ 83E0314
- .incbin "baserom.gba", 0x003e0314, 0x20
+ .incbin "graphics/pokenav/83E0314.gbapal"
- .align 2
+ .align 1
gUnknown_083E0334:: @ 83E0334
.incbin "graphics/pokenav/trainereyes_misc_pal.bin" @ the original bytes have an "FF FF" instance which is incompatible with gbagfx to produce the bytes needed to match the original ROM, so I am forced to include it as a .bin until the lowest bit is properly handled or a better workaround is produced
@@ -63,14 +85,20 @@ gUnknown_083E0334:: @ 83E0334
gUnknown_083E0354:: @ 83E0354
.incbin "graphics/pokenav/trainereyes_misc.4bpp.lz"
+ .align 1
gUnknown_083E039C:: @ 83E039C
- .incbin "baserom.gba", 0x003e039c, 0x4
+ .2byte 0x4280, 0x4282
+ .align 1
gUnknown_083E03A0:: @ 83E03A0
- .incbin "baserom.gba", 0x003e03a0, 0x8
+ .2byte 0x4000, 0x4000, 0x4281, 0x4283
+ .align 1
gUnknown_083E03A8:: @ 83E03A8
- .incbin "baserom.gba", 0x003e03a8, 0x64
+ .incbin "graphics/pokenav/83E03A8.gbapal"
+
+ .align 1
+ .incbin "graphics/pokenav/83E03C8.bin"
gUnknown_083E040C:: @ 83E040C
.incbin "graphics/misc/ribbons_half.4bpp.lz"
@@ -248,7 +276,7 @@ gPokenavPokeballTiles::
.align 2
gUnknown_083E3780: @ 83E3780
- .incbin "baserom.gba", 0x3e3780, 0x20
+ .incbin "graphics/pokenav/83E3780.4bpp"
.align 2
gPokenavSparkle_Pal::
@@ -262,8 +290,9 @@ gPokenavSparkle_Gfx::
gPokenavUpDownArrows_Gfx::
.incbin "graphics/pokenav/arrows.4bpp"
-gUnknown_083E3BC0::
- .incbin "baserom.gba", 0x003E3BC0, 0x20
+ .align 2
+gUnknown_083E3BC0:: @ 83E3BC0
+ .incbin "graphics/pokenav/83E3BC0.bin"
.align 2
gTiles_083E3BE0::
@@ -289,11 +318,28 @@ PokenavBlueLightPalette:
PokenavBlueLightTiles:
.incbin "graphics/pokenav/blue_light.4bpp"
+ .align 2
Palette_3E42D8: @ 83E42D8
- .incbin "baserom.gba", 0x3e42d8, 0x20
+ .incbin "graphics/pokenav/83E42D8.gbapal"
+ .align 1
gUnknown_083E42F8:: @ 83E42F8
- .incbin "baserom.gba", 0x003e42f8, 0x20
+ .2byte 0x408
+ .2byte 0x408
+ .2byte 0x507
+ .2byte 0x507
+ .2byte 0x606
+ .2byte 0x606
+ .2byte 0x805
+ .2byte 0x805
+ .2byte 0xA04
+ .2byte 0xA04
+ .2byte 0xC03
+ .2byte 0xC03
+ .2byte 0xE02
+ .2byte 0xE02
+ .2byte 0x1000
+ .2byte 0x1000
.align 2
gOamData_83E4318:: @ 83E4318
@@ -448,11 +494,14 @@ gSpriteAnimTable_83E43E0:: @ 83E43E0
.4byte gSpriteAnim_83E43D0
.4byte gSpriteAnim_83E43D8
-Unknown_83E4440:
- .incbin "baserom.gba", 0x003e4440, 0x10
+ .align 2
+gSpriteAffineAnim_83E4440:: @ 83E4440
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 16
+ obj_rot_scal_anim_end
-gUnknown_083E4450:: @ 83E4450
- .4byte Unknown_83E4440
+ .align 2
+gSpriteAffineAnimTable_83E4450:: @ 83E4450
+ .4byte gSpriteAffineAnim_83E4440
.align 2
gSpriteTemplate_83E4454:: @ 83E4454
@@ -553,14 +602,15 @@ gOamData_83E4560:: @ 83E4560
.align 2
gUnknown_083E4568:: @ 83E4568
- .incbin "baserom.gba", 0x003e4568, 0x8
+ obj_tiles NULL, 0x800, 6
.align 2
gSpriteTemplate_83E4570:: @ 83E4570
spr_template 6, 6, gOamData_83E4560, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80F2E00
+ .align 2
gUnknown_083E4588:: @ 83E4588
- .incbin "baserom.gba", 0x003e4588, 0x8
+ obj_pal NULL, 6
.align 2
gUnknown_083E4590:: @ 83E4590
@@ -645,11 +695,44 @@ gUnknown_083E4648:: @ 83E4648
gSpriteTemplate_83E4660:: @ 83E4660
spr_template 3, 4, gOamData_83E4608, gSpriteAnimTable_83E4620, NULL, gDummySpriteAffineAnimTable, sub_80F3328
+ .align 1
gUnknown_083E4678:: @ 83E4678
- .incbin "baserom.gba", 0x003e4678, 0x20
+ .incbin "graphics/pokenav/83E4678.gbapal"
+ .align 2
gUnknown_083E4698:: @ 83E4698
- .incbin "baserom.gba", 0x003e4698, 0x80
+ .2byte 0, 0
+ .2byte 1, 0
+ .2byte 2, 0
+ .2byte 3, 0
+ .2byte 4, 0
+ .2byte 1, 1
+ .2byte 2, 1
+ .2byte 3, 1
+ .2byte 4, 1
+ .2byte 1, 2
+ .2byte 2, 2
+ .2byte 3, 2
+ .2byte 4, 2
+ .2byte 1, 3
+ .2byte 2, 3
+ .2byte 3, 3
+ .2byte 4, 3
+ .2byte 1, 4
+ .2byte 2, 4
+ .2byte 3, 4
+ .2byte 4, 4
+ .2byte 5, 0
+ .2byte 6, 0
+ .2byte 7, 1
+ .2byte 8, 2
+ .2byte 9, 1
+ .2byte 9, 3
+ .2byte 9, 4
+ .2byte 10, 3
+ .2byte 10, 4
+ .2byte 11, 0
+ .2byte 11, 1
.align 2
gOamData_83E4718:: @ 83E4718
@@ -692,8 +775,18 @@ gUnknown_083E4784:: @ 83E4784
gUnknown_083E478C:: @ 83E478C
obj_pal gPokenavSparkle_Pal, 0x000f
+ .align 2
gUnknown_083E4794:: @ 83E4794
- .incbin "baserom.gba", 0x003e4794, 0x28
+ .2byte 0, -35
+ .2byte 20, -28
+ .2byte 33, -10
+ .2byte 33, 10
+ .2byte 20, 28
+ .2byte 0, 35
+ .2byte -20, 28
+ .2byte -33, 10
+ .2byte -33, -10
+ .2byte -20, -28
.align 2
gOamData_83E47BC:: @ 83E47BC
@@ -773,13 +866,301 @@ gSpriteTemplate_83E4878:: @ 83E4878
spr_template 26, 18, gOamData_83E4870, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_083E4890:: @ 83E4890
- .incbin "baserom.gba", 0x003e4890, 0x100
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 8
+ .byte 9
+ .byte 9
+ .byte 10
+ .byte 10
+ .byte 11
+ .byte 11
+ .byte 12
+ .byte 12
+ .byte 13
+ .byte 13
+ .byte 13
+ .byte 13
+ .byte 14
+ .byte 14
+ .byte 14
+ .byte 14
+ .byte 15
+ .byte 15
+ .byte 15
+ .byte 15
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 16
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 17
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 18
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 19
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 20
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 21
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 22
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 23
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 24
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 25
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 26
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 27
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 28
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 29
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 30
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 31
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 32
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 33
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 34
+ .byte 35
+ .align 2
gUnknown_083E4990:: @ 83E4990
- .incbin "baserom.gba", 0x003e4990, 0xc
+ .4byte REG_WIN0H
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_32BIT | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
+ .align 1
gUnknown_083E499C:: @ 83E499C
- .incbin "baserom.gba", 0x003e499c, 0x24
+ .2byte 0x43
+ .2byte 0x32
+ .2byte 0x33
+ .2byte 0x34
+ .2byte 0x35
+ .2byte 0x36
+ .2byte 0x44
+ .2byte 0x45
+ .2byte 0x46
+ .2byte 0x47
+ .2byte 0x48
+ .2byte 0x49
+ .2byte 0x4A
+ .2byte 0x4B
+ .2byte 0x4C
+ .2byte 0x4D
+ .2byte 0x4E
+ .align 2
gUnknown_083E49C0:: @ 83E49C0
- .incbin "baserom.gba", 0x003e49c0, 0x34
+ .2byte 0x109, 0xA
+ .2byte 0x10A, 0x2
+ .2byte 0x10B, 0x9
+ .2byte 0x10C, 0x3
+ .2byte 0x10D, 0x7
+ .2byte 0x10E, 0xB
+ .2byte 0x10F, 0xD
+ .2byte 0x110, 0xE
+ .2byte 0x105, 0xF
+ .2byte 0x106, 0xF
+ .2byte 0x107, 0xF
+ .2byte 0x108, 0xF
+ .2byte 0x14F, 0xF
diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s
index a50f5c07b..a9a3ac847 100644
--- a/data/reset_rtc_screen.s
+++ b/data/reset_rtc_screen.s
@@ -5,7 +5,11 @@
.align 2
gUnknown_08376420:: @ 8376420
- .incbin "baserom.gba", 0x00376420, 0x3C
+ .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0
+ .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0
+ .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0
+ .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0
+ .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0
.align 2
gOamData_837645C:: @ 837645C
@@ -23,7 +27,7 @@ gSpriteImage_8376484:: @ 8376484
.align 2
Palette_3764A4: @ 83764A4
- .incbin "baserom.gba", 0x3764a4, 0x8
+ .incbin "graphics/unknown/83764A4.gbapal"
.align 2
gSpriteImageTable_83764AC:: @ 83764AC
diff --git a/data/rom_8077ABC.s b/data/rom_8077ABC.s
index dc9074cee..81b61228b 100644
--- a/data/rom_8077ABC.s
+++ b/data/rom_8077ABC.s
@@ -3,8 +3,16 @@
.section .rodata
+ .align 2
gUnknown_0837F578:: @ 837F578
- .incbin "baserom.gba", 0x0037f578, 0x20
+ .byte 72, 80, 0, 0
+ .byte 176, 40, 0, 0
+ .byte 48, 40, 0, 0
+ .byte 112, 80, 0, 0
+ .byte 32, 80, 0, 0
+ .byte 200, 40, 0, 0
+ .byte 90, 88, 0, 0
+ .byte 152, 32, 0, 0
@ One entry for each of the four Castform forms.
@ Coords are probably front pic coords or back pic coords, but this data does not seem to be
diff --git a/data/rom_8080874.s b/data/rom_8080874.s
index f91dd02fc..220ec5f96 100644
--- a/data/rom_8080874.s
+++ b/data/rom_8080874.s
@@ -3,12 +3,13 @@
.section .rodata
+ .align 1
gUnknown_0839ACDC:: @ 839ACDC
- .incbin "baserom.gba", 0x0039acdc, 0xc
+ .2byte 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0
.align 2
gUnknown_0839ACE8:: @ 839ACE8
- .byte 4
+ .4byte 4
.align 2
gUnknown_0839ACEC:: @ 839ACEC
diff --git a/data/roulette.s b/data/roulette.s
index 9f6c8ac15..27dd712b5 100644
--- a/data/roulette.s
+++ b/data/roulette.s
@@ -3,44 +3,95 @@
.section .rodata
+ .align 1
gUnknown_083F86BC:: @ 83F86BC
- .incbin "baserom.gba", 0x003f86bc, 0x40
+ .incbin "graphics/roulette/83F86BC.gbapal"
.align 2
-gRouletteCenter_Pal::
- .incbin "graphics/roulette/center.gbapal"
-
- .incbin "baserom.gba", 0x003f871c, 0x1A0
-
gUnknown_083F88BC:: @ 83F88BC
- .incbin "baserom.gba", 0x003f88bc, 0x1a4
+ .incbin "graphics/roulette/83F88BC.bin.lz"
+ .align 2
gUnknown_083F8A60:: @ 83F8A60
- .incbin "baserom.gba", 0x003f8a60, 0x1a0
+ .incbin "graphics/roulette/wheel_map.bin.lz"
+ .align 2
gUnknown_083F8C00:: @ 83F8C00
- .incbin "baserom.gba", 0x003f8c00, 0xc
-
-gUnknown_083F8C0C:: @ 83F8C0C
- .incbin "baserom.gba", 0x003f8c0c, 0x184
+ .byte 0xFF,0x00,0x00,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+ .byte 0x0C,0x14,0x00,0x11,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x42,0x08,0x01,0x00,0x00,0xE0,0x00,0x00
+ .byte 0x0D,0x24,0x00,0x14,0x07,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0x10,0x02,0x00,0x00,0xE0,0x00,0x00
+ .byte 0x0E,0x34,0x00,0x17,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x21,0x04,0x00,0x00,0xE0,0x00,0x00
+ .byte 0x0F,0x44,0x00,0x1A,0x07,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x42,0x08,0x00,0x00,0xE0,0x00,0x00
+ .byte 0x10,0x03,0x01,0x0E,0x0A,0x00,0x0C,0x00,0x20,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x49,0x02,0x00,0x00
+ .byte 0x00,0x1C,0x01,0x11,0x0A,0x03,0x03,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x01,0x20,0x00,0x00
+ .byte 0x09,0x2C,0x01,0x14,0x0A,0x03,0x03,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x22,0x00,0x00
+ .byte 0x06,0x3C,0x01,0x17,0x0A,0x03,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x40,0x20,0x00,0x00
+ .byte 0x03,0x4C,0x01,0x1A,0x0A,0x03,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x08,0x20,0x00,0x00
+ .byte 0x11,0x03,0x02,0x0E,0x0D,0x03,0x0F,0x00,0x00,0x04,0x00,0x00,0x00,0x7C,0x00,0x00,0x92,0x04,0x00,0x00
+ .byte 0x04,0x1C,0x02,0x11,0x0D,0x06,0x06,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x20,0x00,0x00
+ .byte 0x01,0x2C,0x02,0x14,0x0D,0x06,0x06,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x02,0x20,0x00,0x00
+ .byte 0x0A,0x3C,0x02,0x17,0x0D,0x06,0x06,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x24,0x00,0x00
+ .byte 0x07,0x4C,0x02,0x1A,0x0D,0x06,0x06,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x80,0x20,0x00,0x00
+ .byte 0x12,0x03,0x03,0x0E,0x10,0x06,0x12,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x0F,0x00,0x24,0x09,0x00,0x00
+ .byte 0x08,0x1C,0x03,0x11,0x10,0x09,0x09,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x21,0x00,0x00
+ .byte 0x05,0x2C,0x03,0x14,0x10,0x09,0x09,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x20,0x20,0x00,0x00
+ .byte 0x02,0x3C,0x03,0x17,0x10,0x09,0x09,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x04,0x20,0x00,0x00
+ .byte 0x0B,0x4C,0x03,0x1A,0x10,0x09,0x09,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x28,0x00,0x00
+ .align 2
gUnknown_083F8D90:: @ 83F8D90
- .incbin "baserom.gba", 0x003f8d90, 0x4
-
-gUnknown_083F8D94:: @ 83F8D94
- .incbin "baserom.gba", 0x003f8d94, 0x5c
+ .byte 0, 1, 6, 0, 64, 0, 0, 0
+ .byte 1, 3, 12, 0, 0, 16, 0, 0
+ .byte 2, 5, 18, 0, 0, 0, 4, 0
+ .byte 3, 7, 9, 0, 0, 2, 0, 0
+ .byte 4, 9, 11, 0, 0, 8, 0, 0
+ .byte 5, 11, 17, 0, 0, 0, 2, 0
+ .byte 6, 13, 8, 0, 0, 1, 0, 0
+ .byte 7, 15, 14, 0, 0, 64, 0, 0
+ .byte 8, 17, 16, 0, 0, 0, 1, 0
+ .byte 9, 19, 7, 0, 128, 0, 0, 0
+ .byte 10, 21, 13, 0, 0, 32, 0, 0
+ .byte 11, 23, 19, 0, 0, 0, 8, 0
gUnknown_083F8DF0:: @ 83F8DF0
- .incbin "baserom.gba", 0x003f8df0, 0x4
+ .byte 1, 3
+ .byte 1, 6
+ .align 2
gUnknown_083F8DF4:: @ 83F8DF4
- .incbin "baserom.gba", 0x003f8df4, 0x40
+ .byte 0x01,0x3C,0x1E,0x01,0x01,0x00,0x00,0x00,0x2D,0x00,0x1E,0x00,0x01,0x00,0x00,0x00,0x4B,0x00,0x1B,0x00,0x18,0x00,0x00,0x00,0x0A,0x00,0x68,0x01,0x00,0x00,0x00,0xBF
+ .byte 0x03,0x1E,0x0F,0x01,0x00,0x00,0x00,0x00,0x4B,0x00,0x3C,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x0E,0x01,0x00,0x00,0x80,0xBF
+ .align 2
gUnknown_083F8E34:: @ 83F8E34
- .incbin "baserom.gba", 0x003f8e34, 0x68
+ .byte 0x00,0x80,0x05,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x0A,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x15,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x55,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x5A,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x65,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x75,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x7A,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x85,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x95,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0x9A,0x00,0x01,0x01,0xFF,0x48
+ .byte 0x00,0x80,0xA5,0x00,0x01,0x01,0xFF,0x48
+ .byte 0xD6,0x77,0x28,0x00,0x02,0x0A,0xFF,0x4E
+ .align 1
gUnknown_083F8E9C:: @ 83F8E9C
- .incbin "baserom.gba", 0x003f8e9c, 0x18
+ .2byte 0x53FF
+ .2byte 0x0101
+ .2byte 0x1E05
+ .2byte 0x4EFF
+ .2byte 0x7FFB
+ .2byte 0x0106
+ .2byte 0x1E05
+ .2byte 0x4EFF
+ .2byte 0x7F7F
+ .2byte 0x010B
+ .2byte 0x1E05
+ .2byte 0x4EFF
.align 2
gUnknown_083F8EB4:: @ 83F8EB4
@@ -52,20 +103,32 @@ gUnknown_083F8EBC:: @ 83F8EBC
.4byte sub_811577C
.4byte sub_81157AC
+ .align 1
gUnknown_083F8EC4:: @ 83F8EC4
- .incbin "baserom.gba", 0x003f8ec4, 0x6
+ .2byte 0x2898
+ .2byte 0x1A6A
+ .2byte 0x2898
gUnknown_083F8ECA:: @ 83F8ECA
- .incbin "baserom.gba", 0x003f8eca, 0x4
+ .byte 0xFB, 0x05, 0xFF, 0x01
+ .align 1
gUnknown_083F8ECE:: @ 83F8ECE
- .incbin "baserom.gba", 0x003f8ece, 0xa
+ .2byte 0, 180
+ .2byte 90, 270
+ .align 2
gUnknown_083F8ED8:: @ 83F8ED8
- .incbin "baserom.gba", 0x003f8ed8, 0x10
+ .4byte 0x10842
+ .4byte 0x21084
+ .4byte 0x42108
+ .4byte 0x84210
+ .align 2
gUnknown_083F8EE8:: @ 83F8EE8
- .incbin "baserom.gba", 0x003f8ee8, 0xc
+ .4byte 0x3E0
+ .4byte 0x7C00
+ .4byte 0xF8000
gUnknown_083F8EF4:: @ 83F8EF4
.byte 0, 3, 4, 6, 12
@@ -120,19 +183,19 @@ RouletteSpritePalette_12:
.align 2
RouletteSpritePalette_13:
- .incbin "baserom.gba", 0x003F907C, 0x20
+ .incbin "graphics/roulette/83F907C.gbapal"
.align 2
RouletteSpritePalette_14:
- .incbin "baserom.gba", 0x003F909C, 0x20
+ .incbin "graphics/roulette/83F909C.gbapal"
.align 2
RouletteSpritePalette_15:
- .incbin "baserom.gba", 0x003F90BC, 0x20
+ .incbin "graphics/roulette/83F90BC.gbapal"
.align 2
RouletteSpritePalette_16:
- .incbin "baserom.gba", 0x003F90DC, 0x20
+ .incbin "graphics/roulette/83F90DC.gbapal"
.align 2
gUnknown_083F90FC:: @ 83F90FC
@@ -594,12 +657,26 @@ gSpriteAnim_83FA38C:: @ 83FA38C
obj_image_anim_end
.align 2
-Unknown_083FA3A0:
- .incbin "baserom.gba", 0x003fa3a0, 0x18
-Unknown_083FA3B8:
- .incbin "baserom.gba", 0x003fa3b8, 0x14
-Unknown_083FA3CC:
- .incbin "baserom.gba", 0x003fa3cc, 0x8
+gSpriteAnim_83FA3A0:: @ 83FA3A0
+ obj_image_anim_frame 1, 2
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 3, 4
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83FA3B8:: @ 83FA3B8
+ obj_image_anim_frame 0, 2
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 2, 5
+ obj_image_anim_frame 3, 5
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnim_83FA3CC:: @ 83FA3CC
+ obj_image_anim_frame 3, 0
+ obj_image_anim_end
.align 2
gSpriteAnim_83FA3D4:: @ 83FA3D4
@@ -616,12 +693,10 @@ gSpriteAnimTable_83FA3E8:: @ 83FA3E8
.4byte gSpriteAnim_83FA378
.4byte gSpriteAnim_83FA38C
.4byte gSpriteAnim_83FA3D4
-
- .align 2
- .4byte Unknown_083FA3A0
- .4byte Unknown_083FA3B8
- .4byte Unknown_083FA3B8
- .4byte Unknown_083FA3CC
+ .4byte gSpriteAnim_83FA3A0
+ .4byte gSpriteAnim_83FA3B8
+ .4byte gSpriteAnim_83FA3B8
+ .4byte gSpriteAnim_83FA3CC
.align 2
gSpriteTemplate_83FA40C:: @ 83FA40C
@@ -755,8 +830,10 @@ gSpriteImageTable_83FA55C: @ 83FA55C
obj_frame_tiles 0x02018080, 0x100
.align 2
-gUnknown_083FA564: @ 83FA564
- .incbin "baserom.gba", 0x003fa564, 0x18
+gSpriteAffineAnim_83FA564:: @ 83FA564
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x2, 0x2, 0, 60
+ obj_rot_scal_anim_end
.align 2
gSpriteAffineAnim_83FA57C:: @ 83FA57C
@@ -767,19 +844,21 @@ gSpriteAffineAnim_83FA57C:: @ 83FA57C
obj_rot_scal_anim_end
.align 2
- .4byte gUnknown_083FA564
+gSpriteAffineAnimTable_83FA5A4:: @ 83FA5A4
+ .4byte gSpriteAffineAnim_83FA564
.align 2
gSpriteAffineAnimTable_83FA5A8:: @ 83FA5A8
.4byte gSpriteAffineAnim_83FA57C
.align 2
-gUnknown_083FA5AC:: @ 83FA5AC
- .incbin "baserom.gba", 0x003fa5ac, 0x10
+gSpriteAffineAnim_83FA5AC:: @ 83FA5AC
+ obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
+ obj_rot_scal_anim_end
.align 2
-@ unreferenced
- .4byte gUnknown_083FA5AC
+gSpriteAffineAnimTable_83FA5BC:: @ 83FA5BC
+ .4byte gSpriteAffineAnim_83FA5AC
.align 2
gSpriteTemplate_83FA5C0:: @ 83FA5C0
@@ -794,24 +873,46 @@ gSpriteTemplate_83FA5F0:: @ 83FA5F0
spr_template 0xFFFF, 1, gOamData_83FA54C, gSpriteAnimTable_83F9ED8, gSpriteImageTable_83FA55C, gSpriteAffineAnimTable_83FA5A8, sub_8119D80
gUnknown_083FA608:: @ 83FA608
- .incbin "baserom.gba", 0x003fa608, 0x6
+ .byte 0, 1, 2, 3, 4
.align 1
gUnknown_083FA60E:: @ 83FA60E
.2byte 0x74, 0x2C
.2byte 0x74, 0x70
+ .align 1
gUnknown_083FA616:: @ 83FA616
- .incbin "baserom.gba", 0x003fa616, 0x8
+ .2byte 256, 84
+ .2byte -16, 84
+ .align 1
gUnknown_083FA61E:: @ 83FA61E
- .incbin "baserom.gba", 0x003fa61e, 0x14
+ .2byte 0x907
+ .2byte 0x808
+ .2byte 0x709
+ .2byte 0x60A
+ .2byte 0x50B
+ .2byte 0x40C
+ .2byte 0x30D
+ .2byte 0x20E
+ .2byte 0x10F
+ .2byte 0x10
+ .align 1
gUnknown_083FA632:: @ 83FA632
- .incbin "baserom.gba", 0x003fa632, 0x18
+ .2byte -1, 0, 1, 0
+ .2byte -2, 0, 2, 0
+ .2byte -3, 0, 3, 0
gUnknown_083FA64A:: @ 83FA64A
.byte -1, 1
gUnknown_083FA64C:: @ 83FA64C
- .incbin "baserom.gba", 0x003fa64c, 0x10
+ .byte 2, 0
+ .byte 2, 0
+ .byte 2, -1
+ .byte 2, -1
+ .byte 2, -1
+ .byte 2, -1
+ .byte 2, -2
+ .byte 2, -2
diff --git a/data/save_failed_screen.s b/data/save_failed_screen.s
index 70cc27fa8..5d22810ea 100644
--- a/data/save_failed_screen.s
+++ b/data/save_failed_screen.s
@@ -3,12 +3,6 @@
.section .rodata
-gUnknown_08411940:: @ 8411940
- .incbin "baserom.gba", 0x00411940, 0x8
-
-gUnknown_08411948:: @ 8411948
- .incbin "baserom.gba", 0x00411948, 0x18
-
gSaveFailedClockPal:: @ 8411960
.incbin "graphics/misc/clock_small.gbapal"
diff --git a/data/secret_base.s b/data/secret_base.s
index 733259b3e..59ded8ddf 100644
--- a/data/secret_base.s
+++ b/data/secret_base.s
@@ -3,11 +3,65 @@
.section .rodata
+ .align 1
gUnknown_083D1358:: @ 83D1358
- .incbin "baserom.gba", 0x003d1358, 0x1c
+ .2byte 0x26, 0x36
+ .2byte 0x27, 0x37
+ .2byte 0x1A0, 0x1A1
+ .2byte 0x1A8, 0x1A9
+ .2byte 0x1B0, 0x1B1
+ .2byte 0x208, 0x210
+ .2byte 0x271, 0x278
gUnknown_083D1374:: @ 83D1374
- .incbin "baserom.gba", 0x003d1374, 0x60
+ .byte 0, 0
+ .byte 1, 3
+ .byte 6, 0
+ .byte 5, 9
+ .byte 12, 0
+ .byte 1, 3
+ .byte 18, 0
+ .byte 7, 13
+ .byte 1, 0
+ .byte 2, 3
+ .byte 7, 0
+ .byte 9, 2
+ .byte 13, 0
+ .byte 13, 4
+ .byte 19, 0
+ .byte 1, 2
+ .byte 2, 0
+ .byte 1, 3
+ .byte 8, 0
+ .byte 1, 2
+ .byte 14, 0
+ .byte 3, 15
+ .byte 20, 0
+ .byte 3, 14
+ .byte 3, 0
+ .byte 9, 3
+ .byte 9, 0
+ .byte 8, 7
+ .byte 15, 0
+ .byte 3, 6
+ .byte 21, 0
+ .byte 5, 9
+ .byte 4, 0
+ .byte 2, 3
+ .byte 10, 0
+ .byte 5, 6
+ .byte 16, 0
+ .byte 15, 3
+ .byte 22, 0
+ .byte 4, 10
+ .byte 5, 0
+ .byte 3, 3
+ .byte 11, 0
+ .byte 1, 2
+ .byte 17, 0
+ .byte 7, 8
+ .byte 23, 0
+ .byte 9, 6
.align 2
gUnknown_083D13D4:: @ 83D13D4
@@ -20,4 +74,4 @@ gUnknown_083D13E4:: @ 83D13E4
.4byte sub_80BCBC0
gUnknown_083D13EC:: @ 83D13EC
- .incbin "baserom.gba", 0x003d13ec, 0xc
+ .byte 0x23,0x24,0xF,0x1F,0x21,0x2F,0xE,0x14,0x20,0x22,0x0,0x0
diff --git a/data/starter_choose.s b/data/starter_choose.s
index 679f0f4d0..4c549b449 100644
--- a/data/starter_choose.s
+++ b/data/starter_choose.s
@@ -73,7 +73,10 @@ gOamData_83F76DC:: @ 83F76DC
.align 2
gUnknown_083F76E4:: @ 83F76E4
- .incbin "baserom.gba", 0x003f76e4, 0x8
+ .byte 60, 32
+ .byte 120, 56
+ .byte 180, 32
+ .byte 0, 0
.align 2
gSpriteAnim_83F76EC:: @ 83F76EC
@@ -124,8 +127,11 @@ gSpriteAnimTable_83F7750:: @ 83F7750
gSpriteAnimTable_83F7758:: @ 83F7758
.4byte gSpriteAnim_83F7744
-Unknown_83F775C:
- .incbin "baserom.gba", 0x003f775c, 0x18
+ .align 2
+gSpriteAffineAnim_83F775C:: @ 83F775C
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
+ obj_rot_scal_anim_frame 0x10, 0x10, 0, 15
+ obj_rot_scal_anim_end
.align 2
gSpriteAffineAnim_83F7774:: @ 83F7774
@@ -134,8 +140,8 @@ gSpriteAffineAnim_83F7774:: @ 83F7774
obj_rot_scal_anim_end
.align 2
-gUnknown_083F778C:: @ 83F778C
- .4byte Unknown_83F775C
+gSpriteAffineAnimTable_83F778C:: @ 83F778C
+ .4byte gSpriteAffineAnim_83F775C
.align 2
gSpriteAffineAnimTable_83F7790:: @ 83F7790
diff --git a/data/text/credits.inc b/data/text/credits.inc
index 2f7aa5478..29abccf91 100644
--- a/data/text/credits.inc
+++ b/data/text/credits.inc
@@ -703,256 +703,307 @@ gCreditsEntryPointerTable:: @ 840C5F0
.4byte CreditsCredits
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsDirector
.4byte CreditsMasuda
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsArtDirector
.4byte CreditsSugimori
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsBattleDirector
.4byte CreditsMorimoto
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsMainProgrammer
.4byte CreditsTetsuyaWatanabe
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsBattleSystemProgrammer
.4byte CreditsSogabe
.4byte CreditsFieldSystemProgrammer
.4byte CreditsTamada
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsMori
.4byte CreditsKagaya
.4byte CreditsMatsuda
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsHiroyukiNakamura
.4byte CreditsTaya
.4byte CreditsNohara
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsTomomichiOhta
.4byte CreditsIwasawa
.4byte CreditsTakenoriOhta
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsMainGraphicDesigner
.4byte CreditsYoshida
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONGraphicDesigners
.4byte CreditsSugimori
.4byte CreditsYoshida
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONGraphicDesigners
.4byte CreditsFujiwara
.4byte CreditsSatoshiOhta
.4byte CreditsIwashita
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONGraphicDesigners
.4byte CreditsTomita
.4byte CreditsUnno
.4byte CreditsEo
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONDesigners
.4byte CreditsMorimoto
.4byte CreditsOkutani
.4byte CreditsNishida
.4byte CreditsTerminator
+
.4byte CreditsPOKeMONDesigners
.4byte CreditsSaito
.4byte CreditsYoshikawa
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsMusicComposition
.4byte CreditsIchinose
.4byte CreditsAoki
.4byte CreditsMasuda
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsSoundEffectsPOKeMONVoices
.4byte CreditsAoki
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsGameDesigners
.4byte CreditsMasuda
.4byte CreditsMorimoto
.4byte CreditsNishino
.4byte CreditsTerminator
+
.4byte CreditsGameDesigners
.4byte CreditsMatsushima
.4byte CreditsTetsujiOhta
.4byte CreditsSato
.4byte CreditsKawachimaru
+
.4byte CreditsGameDesigners
.4byte CreditsShimoyamada
.4byte CreditsOhmori
.4byte CreditsTakahashi
.4byte CreditsTerminator
+
.4byte CreditsPlotScenario
.4byte CreditsMasuda
.4byte CreditsTomisawa
.4byte CreditsNishino
.4byte CreditsTerminator
+
.4byte CreditsGameScenario
.4byte CreditsToshinobuMatsumiya
.4byte CreditsTomisawa
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsScriptDesigners
.4byte CreditsNohara
.4byte CreditsTetsujiOhta
.4byte CreditsTomomichiOhta
.4byte CreditsTerminator
+
.4byte CreditsMapDesigners
.4byte CreditsOhmori
.4byte CreditsTetsujiOhta
.4byte CreditsNishino
.4byte CreditsTerminator
+
.4byte CreditsMapDataDesigners
.4byte CreditsTetsujiOhta
.4byte CreditsTakahashi
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsParametricDesigners
.4byte CreditsNishino
.4byte CreditsMorimoto
.4byte CreditsTetsujiOhta
.4byte CreditsShimoyamada
+
.4byte CreditsTerminator
.4byte CreditsPOKeDEXText
.4byte CreditsMatsushima
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsEnvironmentToolProgrammers
.4byte CreditsSogabe
.4byte CreditsTamada
.4byte CreditsHiroyukiNakamura
.4byte CreditsMori
+
.4byte CreditsProductTesting
.4byte CreditsSuperMarioClub
.4byte CreditsTada
.4byte CreditsOhnishi
.4byte CreditsOkamura
+
.4byte CreditsSpecialThanks
.4byte CreditsTominaga
.4byte CreditsYoshiroTajiri
.4byte CreditsSasaki
.4byte CreditsTerminator
+
.4byte CreditsSpecialThanks
.4byte CreditsHamano
.4byte CreditsChieMatsumiya
.4byte CreditsShinozaki
.4byte CreditsFujii
+
.4byte CreditsSpecialThanks
.4byte CreditsSuyama
.4byte CreditsMitsuhara
.4byte CreditsKomura
.4byte CreditsOhashi
+
.4byte CreditsSpecialThanks
.4byte CreditsTakizawa
.4byte CreditsTakada
.4byte CreditsKondo
.4byte CreditsMashima
+
.4byte CreditsInformationSupervisors
.4byte CreditsEnomoto
.4byte CreditsTerada
.4byte CreditsSakurai
.4byte CreditsSagawa
+
.4byte CreditsCoordinators
.4byte CreditsKyokoWatanabe
.4byte CreditsNakano
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTaskManagers
.4byte CreditsYamagami
.4byte CreditsNomoto
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsProducers
.4byte CreditsJinnai
.4byte CreditsIzushi
.4byte CreditsTsuru
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsExecutiveDirector
.4byte CreditsSatoshiTajiri
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsExecutiveProducers
.4byte CreditsIwata
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsExecutiveProducers
.4byte CreditsIshihara
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsEnglishVersionCoordinators
.4byte CreditsHiroNakamura
.4byte CreditsMcMahill
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsTranslator
.4byte CreditsOgasawara
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsProgrammers
.4byte CreditsMurakawa
.4byte CreditsYamamoto
.4byte CreditsFunakoshi
.4byte CreditsKinashi
+
.4byte CreditsGraphicDesigners
.4byte CreditsYamamoto
.4byte CreditsKinashi
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsProductSupport
.4byte CreditsNakamichi
.4byte CreditsHara
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsArtwork
.4byte CreditsOkada
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsTerminator
.4byte CreditsTextEditor
.4byte CreditsLillygren
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsNOAProductTesting
.4byte CreditsHertzog
.4byte CreditsRidgeway
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsBrailleCodeCheck
.4byte CreditsNFotB
.4byte CreditsMaurer
.4byte CreditsJapanBrailleLibrary
.4byte CreditsEBU
+
.4byte CreditsBrailleCodeCheck
.4byte CreditsABA
.4byte CreditsRNZFotB
.4byte CreditsTerminator
.4byte CreditsTerminator
+
.4byte CreditsSpecialThanks
.4byte CreditsFord
.4byte CreditsBarlow
.4byte CreditsUesugi
.4byte CreditsUyama
+
.4byte CreditsSpecialThanks
.4byte CreditsHowitt
.4byte CreditsTilden
diff --git a/data/title_screen.s b/data/title_screen.s
index b5e791273..7c818eeb2 100644
--- a/data/title_screen.s
+++ b/data/title_screen.s
@@ -41,8 +41,40 @@ gUnknown_08393BF8:: @ 8393BF8
LogoShineTiles: @ 8393D14
.incbin "graphics/title_screen/logo_shine.4bpp.lz"
+ .align 1
gUnknown_08393E64:: @ 8393E64
- .incbin "baserom.gba", 0x00393e64, 0x40
+ .2byte 0x10
+ .2byte 0x110
+ .2byte 0x210
+ .2byte 0x310
+ .2byte 0x410
+ .2byte 0x510
+ .2byte 0x610
+ .2byte 0x710
+ .2byte 0x810
+ .2byte 0x910
+ .2byte 0xA10
+ .2byte 0xB10
+ .2byte 0xC10
+ .2byte 0xD10
+ .2byte 0xE10
+ .2byte 0xF10
+ .2byte 0x100F
+ .2byte 0x100E
+ .2byte 0x100D
+ .2byte 0x100C
+ .2byte 0x100B
+ .2byte 0x100A
+ .2byte 0x1009
+ .2byte 0x1008
+ .2byte 0x1007
+ .2byte 0x1006
+ .2byte 0x1005
+ .2byte 0x1004
+ .2byte 0x1003
+ .2byte 0x1002
+ .2byte 0x1001
+ .2byte 0x1000
.align 2
gOamData_8393EA4:: @ 8393EA4
diff --git a/data/trainer_card.s b/data/trainer_card.s
index d7d71fb68..e73af87a2 100644
--- a/data/trainer_card.s
+++ b/data/trainer_card.s
@@ -7,8 +7,9 @@
gBadgesTiles:: @ 83B5AB8
.incbin "graphics/trainer_card/badges.4bpp"
+@ XXX: what is this?
.align 2
- .4byte 0x02000000 @ XXX
+ .4byte 0x2000000
.align 2
gUnknown_083B5EBC:: @ 83B5EBC
diff --git a/graphics/interface/83E5948.pal b/graphics/interface/83E5948.pal
new file mode 100644
index 000000000..570af0a23
--- /dev/null
+++ b/graphics/interface/83E5948.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+65 197 131
+255 123 90
+131 0 0
+0 0 0
+238 238 238
+197 197 197
+148 148 148
+255 0 0
+180 0 0
+255 197 197
+82 82 255
+49 49 180
+197 197 255
+90 90 98
+0 0 0
+0 0 0
diff --git a/graphics/misc/option_menu_equals_sign.png b/graphics/misc/option_menu_equals_sign.png
new file mode 100644
index 000000000..7e56e3cc3
--- /dev/null
+++ b/graphics/misc/option_menu_equals_sign.png
Binary files differ
diff --git a/graphics/misc/option_menu_text.pal b/graphics/misc/option_menu_text.pal
new file mode 100644
index 000000000..5e136a7ff
--- /dev/null
+++ b/graphics/misc/option_menu_text.pal
@@ -0,0 +1,35 @@
+JASC-PAL
+0100
+32
+0 0 0
+255 139 131
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 49 24
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+0 0 0
+255 180 82
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+197 123 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
diff --git a/graphics/pokenav/83DFECC.pal b/graphics/pokenav/83DFECC.pal
new file mode 100644
index 000000000..16e02a3c9
--- /dev/null
+++ b/graphics/pokenav/83DFECC.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 0 0
+0 0 0
+82 106 106
+213 213 172
+57 65 74
+0 0 0
+0 0 0
+0 0 0
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 246 213
diff --git a/graphics/pokenav/83DFEEC.png b/graphics/pokenav/83DFEEC.png
new file mode 100644
index 000000000..8b3a39ed5
--- /dev/null
+++ b/graphics/pokenav/83DFEEC.png
Binary files differ
diff --git a/graphics/pokenav/83DFF8C.bin b/graphics/pokenav/83DFF8C.bin
new file mode 100644
index 000000000..9f0d9eb2f
--- /dev/null
+++ b/graphics/pokenav/83DFF8C.bin
Binary files differ
diff --git a/graphics/pokenav/83E003C.pal b/graphics/pokenav/83E003C.pal
new file mode 100644
index 000000000..8d1f2cb75
--- /dev/null
+++ b/graphics/pokenav/83E003C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+238 238 230
+238 230 255
+213 197 255
+255 222 213
+255 189 180
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/pokenav/83E005C.png b/graphics/pokenav/83E005C.png
new file mode 100644
index 000000000..b34d17411
--- /dev/null
+++ b/graphics/pokenav/83E005C.png
Binary files differ
diff --git a/graphics/pokenav/83E007C.bin b/graphics/pokenav/83E007C.bin
new file mode 100644
index 000000000..c2ba207a4
--- /dev/null
+++ b/graphics/pokenav/83E007C.bin
Binary files differ
diff --git a/graphics/pokenav/83E0124_pal.bin b/graphics/pokenav/83E0124_pal.bin
new file mode 100644
index 000000000..b1a4230d4
--- /dev/null
+++ b/graphics/pokenav/83E0124_pal.bin
Binary files differ
diff --git a/graphics/pokenav/83E0144_pal.bin b/graphics/pokenav/83E0144_pal.bin
new file mode 100644
index 000000000..6ea1b763c
--- /dev/null
+++ b/graphics/pokenav/83E0144_pal.bin
Binary files differ
diff --git a/graphics/pokenav/83E0164.bin b/graphics/pokenav/83E0164.bin
new file mode 100644
index 000000000..d5b3d5a18
--- /dev/null
+++ b/graphics/pokenav/83E0164.bin
Binary files differ
diff --git a/graphics/pokenav/83E01AC.bin b/graphics/pokenav/83E01AC.bin
new file mode 100644
index 000000000..6dffc2ac5
--- /dev/null
+++ b/graphics/pokenav/83E01AC.bin
@@ -0,0 +1 @@
+""""""""&""""""""""""""""""""""""""& \ No newline at end of file
diff --git a/graphics/pokenav/83E01F4.bin b/graphics/pokenav/83E01F4.bin
new file mode 100644
index 000000000..7928705a9
--- /dev/null
+++ b/graphics/pokenav/83E01F4.bin
@@ -0,0 +1 @@
+"""""""""""&"""""""""""""""""""""""""""""""""""& \ No newline at end of file
diff --git a/graphics/pokenav/83E0254.pal b/graphics/pokenav/83E0254.pal
new file mode 100644
index 000000000..98c309d52
--- /dev/null
+++ b/graphics/pokenav/83E0254.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
+0 255 0
diff --git a/graphics/pokenav/83E0274.pal b/graphics/pokenav/83E0274.pal
new file mode 100644
index 000000000..4755184e2
--- /dev/null
+++ b/graphics/pokenav/83E0274.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+65 65 65
+49 65 74
+106 115 123
+255 255 255
+189 106 115
+255 156 156
+255 222 205
+180 131 156
+189 139 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
+255 139 0
diff --git a/graphics/pokenav/83E02B4.pal b/graphics/pokenav/83E02B4.pal
new file mode 100644
index 000000000..7af9ff8e1
--- /dev/null
+++ b/graphics/pokenav/83E02B4.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+82 82 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 156 156
diff --git a/graphics/pokenav/83E02D4.bin b/graphics/pokenav/83E02D4.bin
new file mode 100644
index 000000000..dc7b2901f
--- /dev/null
+++ b/graphics/pokenav/83E02D4.bin
Binary files differ
diff --git a/graphics/pokenav/83E0314.pal b/graphics/pokenav/83E0314.pal
new file mode 100644
index 000000000..3b2faa935
--- /dev/null
+++ b/graphics/pokenav/83E0314.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 8 65
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+57 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 156 156
diff --git a/graphics/pokenav/83E03A8.pal b/graphics/pokenav/83E03A8.pal
new file mode 100644
index 000000000..ba97343c5
--- /dev/null
+++ b/graphics/pokenav/83E03A8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+197 197 197
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 205 222
diff --git a/graphics/pokenav/83E03C8.bin b/graphics/pokenav/83E03C8.bin
new file mode 100644
index 000000000..20e73b807
--- /dev/null
+++ b/graphics/pokenav/83E03C8.bin
Binary files differ
diff --git a/graphics/pokenav/83E3780.png b/graphics/pokenav/83E3780.png
new file mode 100644
index 000000000..84c74462d
--- /dev/null
+++ b/graphics/pokenav/83E3780.png
Binary files differ
diff --git a/graphics/pokenav/83E3BC0.bin b/graphics/pokenav/83E3BC0.bin
new file mode 100644
index 000000000..161928e5c
--- /dev/null
+++ b/graphics/pokenav/83E3BC0.bin
Binary files differ
diff --git a/graphics/pokenav/83E42D8.pal b/graphics/pokenav/83E42D8.pal
new file mode 100644
index 000000000..f30ee169b
--- /dev/null
+++ b/graphics/pokenav/83E42D8.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+255 255 255
diff --git a/graphics/pokenav/83E4678.pal b/graphics/pokenav/83E4678.pal
new file mode 100644
index 000000000..9b39ac8cf
--- /dev/null
+++ b/graphics/pokenav/83E4678.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+189 222 246
+164 197 230
+172 205 230
+255 255 255
+230 238 246
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/roulette/83F86BC.pal b/graphics/roulette/83F86BC.pal
new file mode 100644
index 000000000..ed68618ff
--- /dev/null
+++ b/graphics/roulette/83F86BC.pal
@@ -0,0 +1,259 @@
+JASC-PAL
+0100
+256
+82 156 49
+41 41 41
+98 98 115
+172 180 197
+255 255 255
+255 205 41
+255 172 0
+213 164 65
+205 164 82
+139 106 65
+131 222 189
+74 189 156
+115 189 148
+123 180 172
+74 115 115
+255 255 0
+74 106 156
+41 41 41
+98 98 115
+156 156 164
+255 255 255
+205 156 205
+164 106 164
+172 131 164
+156 123 156
+90 57 106
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+74 106 156
+41 41 41
+123 123 131
+172 180 197
+255 255 255
+238 238 156
+189 180 106
+131 90 32
+255 131 90
+189 106 98
+230 222 255
+74 189 156
+255 255 255
+123 180 172
+255 255 255
+255 255 255
+74 106 156
+57 57 65
+98 98 115
+156 156 164
+255 255 255
+106 205 205
+246 98 90
+106 156 255
+255 255 255
+156 255 106
+246 230 74
+255 230 123
+255 255 255
+255 255 156
+156 255 148
+205 156 255
+74 106 156
+41 41 41
+98 98 115
+205 205 213
+255 255 255
+123 238 139
+255 172 139
+16 156 74
+197 164 255
+49 106 32
+115 197 131
+197 139 189
+255 82 57
+255 238 82
+205 180 8
+255 205 8
+74 106 156
+106 139 230
+82 115 205
+255 255 255
+255 255 255
+255 205 41
+255 172 0
+213 164 65
+205 164 82
+139 106 65
+131 222 189
+74 189 156
+115 189 148
+123 180 172
+74 115 115
+255 255 255
+74 106 156
+255 246 65
+255 255 164
+255 246 65
+255 255 255
+205 156 205
+164 106 164
+172 131 164
+156 123 156
+90 57 106
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+65 65 57
+74 106 156
+172 255 238
+222 255 255
+148 255 238
+255 255 255
+255 205 41
+255 172 0
+213 164 65
+205 164 82
+139 106 65
+131 222 189
+74 189 156
+115 189 148
+123 180 172
+74 115 115
+65 65 57
+74 106 156
+255 205 255
+255 222 255
+255 197 255
+255 255 255
+205 156 205
+164 106 164
+172 131 164
+156 123 156
+90 57 106
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+65 65 57
+74 106 156
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 205 41
+255 172 0
+213 164 65
+205 164 82
+139 106 65
+131 222 189
+74 189 156
+115 189 148
+123 180 172
+74 115 115
+255 255 255
+74 106 156
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+205 156 205
+164 106 164
+172 131 164
+156 123 156
+90 57 106
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+74 106 156
+255 246 82
+164 255 222
+172 180 197
+255 255 255
+255 246 65
+246 205 24
+238 197 98
+205 172 90
+164 131 90
+156 246 222
+90 213 180
+131 222 172
+115 189 156
+98 148 148
+65 65 57
+74 106 156
+238 189 238
+156 148 148
+172 180 197
+255 255 255
+255 205 255
+222 156 230
+197 156 197
+172 139 172
+139 106 148
+205 205 230
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+65 65 57
+74 106 156
+238 230 246
+205 205 230
+172 180 197
+255 255 255
+255 255 230
+255 255 164
+255 255 255
+222 255 255
+255 246 255
+255 222 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+65 65 57
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
+255 255 255
diff --git a/graphics/roulette/83F88BC.bin b/graphics/roulette/83F88BC.bin
new file mode 100644
index 000000000..6950027c3
--- /dev/null
+++ b/graphics/roulette/83F88BC.bin
Binary files differ
diff --git a/graphics/roulette/83F907C.pal b/graphics/roulette/83F907C.pal
new file mode 100644
index 000000000..9d44b25c8
--- /dev/null
+++ b/graphics/roulette/83F907C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+74 106 156
+57 57 65
+106 106 123
+255 255 164
+106 222 222
+246 98 90
+222 255 255
+106 222 222
+246 98 90
+255 222 255
+106 222 222
+246 98 90
+222 222 230
+222 222 230
+222 222 230
+222 222 230
diff --git a/graphics/roulette/83F909C.pal b/graphics/roulette/83F909C.pal
new file mode 100644
index 000000000..81b0328a5
--- /dev/null
+++ b/graphics/roulette/83F909C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+74 106 156
+57 57 65
+106 106 123
+255 255 164
+106 156 255
+222 222 230
+222 255 255
+106 156 255
+222 222 230
+255 222 255
+106 156 255
+222 222 230
+222 222 230
+222 222 230
+222 222 230
+222 222 230
diff --git a/graphics/roulette/83F90BC.pal b/graphics/roulette/83F90BC.pal
new file mode 100644
index 000000000..42a1bae94
--- /dev/null
+++ b/graphics/roulette/83F90BC.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+74 106 156
+57 57 65
+106 106 123
+255 255 164
+255 156 139
+246 246 156
+222 255 255
+255 156 139
+246 246 156
+255 222 255
+255 156 139
+246 246 156
+222 222 230
+222 222 230
+222 222 230
+222 222 230
diff --git a/graphics/roulette/83F90DC.pal b/graphics/roulette/83F90DC.pal
new file mode 100644
index 000000000..ff76379c8
--- /dev/null
+++ b/graphics/roulette/83F90DC.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+74 106 156
+57 57 65
+106 106 123
+255 255 164
+255 230 123
+222 222 230
+222 255 255
+255 230 123
+222 222 230
+255 222 255
+255 230 123
+222 222 230
+222 222 230
+222 222 230
+222 222 230
+222 222 230
diff --git a/graphics/roulette/center.pal b/graphics/roulette/center.pal
deleted file mode 100755
index 5eb074037..000000000
--- a/graphics/roulette/center.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 106 156
-41 41 41
-123 123 131
-172 180 197
-255 255 255
-238 238 156
-189 180 106
-131 90 32
-255 131 90
-189 106 98
-230 222 255
-74 189 156
-255 255 255
-123 180 172
-255 255 255
-255 255 255
diff --git a/graphics/roulette/wheel.png b/graphics/roulette/wheel.png
new file mode 100644
index 000000000..a0f121843
--- /dev/null
+++ b/graphics/roulette/wheel.png
Binary files differ
diff --git a/graphics/roulette/wheel_map.bin b/graphics/roulette/wheel_map.bin
new file mode 100644
index 000000000..53d919545
--- /dev/null
+++ b/graphics/roulette/wheel_map.bin
Binary files differ
diff --git a/graphics/unknown/83764A4.pal b/graphics/unknown/83764A4.pal
new file mode 100644
index 000000000..b2e8a5f5f
--- /dev/null
+++ b/graphics/unknown/83764A4.pal
@@ -0,0 +1,7 @@
+JASC-PAL
+0100
+4
+0 0 0
+255 0 0
+74 74 74
+0 0 0
diff --git a/graphics/unknown/83C170C.pal b/graphics/unknown/83C170C.pal
new file mode 100644
index 000000000..328b93f67
--- /dev/null
+++ b/graphics/unknown/83C170C.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 98 115
+255 255 255
+205 205 205
+164 164 164
+123 123 123
+98 98 115
+41 57 65
+57 106 139
+41 82 115
+255 230 172
+255 197 90
+255 32 32
+106 180 213
+41 123 164
+189 156 90
+0 0 0
diff --git a/graphics/unknown/unknown_E81098.bin b/graphics/unknown/unknown_E81098.bin
deleted file mode 100755
index 4cc6a9b90..000000000
--- a/graphics/unknown/unknown_E81098.bin
+++ /dev/null
@@ -1,189 +0,0 @@
-QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''''''''''''''''''''''&&QQQQQQQQQQQQQQ'''''''''''''''''''''''&&&'&&&&&&&&&&&&&%%QQQ'))))''''))))''''))))''''&&&&&&&&&&&&&&&&%%%%%%%%%%%%))))))))))))))))))))))))&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%QQQ))))'))))''''))))''''&&&&''''&&&&&&&&%%%%&&&&%%%%%%%%QQQQQQQQQQQQQ'''Q'''''''''''''''&&&'''''&&&&&&&'%%&&&&&&QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQ''''''''''''''&&''''''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQ''QQ''''Q'''''''''''&'''''&&&Q''''''''''''''''''&&''''&&&&''&&&&&%&&&&%%%%&&&%%%%%&%%%%%%%'''&&&&&&&&&&&%%&&&%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&'''%%&&&&&&%%%%%&&&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'''''Q'''''''&&''''''&&&&''''%&&&&&''%%%%&&&&%%%%%&&&%%%%%%%&QQQQQQQQQQQQQQQ'QQQQQ''QQQQ''''QQ'''''Q&''''''&&&'''''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)QQQQQ))QQQQQ''QQQ'''QQ))'''Q))))'&)))))&&)))))&&&))))&&&%)))&&&%%'''&&&&%''&&&&%%'&&&%%%%&&&%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%&&&&'''%%&&&&''%%%%&&&'%%%%%&&&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%''QQQQQ'''QQQ'''))QQ&'))))Q&&)))))&&&)))))%&&&))))%%&&&)))QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQ)))QQQ))))QQ)))))Q)))))&Q))))&&''))&&&''''&&&%'''&&&%%))&&&%%%)&&&%%%%&&&%%%%%&&%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && %%
-
-
-
-
-%%%
-
-
-
-
-%%
-
-
-
-
-
-&
-
-
-
-
-
-
-&
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-%%%%%%%%
-
-%%%%%%
-
-
-%%%%%
-
-
-
-%%%%
-
-
-
-
-%%%
-
-
-
-
-
-
-%
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-%%%&&&))%%%%&&&)%%%%%&&&%%%%%%&&%%%%%%%&%%%%%%%%%%%%%%%%
-%%%%%%%QQQQQQ'QQQQQ''QQQQ'''QQQQ'''QQQ''''QQ''''&QQ''''&Q''''&&'''&&%%%''&&%%%%'&&&%%%%&&&%%%%%&&%%%%%%&&%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% &&&&&&&&&&&               && && && && && &  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-%%%%%%
-
-
-%%%%%
-
-
-%%%%%
-
-
-
-%%%%
-
-
-
-
-%%%
-
-
-
-
-
-%%
-
-
-
-
-
-
-%
-
-
-
-
-
-
-%QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQQQ'QQQQQQ'Q'''&&&''''&&%'''&&&%''''&&%%'''&&%%%'''&&%%%''&&&%%%''&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&                          
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-%%
-%%%% &%% &&&&QQQQQ''QQQQQ''QQQQ'''QQQQ'''QQQQ'''QQQ''''QQQ'''&QQQ'''&'&&&%%%%'&&%%%%%'&&%%%%%&&%%%%%%&&%%%%%%&&%%%%%%&%%%%%%%&%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&                           && &&& &&& &&&&&&&&QQQ'''&QQ'''&&QQ'''&&QQ'''&&QQ'''&&Q'''&&&Q'''&&%Q'''&&%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        Q'''&&%Q'''&&%Q'''&&%''''&&%)))&&%%)))&&%%)))&&%%)))&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        )))&&%%)))&&%%)))&&%%)))&&%%)))&&%%)))&&%%)))&&%%)))&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&%%%%&&&&&&&&&&&&&&&&&&&&      &&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXX)))&&%%)))&&%%)))&&%%)))&&%%''''&&%Q'''&&%Q'''&&%Q'''&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%      X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXQ'''&&%Q'''&&%Q'''&&&QQ'''&&QQ'''&&QQ'''&&QQ'''&&QQQ'''&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%     X XX XX XX XXX XXX XXXX XXXXQQQ'''&QQQ'''&QQQ''''QQQQ'''QQQQ'''QQQQ'''QQQQQ''QQQQQ''&%%%%%%%&%%%%%%%&&%%%%%%&&%%%%%%&&%%%%%%'&&%%%%%'&&%%%%%'&&&%%%%%%%%%%%%%%%%%%&&&&&&&&}&&&}}&&&}}}}}&&}}}}}}}}}}}}}}          } }            ] ] XXXXX XXXXX&XXXXX]&&&XXX]]&&&XX]]]]]&&&]]]]]]&&]]]]]]]]XXXXXXXXXXXXXXXXXXXXXXXWXXXXXXXUXXXXXXWUXXXXXXUU&XXXXWUU&&&XXUUUQQQQQQ'QQQQQQ'QQQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ''&&%%%%''&&&%%%'''&&%%%'''&&%%%''''&&%%'''&&&%''''&&%Q'''&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%z%%%%%%%z%%%%%%%%&&&&}%%&}}}%%%%z}}}%%zzzz}}zzzzzz|}zzzzzzz}zzzzzzzzzzzzzzzz}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}         }}}           ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]&&&&UUU]]]&%%UU]]]Z%%%%]]ZZZZ%%]\ZZZZZZ]ZZZZZZZZZZZZZZZZZZZZZZZQ''''&&QQ''''&QQ''''&QQQ''''QQQQ'''QQQQ'''QQQQQ''QQQQQQ'%%%%%%%%&%%%%%%%&&%%%%%%&&%%%%%%&&&%%%%%'&&&%%%%''&&%%%%'''&&%%%%zzzzzzz%zzzzzzz%%zzzzzz%%%zzzzz%%%%zzzz%%%%%zzz%%%%%zzz%%%%%%zzz|}}}}}}zz}}}}}}zzz}}}}}zzzz}}}}zzzzz}}}zzzzzz}}zzzzzzz|zzzzzzzz}}}}}}}}}& }}}}}&& }}}}&&xx}}}}&&xx}}}&&xxx}}&&xxxx}}&&xxxx   x xxx xxxxxx xxxxxxxxxxxxxxxx   x xxxxxx     hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh]]]]&]]]]]&&]]]]]hh&&]]]]hh&&]]]]hhh&&]]]hhhh&&]]hhhh&&]]]]]]]]\Z]]]]]]ZZ]]]]]ZZZ]]]]ZZZZ]]]ZZZZZ]]ZZZZZZ\ZZZZZZZZZZZZZZZZZZZZZZ%ZZZZZZZ%ZZZZZZ%%ZZZZZ%%%ZZZZ%%%%ZZZ%%%%%ZZZ%%%%%ZZ%%%%%%QQQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''&&&%%''''&&&%''))&&&Q))))&&Q)))))&QQ)))))QQQ))))QQQQ)))%%%%%%%z%%%%%%%%%%%%%%%%&%%%%%%%&&%%%%%%&&&%%%%%)&&&%%%%))&&&%%%zzzzzzzzzzzzzzzz%zzzzzzz%%%zzzzz%%%%zzzz%%%%%zzz%%%%%%zz%%%%%%%%zz}}}}}}zzz}}}}}zzzz|}}}zzzzzz}&zzzzzzz&zzzzzz%%zzzzz%%%zzzzz%%u}&&xxxxx}&&xxxxx&&xxxxxx&xxxxxxx&xxxxxxxuwxxxxxxuuuwxxxxuuuuuwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh&&]hhhhh&&]hhhhhh&&hhhhhhh&hhhhhhh&hhhhhhgehhhhgeeehhgeeeee]]]]]]ZZ]]]]]ZZZ]]]\ZZZZ&]ZZZZZZ&ZZZZZZZ%%ZZZZZZ%%%ZZZZZe%%ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ%ZZZZZ%%%ZZZZ%%%%ZZZ%%%%%ZZ%%%%%%%%%%%%%%Z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%&&%%%%%&&&%%%%&&&)%%%&&&))QQQQQ))QQQQQQ)QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)))&&&%%))))&&&%)))))&&&)))))&&Q))))'&QQ))'''QQQ'''QQQQQ''%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%&&&%%%%%'&&&%%%%''&&&&%%'''&&&&%%zzz%%%u%%%%%%uu%%%%%uuu%%%%%%uu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%uuuuuuuwuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu%%uuuuuu%%%%%uuu%%%%%%%uxxxxxxxxuuwxxxxxuuuuuuwxuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuxxxxxxxxxxxxxxxxxxxxxxxxuuuwxxxxuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuxxx&&hhhxxx&&hhhxxx&&hhhxxx&&hhhuuu%%eeeuuu%%eeeuuu%%eeeuuu%%eeehhhhhhhhhhhhhhhhhhhhhhhhhhhhgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeehhhhhhhhhhhhhgeehgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeegeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee%%eee%%%%%e%%%%%%%e%%%ZZZ%ee%%%%%%eee%%%%%ee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%&&&%%%%&&&'%%&&&&''%&&&&'''%%&&&)))%&&&))))&&&)))))&&)))))&'))))Q'''))QQ'''QQQ''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''''&&&''''''&Q'''''QQ''''QQQQ''QQQQQ'QQQQQQQQQQQQQQQ&%%%%%%%&&&%%%%%&&&&%%%%''&&&&&%''''&&&&''''''&&'''''''Q'''''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%&&&%%%%%&&&&&&%%'''&&&&&%%uuuuuu%%%%%%uu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%uuuuuuuuuuuuuuuu%%%%uuuu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%uuu%%eeeuuu%%eeeuuu%%eee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%eeeeeeeeeeeeeeeeeeee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%eeeeee%%ee%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%&&&%%&&&&&&&&&&&'''%%%%%%%&%%%%%&&&%%%%&&&&%&&&&&''&&&&''''&&''''''''''''''''''Q&&&'''''&'''''''''''Q''''QQ''QQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ''''''&&''''''''''''''QQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ&&&&&&%%'&&&&&&&'''''&&&'''''''''''''''Q'''QQQQQQQQQQQQQ%%%%%%%%&&&&%%%%&&&&&&&&''''&&&&''''))))''''))))'))))QQQ%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&))))))))))))))))))))))))%%%%%%%%%%%%&&&&&&&&&&&&&&&&''''))))''''))))''''))))'QQQ%%&&&&&&&&&&&&&'&&&'''''''''''''''''''''''QQQQQQQQQQQQQQ&&'''''''''''''''''''''''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)QQQQQQ))QQQQQ)))QQQQ))))QQQ)))))QQ&)))))Q&&))))Q&&&))''%&&&''''%%&&&'''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQQQ%%%&&'''%%%%&&''%%%%&&&'%%%%%&&&%%%%%%&&%%%%%%&&%%%%%%%&%%%%%%%%'QQQQQQ''QQQQQ'''QQQQ'''QQQQ''''QQQ&''''QQ&''''QQ&&''''Q%%%%%%%%
-%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&'''Q%&&''''%&&&'''%%&&''''%%%&&'''%%%&&'''%%%&&&''%%%%&&''QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'QQQQQQ'QQQQQQ'QQQQQQ%%%%%%%%%%%%%%%%%%&&&'%%%%%&&'%%%%%&&'%%%%%%&&%%%%%%&&%%%%%%&&%%%%%%%&%%%%%%%&''QQQQQ''QQQQQ'''QQQQ'''QQQQ'''QQQQ''''QQQ&'''QQQ&'''QQQ%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&'''QQQ&&'''QQ&&'''QQ&&'''QQ&&'''QQ&&&'''Q%&&'''Q%&&'''Q%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&'''Q%&&'''Q%&&'''Q%&&''''%%&&)))%%&&)))%%&&)))%%&&)))&&&&%%%%&&&&%%%%XXXXUUUUXXXXUUUUXXXXUUUU%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%UUU%%%%%UUU%%%%%UUU%%%%%%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))%%&&)))XXXXUUUUXXXXUUUUXXXXUUUUXXXWUUUUXXXUUUUUXXXUUUUUXXXUUUUUXXXUUUUUUUU%%%%%UUU%%%%%UUU%%%%%UUU%%%%%UU%%%%%%UU%%%%%%UU%%%%%%UU%%%%%%%%&&)))%%&&)))%%&&)))%%&&)))%&&''''%&&'''Q%&&'''Q%&&'''QXXXUUUUUXXWUUUUUXXUUUUUUXXUUUUUUXXUUUUUUXWUUUUUUXUUUUUUUWUUUUUUUUU%%%%%%UU%%%%%%U%%%%%%%U%%%%%%%U%%%%%%%U%%%%%%%%%%%%%%%%%%%%%%&%&&'''Q%&&'''Q&&&'''Q&&'''QQ&&'''QQ&&'''QQ&&'''QQ&'''QQQUUUUUUUUUUUUUUU%UUUUUUU%UUUUUU%%UUUUUU%%UUUUUU%%UUUUU%%%UUUUU%%%%%%%%%%&%%%%%%%&%%%%%%&&%%%%%%&&%%%%%%&&%%%%%&&'%%%%%&&'%%%%&&&'&'''QQQ&'''QQQ''''QQQ'''QQQQ'''QQQQ'''QQQQ''QQQQQ''QQQQQUUUU%%%%UUUU%%%%UUU%%%%%%%U%%%%%%%%%%%%%Z%%%%%%%Z%%%%%%%%%%%%%%%%%%%&&''%%%&&&''%%%&&'''%%%&&'''%%&&''''%&&&'''%&&''''&&&'''Q'QQQQQQ'QQQQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ%%%%%%%%%%%%%%%&%%%%%%&&%%%%%%&&%%%%%&&&%%%%&&&'%%%%&&''%%%&&'''&&''''Q&''''QQ&''''QQ''''QQQ'''QQQQ'''QQQQ''QQQQQ'QQQQQQ%%&&&'''%&&&''''&&&))''&&))))Q&)))))Q)))))QQ))))QQQ)))QQQQ'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ))QQQQQ)QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
diff --git a/include/asm.inc.h b/include/asm.inc.h
index 3e7c5fa99..c415cd825 100644
--- a/include/asm.inc.h
+++ b/include/asm.inc.h
@@ -193,6 +193,7 @@ void sp13E_warp_to_last_warp(void);
void sub_8080EF0(void);
void sp13F_fall_to_last_warp(void);
void sub_8080F68(void);
+void sub_8080F9C(void);
void sub_8081594(u8);
void sub_80815E0(u8 val);
@@ -419,6 +420,8 @@ s16 sub_810CAE4(u8, struct Pokeblock *);
void sub_810CC80(void);
u8 sub_810D32C(void);
void ResetCyclingRoadChallengeData(void);
+bool32 sub_810D9B0(u16);
+u8 sub_810D9EC(s8 *, s8 *, s16 *, s16 *);
void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
void ScriptShowElevatorMenu(void);
u8 GetLeadMonIndex(void);
diff --git a/include/truck_scene.h b/include/field_special_scene.h
index f55a4ced7..5841d6bce 100644
--- a/include/truck_scene.h
+++ b/include/field_special_scene.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_TRUCK_SCENE_H
-#define GUARD_TRUCK_SCENE_H
+#ifndef GUARD_FIELD_SPECIAL_SCENE_H
+#define GUARD_FIELD_SPECIAL_SCENE_H
s32 GetTruckCameraBobbingY(int a1);
s32 GetTruckBoxMovement(int a1);
@@ -10,4 +10,4 @@ void Task_HandleTruckSequence(u8 taskId);
void ExecuteTruckSequence(void);
void EndTruckSequence(void);
-#endif // GUARD_TRUCK_SCENE_H
+#endif // GUARD_FIELD_SPECIAL_SCENE_H
diff --git a/include/rom4.h b/include/rom4.h
index 0fe80a82b..44819cbee 100644
--- a/include/rom4.h
+++ b/include/rom4.h
@@ -43,9 +43,9 @@ void update_saveblock1_field_object_movement_behavior(u8, u8);
void warp_in(void);
void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
// warp1_set_2
-// saved_warp2_set
+void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId);
void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
-// copy_saved_warp2_bank_and_enter_x_to_warp1
+void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
// sub_8053538
void sub_8053570(void);
void sub_8053588(u8);
diff --git a/ld_script.txt b/ld_script.txt
index d2fb31c6e..b258669dc 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -61,6 +61,7 @@ SECTIONS {
src/rng.o(.text);
asm/util.o(.text);
src/blend_palette.o(.text);
+ src/daycare.o(.text);
asm/daycare.o(.text);
asm/egg_hatch.o(.text);
asm/rom_804373C.o(.text);
@@ -166,8 +167,7 @@ SECTIONS {
src/field_poison.o(.text);
src/pokemon_size_record.o(.text);
asm/fldeff_80C5CD4.o(.text);
- src/truck_scene.o(.text);
- asm/porthole.o(.text);
+ src/field_special_scene.o(.text);
asm/rotating_gate.o(.text);
src/safari_zone.o(.text);
asm/contest_link_80C857C.o(.text);
@@ -370,7 +370,7 @@ SECTIONS {
data/contest_link_80C2020.o(.rodata);
src/pokemon_size_record.o(.rodata);
data/fldeff_80C5CD4.o(.rodata);
- data/truck_scene.o(.rodata);
+ data/field_special_scene.o(.rodata);
data/rotating_gate.o(.rodata);
data/item_use.o(.rodata);
data/battle_anim_80CA710.o(.rodata);
@@ -416,6 +416,7 @@ SECTIONS {
data/diploma.o(.rodata);
data/strings.o(.rodata);
data/berry_tag_screen.o(.rodata);
+ src/save_failed_screen.o(.rodata);
data/save_failed_screen.o(.rodata);
data/pokeblock_feed.o(.rodata);
data/intro_credits_graphics.o(.rodata);
diff --git a/shared_syms.txt b/shared_syms.txt
index b44d54835..d695f8899 100644
--- a/shared_syms.txt
+++ b/shared_syms.txt
@@ -10,6 +10,7 @@ unk_2007900 = 0x2007900;
unk_2008000 = 0x2008000;
unk_2015de0 = 0x2015de0;
+unk_2015e00 = 0x2015e00;
unk_2016000 = 0x2016000;
unk_20160BC = 0x20160BC;
diff --git a/src/bard_music.c b/src/bard_music.c
index 73eaa0f58..ee70f5319 100644
--- a/src/bard_music.c
+++ b/src/bard_music.c
@@ -1,157 +1,84 @@
#include "global.h"
#include "asm.h"
-typedef struct BardSound {
+struct BardSound
+{
u8 pad_00[48];
-} BardSound;
-
-typedef struct UnkBard {
- /* 0x00 */ u8 var00;
- /* 0x01 */ s8 var01;
- /* 0x02 */ u16 var02;
- /* 0x04 */ u16 var04;
- /* 0x06 */ u16 var06;
-} UnkBard;
-
-typedef struct UnkBard3 {
- /* 0x00 */ u16 var00;
- /* 0x02 */ u16 var02;
- /* 0x04 */ s16 var04;
- /* 0x06 */ u16 var06;
-} UnkBard3;
-
-typedef struct UnkBard2 {
- /* 0x00 */ u8 var00;
- /* 0x01 */ u8 var01;
- /* 0x02 */ u8 var02;
- /* 0x03 */ u8 var03;
- /* 0x04 */ u16 var04;
- u8 pad06[4];
- /* 0x0A */ u16 var0A;
- u8 pad0C[12];
- /* 0x18 */ UnkBard3 var18[6];
-} UnkBard2;
-
-extern BardSound *gBardMusicTable[];
+};
+
+struct UnkBard
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ s8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ u16 var04;
+ /*0x06*/ u16 var06;
+};
+
+struct UnkBard3
+{
+ /*0x00*/ u16 var00;
+ /*0x02*/ u16 var02;
+ /*0x04*/ s16 var04;
+ /*0x06*/ u16 var06;
+};
+
+struct UnkBard2
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ u8 var01;
+ /*0x02*/ u8 var02;
+ /*0x03*/ u8 var03;
+ /*0x04*/ u16 var04;
+ u8 pad06[4];
+ /*0x0A*/ u16 var0A;
+ u8 pad0C[12];
+ /*0x18*/ struct UnkBard3 var18[6];
+};
+
+extern struct BardSound *gBardMusicTable[];
extern s16 *gUnknown_08417068[];
extern u32 gUnknown_084170F4[];
-s16 sub_814A2B8(u32 arg0, u32 arg1) {
+static s16 sub_814A2B8(u32 arg0, u32 arg1)
+{
return gUnknown_08417068[arg0][arg1];
}
-BardSound *sub_814A2D0(u16 arg0, u16 arg1) {
- BardSound *sounds;
-
- sounds = gBardMusicTable[arg0];
-
+struct BardSound *sub_814A2D0(u16 arg0, u16 arg1)
+{
+ struct BardSound *sounds = gBardMusicTable[arg0];
+
return &sounds[arg1];
}
-#ifdef NONMATCHING
-int sub_814A2EC(UnkBard2 *dest, UnkBard *src, u16 arg2) {
- int i;
- int n;
-
- for (i = 0; i < 6; i++) {
- s8 var01;
-
+s32 sub_814A2EC(struct UnkBard2 *dest, struct UnkBard *src, u16 arg2)
+{
+ s32 i;
+ s32 j;
+ s32 thirty;
+
+ for (i = 0; i < 6; i++)
+ {
dest->var18[i].var00 = src[i].var00;
- if (src[i].var00 == 0xFF) {
- continue;
+ if (src[i].var00 != 0xFF)
+ {
+ s32 r1 = src[i].var01 +gUnknown_084170F4[src[i].var00];
+
+ dest->var18[i].var02 = r1;
+ dest->var18[i].var06 = src[i].var04;
+ dest->var04 += r1;
}
-
- var01 = src[i].var01;
- dest->var18[i].var02 = var01 + gUnknown_084170F4[src[i].var00];
- dest->var18[i].var06 = src[i].var04;
- dest->var04 += 1;
}
-
- i = 6;
-
- for (n = 0; n < i; n++) {
- dest->var18[n].var04 = sub_814A2B8(30 + arg2, n);
- }
-
- dest->var00 += 1;
+
+ for (j = 0, thirty = 30; j < i; j++)
+ dest->var18[j].var04 = sub_814A2B8(thirty + arg2, j);
+
+ dest->var00++;
dest->var01 = 0;
dest->var02 = 0;
dest->var03 = 0;
dest->var0A = 0;
+
+ //warning: no return statement in function returning non-void
}
-#else
-__attribute__((naked))
-void sub_814A2EC(void) {
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- adds r6, r0, 0\n\
- lsls r2, 16\n\
- lsrs r2, 16\n\
- mov r9, r2\n\
- ldr r4, _0814A370 @ =gUnknown_084170F4\n\
- adds r2, r1, 0\n\
- adds r3, r6, 0\n\
- adds r3, 0x18\n\
- movs r7, 0x5\n\
-_0814A306:\n\
- ldrb r0, [r2]\n\
- strh r0, [r3]\n\
- ldrb r0, [r2]\n\
- cmp r0, 0xFF\n\
- beq _0814A328\n\
- movs r1, 0x1\n\
- ldrsb r1, [r2, r1]\n\
- lsls r0, 2\n\
- adds r0, r4\n\
- ldr r0, [r0]\n\
- adds r1, r0\n\
- strh r1, [r3, 0x2]\n\
- ldrh r0, [r2, 0x4]\n\
- strh r0, [r3, 0x6]\n\
- ldrh r0, [r6, 0x4]\n\
- adds r0, r1\n\
- strh r0, [r6, 0x4]\n\
-_0814A328:\n\
- adds r2, 0x8\n\
- adds r3, 0x8\n\
- subs r7, 0x1\n\
- cmp r7, 0\n\
- bge _0814A306\n\
- movs r7, 0x6\n\
- movs r5, 0\n\
- movs r0, 0x1E\n\
- mov r8, r0\n\
- adds r4, r6, 0\n\
-_0814A33C:\n\
- mov r0, r8\n\
- add r0, r9\n\
- adds r1, r5, 0\n\
- bl sub_814A2B8\n\
- adds r1, r0, 0\n\
- strh r1, [r4, 0x1C]\n\
- adds r4, 0x8\n\
- adds r5, 0x1\n\
- cmp r5, r7\n\
- blt _0814A33C\n\
- ldrb r1, [r6]\n\
- adds r1, 0x1\n\
- movs r2, 0\n\
- strb r1, [r6]\n\
- strb r2, [r6, 0x1]\n\
- strb r2, [r6, 0x2]\n\
- strb r2, [r6, 0x3]\n\
- strh r2, [r6, 0xA]\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_0814A370: .4byte gUnknown_084170F4\n\
- .syntax divided\n");
-}
-#endif
diff --git a/src/battle_ai.c b/src/battle_ai.c
index e60bf478f..1b703679d 100644
--- a/src/battle_ai.c
+++ b/src/battle_ai.c
@@ -4,6 +4,7 @@
#include "pokemon.h"
#include "rng.h"
#include "abilities.h"
+#include "species.h"
#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
@@ -20,6 +21,7 @@ extern void move_effectiveness_something(u16, u8, u8);
extern u16 gBattleTypeFlags;
extern u8 gUnknown_02024A60;
+extern u8 gUnknown_02024A6A[][2];
extern u16 gUnknown_02024BE6;
extern u32 gUnknown_02024BEC;
extern u8 gUnknown_02024C07; // something player?
@@ -1042,128 +1044,52 @@ void BattleAICmd_unk_2A(void)
void BattleAICmd_unk_2B(void)
{}
-__attribute__((naked))
void BattleAICmd_count_alive_pokemon(void)
{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- ldr r1, _08108550 @ =0x02016800\n\
- movs r0, 0\n\
- str r0, [r1, 0x8]\n\
- ldr r0, _08108554 @ =gAIScriptPtr\n\
- ldr r0, [r0]\n\
- ldrb r0, [r0, 0x1]\n\
- cmp r0, 0x1\n\
- bne _0810855C\n\
- ldr r0, _08108558 @ =gUnknown_02024C07\n\
- b _0810855E\n\
- .align 2, 0\n\
-_08108550: .4byte 0x02016800\n\
-_08108554: .4byte gAIScriptPtr\n\
-_08108558: .4byte gUnknown_02024C07\n\
-_0810855C:\n\
- ldr r0, _081085A8 @ =gUnknown_02024C08\n\
-_0810855E:\n\
- ldrb r5, [r0]\n\
- adds r0, r5, 0\n\
- bl battle_side_get_owner\n\
- lsls r0, 24\n\
- ldr r1, _081085AC @ =gEnemyParty\n\
- mov r9, r1\n\
- cmp r0, 0\n\
- bne _08108574\n\
- ldr r0, _081085B0 @ =gPlayerParty\n\
- mov r9, r0\n\
-_08108574:\n\
- ldr r0, _081085B4 @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _081085BC\n\
- ldr r4, _081085B8 @ =gUnknown_02024A6A\n\
- lsls r0, r5, 1\n\
- adds r0, r4\n\
- ldrb r0, [r0]\n\
- mov r8, r0\n\
- adds r0, r5, 0\n\
- bl battle_get_per_side_status\n\
- movs r1, 0x2\n\
- eors r0, r1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- bl battle_get_side_with_given_state\n\
- lsls r0, 24\n\
- lsrs r0, 23\n\
- adds r0, r4\n\
- ldrb r6, [r0]\n\
- b _081085C6\n\
- .align 2, 0\n\
-_081085A8: .4byte gUnknown_02024C08\n\
-_081085AC: .4byte gEnemyParty\n\
-_081085B0: .4byte gPlayerParty\n\
-_081085B4: .4byte gBattleTypeFlags\n\
-_081085B8: .4byte gUnknown_02024A6A\n\
-_081085BC:\n\
- ldr r1, _08108624 @ =gUnknown_02024A6A\n\
- lsls r0, r5, 1\n\
- adds r0, r1\n\
- ldrb r6, [r0]\n\
- mov r8, r6\n\
-_081085C6:\n\
- movs r5, 0\n\
- ldr r7, _08108628 @ =0x02016800\n\
-_081085CA:\n\
- cmp r5, r8\n\
- beq _08108608\n\
- cmp r5, r6\n\
- beq _08108608\n\
- movs r0, 0x64\n\
- muls r0, r5\n\
- mov r1, r9\n\
- adds r4, r1, r0\n\
- adds r0, r4, 0\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _08108608\n\
- adds r0, r4, 0\n\
- movs r1, 0x41\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _08108608\n\
- adds r0, r4, 0\n\
- movs r1, 0x41\n\
- bl GetMonData\n\
- movs r1, 0xCE\n\
- lsls r1, 1\n\
- cmp r0, r1\n\
- beq _08108608\n\
- ldr r0, [r7, 0x8]\n\
- adds r0, 0x1\n\
- str r0, [r7, 0x8]\n\
-_08108608:\n\
- adds r5, 0x1\n\
- cmp r5, 0x5\n\
- ble _081085CA\n\
- ldr r1, _0810862C @ =gAIScriptPtr\n\
- ldr r0, [r1]\n\
- adds r0, 0x2\n\
- str r0, [r1]\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08108624: .4byte gUnknown_02024A6A\n\
-_08108628: .4byte 0x02016800\n\
-_0810862C: .4byte gAIScriptPtr\n\
- .syntax divided");
+ u8 index;
+ struct Pokemon *party;
+ struct AI_ThinkingStruct *ai = &battle_2000000.ai;
+ int i;
+ u8 var, var2;
+
+ ai->unk8 = 0;
+
+ if (gAIScriptPtr[1] == USER)
+ index = gUnknown_02024C07;
+ else
+ index = gUnknown_02024C08;
+
+ if (battle_side_get_owner(index) == 0)
+ party = gPlayerParty;
+ else
+ party = gEnemyParty;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ {
+ u32 status;
+ var = gUnknown_02024A6A[index][0];
+ status = battle_get_per_side_status(index) ^ 2;
+ var2 = gUnknown_02024A6A[battle_get_side_with_given_state(status)][0];
+ }
+ else
+ {
+ var = gUnknown_02024A6A[index][0];
+ var2 = gUnknown_02024A6A[index][0];
+ }
+
+ for (i = 0; i < 6; i++)
+ {
+ struct AI_ThinkingStruct *ai2 = &battle_2000000.ai;
+ if (i != var && i != var2
+ && GetMonData(&party[i], MON_DATA_HP) != 0
+ && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE
+ && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG)
+ {
+ ai2->unk8++;
+ }
+ }
+
+ gAIScriptPtr += 2;
}
void BattleAICmd_unk_2D(void)
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 1b432fe70..164e2cfc2 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -18,12 +18,14 @@
#define OFFSET_7B (123)
#define FIRST_BERRY ITEM_CHERI_BERRY
-struct Struct2000000 {
+struct Struct2000000
+{
/*0x00*/ u8 filler_0[0x1FFFF];
- /*0x1FFFF*/ bool8 var_1FFFF;
+ /*0x1FFFF*/ u8 var_1FFFF;
};
-struct BerryTagStatus {
+struct BerryTagStatus
+{
s16 circles[5];
};
@@ -59,19 +61,21 @@ static void sub_8146480(u8 taskid);
static void sub_81464E4(void);
static void sub_8146600(u8 berry);
// static void sub_81466A0(void);
-static void sub_81466E8(u8 taskId, s32 direction);
+static void sub_81466E8(u8 taskId, s8 direction);
// static void sub_8146798(u8 berry);
// static void sub_8146810(u8 berry);
// static void sub_81468BC(void);
-static void sub_8146014(void) {
+static void sub_8146014(void)
+{
AnimateSprites();
BuildOamBuffer();
RunTasks();
UpdatePaletteFade();
}
-static void sub_814602C(void) {
+static void sub_814602C(void)
+{
REG_BG0VOFS = gUnknown_030041B4;
REG_BG1VOFS = gUnknown_030041B4;
@@ -80,162 +84,146 @@ static void sub_814602C(void) {
TransferPlttBuffer();
}
-static bool8 sub_8146058(void) {
+static bool8 sub_8146058(void)
+{
u8 berry;
u16 backup;
- switch (gMain.state) {
- case 0:
- sub_80F9438();
- sub_80F9368();
- sub_8146288();
- REG_BLDCNT = 0;
- gMain.state += 1;
- break;
-
- case 1:
- ResetPaletteFade();
- gPaletteFade.bufferTransferDisabled = 1;
- gMain.state += 1;
- break;
-
- case 2:
- ResetSpriteData();
- gMain.state += 1;
- break;
-
- case 3:
- SetUpWindowConfig(&gWindowConfig_81E6E18);
- gMain.state += 1;
- break;
-
- case 4:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E18);
- gMain.state += 1;
- break;
-
- case 5:
- if (!MultistepInitMenuWindowContinue()) {
- return FALSE;
- }
- unk_2000000.var_1FFFF = 0;
- gMain.state += 1;
- break;
-
- case 6:
- if (!sub_81462B8()) {
- break;
- }
-
- unk_2000000.var_1FFFF = 0;
- gMain.state += 1;
- break;
-
- case 7:
- sub_81464E4();
- gMain.state += 1;
- break;
-
- case 8:
- berry = gScriptItemId + OFFSET_7B;
- gUnknown_0203932C = sub_80A7D8C(berry, 56, 64);
- gMain.state += 1;
- break;
-
- case 9:
- sub_8146600(gScriptItemId + OFFSET_7B);
- gMain.state += 1;
+ switch (gMain.state)
+ {
+ case 0:
+ sub_80F9438();
+ sub_80F9368();
+ sub_8146288();
+ REG_BLDCNT = 0;
+ gMain.state += 1;
+ break;
+ case 1:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = 1;
+ gMain.state += 1;
+ break;
+ case 2:
+ ResetSpriteData();
+ gMain.state += 1;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E6E18);
+ gMain.state += 1;
+ break;
+ case 4:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6E18);
+ gMain.state += 1;
+ break;
+ case 5:
+ if (!MultistepInitMenuWindowContinue())
break;
-
- case 10:
- backup = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = backup;
-
- REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- SetVBlankCallback(sub_814602C);
- REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
- gMain.state += 1;
+ unk_2000000.var_1FFFF = 0;
+ gMain.state += 1;
+ break;
+ case 6:
+ if (!sub_81462B8())
break;
-
- case 11:
- if (sub_8055870() == TRUE) {
- break;
- }
- gMain.state += 1;
+ unk_2000000.var_1FFFF = 0;
+ gMain.state += 1;
+ break;
+ case 7:
+ sub_81464E4();
+ gMain.state += 1;
+ break;
+ case 8:
+ berry = gScriptItemId + OFFSET_7B;
+ gUnknown_0203932C = sub_80A7D8C(berry, 56, 64);
+ gMain.state += 1;
+ break;
+ case 9:
+ sub_8146600(gScriptItemId + OFFSET_7B);
+ gMain.state += 1;
+ break;
+ case 10:
+ backup = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = backup;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ SetVBlankCallback(sub_814602C);
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP;
+ gMain.state += 1;
+ break;
+ case 11:
+ if (sub_8055870() == TRUE)
break;
-
- case 12:
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- gPaletteFade.bufferTransferDisabled = 0;
- SetMainCallback2(sub_8146014);
- return TRUE;
-
+ gMain.state += 1;
+ break;
+ case 12:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gPaletteFade.bufferTransferDisabled = 0;
+ SetMainCallback2(sub_8146014);
+ return TRUE;
}
return FALSE;
}
-void BerryTagScreen_814625C(u8 taskId) {
- do {
- if (sub_8146058() == TRUE) {
+void BerryTagScreen_814625C(u8 taskId)
+{
+ do
+ {
+ if (sub_8146058() == TRUE)
+ {
CreateTask(sub_8146480, 0);
return;
}
-
} while (sub_80F9344() != TRUE);
}
-static void sub_8146288(void) {
+static void sub_8146288(void)
+{
REG_BG1CNT = 0x502;
REG_BG2CNT = 0x600;
REG_BG3CNT = 0x703;
gUnknown_030041B4 = 0;
}
-#ifdef NONMATCHING
-bool8 sub_81462B8(void) {
+bool8 sub_81462B8(void)
+{
u16 i;
+ void *addr;
- switch (unk_2000000.var_1FFFF) {
+ switch (unk_2000000.var_1FFFF)
+ {
case 0:
LZDecompressVram(gBerryCheck_Gfx, (void *) VRAM);
unk_2000000.var_1FFFF += 1;
break;
-
case 1:
LZDecompressVram(gUnknown_08E788E4, (void *) VRAM + 0x2800);
unk_2000000.var_1FFFF += 1;
break;
-
case 2:
LZDecompressVram(gUnknown_08E78A84, (void *) VRAM + 0x3000);
unk_2000000.var_1FFFF += 1;
break;
-
case 3:
- for (i = 0; i < 0x400; i++) {
- u16 (*buffer)[0x400] = &gBGTilemapBuffers[3];
- if (gSaveBlock2.playerGender == MALE) {
- (*buffer)[i] = 0x4042;
- } else {
- (*buffer)[i] = 0x5042;
- }
+ for (i = 0; i < 0x400; i++)
+ {
+ if (gSaveBlock2.playerGender == MALE)
+ gBGTilemapBuffers[2][i] = 0x4042;
+ else
+ gBGTilemapBuffers[2][i] = 0x5042;
}
+ addr = (void *)(VRAM + 0x3800);
+ DmaCopy16(3, gBGTilemapBuffers[2], addr, 0x800);
unk_2000000.var_1FFFF += 1;
break;
-
case 4:
LoadCompressedPalette(gBerryCheck_Pal, 0, 96 * 2);
unk_2000000.var_1FFFF += 1;
break;
-
case 5:
LoadCompressedObjectPic(&gUnknown_083C1F74);
unk_2000000.var_1FFFF += 1;
break;
-
case 6:
LoadCompressedObjectPalette(&gUnknown_083C1F7C);
unk_2000000.var_1FFFF = 0;
@@ -244,208 +232,40 @@ bool8 sub_81462B8(void) {
return FALSE;
}
-#else
-__attribute__((naked))
-static bool8 sub_81462B8(void) {
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- ldr r1, _081462D4 @ =0x02000000\n\
- ldr r2, _081462D8 @ =0x0001ffff\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- mov r12, r1\n\
- cmp r0, 0x6\n\
- bls _081462CA\n\
- b _08146404\n\
-_081462CA:\n\
- lsls r0, 2\n\
- ldr r1, _081462DC @ =_081462E0\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_081462D4: .4byte 0x02000000\n\
-_081462D8: .4byte 0x0001ffff\n\
-_081462DC: .4byte _081462E0\n\
- .align 2, 0\n\
-_081462E0:\n\
- .4byte _081462FC\n\
- .4byte _0814630C\n\
- .4byte _0814632C\n\
- .4byte _08146340\n\
- .4byte _081463A4\n\
- .4byte _081463C4\n\
- .4byte _081463E4\n\
-_081462FC:\n\
- ldr r0, _08146308 @ =gBerryCheck_Gfx\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl LZDecompressVram\n\
- b _081463CA\n\
- .align 2, 0\n\
-_08146308: .4byte gBerryCheck_Gfx\n\
-_0814630C:\n\
- ldr r0, _0814631C @ =gUnknown_08E788E4\n\
- ldr r1, _08146320 @ =0x06002800\n\
- bl LZDecompressVram\n\
- ldr r1, _08146324 @ =0x02000000\n\
- ldr r2, _08146328 @ =0x0001ffff\n\
- adds r1, r2\n\
- b _081463D0\n\
- .align 2, 0\n\
-_0814631C: .4byte gUnknown_08E788E4\n\
-_08146320: .4byte 0x06002800\n\
-_08146324: .4byte 0x02000000\n\
-_08146328: .4byte 0x0001ffff\n\
-_0814632C:\n\
- ldr r0, _08146338 @ =gUnknown_08E78A84\n\
- ldr r1, _0814633C @ =0x06003000\n\
- bl LZDecompressVram\n\
- b _081463CA\n\
- .align 2, 0\n\
-_08146338: .4byte gUnknown_08E78A84\n\
-_0814633C: .4byte 0x06003000\n\
-_08146340:\n\
- movs r1, 0\n\
- ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000\n\
- adds r2, r7, 0\n\
- ldr r6, _08146360 @ =0x00004042\n\
- ldr r5, _08146364 @ =gSaveBlock2\n\
- ldr r4, _08146368 @ =0x00005042\n\
- ldr r3, _0814636C @ =0x000003ff\n\
-_0814634E:\n\
- ldrb r0, [r5, 0x8]\n\
- cmp r0, 0\n\
- bne _08146370\n\
- lsls r0, r1, 1\n\
- adds r0, r2\n\
- strh r6, [r0]\n\
- b _08146376\n\
- .align 2, 0\n\
-_0814635C: .4byte gBGTilemapBuffers + 0x1000\n\
-_08146360: .4byte 0x00004042\n\
-_08146364: .4byte gSaveBlock2\n\
-_08146368: .4byte 0x00005042\n\
-_0814636C: .4byte 0x000003ff\n\
-_08146370:\n\
- lsls r0, r1, 1\n\
- adds r0, r2\n\
- strh r4, [r0]\n\
-_08146376:\n\
- adds r0, r1, 0x1\n\
- lsls r0, 16\n\
- lsrs r1, r0, 16\n\
- cmp r1, r3\n\
- bls _0814634E\n\
- ldr r1, _08146394 @ =0x06003800\n\
- ldr r0, _08146398 @ =0x040000d4\n\
- str r7, [r0]\n\
- str r1, [r0, 0x4]\n\
- ldr r1, _0814639C @ =0x80000400\n\
- str r1, [r0, 0x8]\n\
- ldr r0, [r0, 0x8]\n\
- ldr r1, _081463A0 @ =0x0001ffff\n\
- add r1, r12\n\
- b _081463D0\n\
- .align 2, 0\n\
-_08146394: .4byte 0x06003800\n\
-_08146398: .4byte 0x040000d4\n\
-_0814639C: .4byte 0x80000400\n\
-_081463A0: .4byte 0x0001ffff\n\
-_081463A4:\n\
- ldr r0, _081463B8 @ =gBerryCheck_Pal\n\
- movs r1, 0\n\
- movs r2, 0xC0\n\
- bl LoadCompressedPalette\n\
- ldr r1, _081463BC @ =0x02000000\n\
- ldr r2, _081463C0 @ =0x0001ffff\n\
- adds r1, r2\n\
- b _081463D0\n\
- .align 2, 0\n\
-_081463B8: .4byte gBerryCheck_Pal\n\
-_081463BC: .4byte 0x02000000\n\
-_081463C0: .4byte 0x0001ffff\n\
-_081463C4:\n\
- ldr r0, _081463D8 @ =gUnknown_083C1F74\n\
- bl LoadCompressedObjectPic\n\
-_081463CA:\n\
- ldr r1, _081463DC @ =0x02000000\n\
- ldr r0, _081463E0 @ =0x0001ffff\n\
- adds r1, r0\n\
-_081463D0:\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- b _08146404\n\
- .align 2, 0\n\
-_081463D8: .4byte gUnknown_083C1F74\n\
-_081463DC: .4byte 0x02000000\n\
-_081463E0: .4byte 0x0001ffff\n\
-_081463E4:\n\
- ldr r0, _081463F8 @ =gUnknown_083C1F7C\n\
- bl LoadCompressedObjectPalette\n\
- ldr r0, _081463FC @ =0x02000000\n\
- ldr r1, _08146400 @ =0x0001ffff\n\
- adds r0, r1\n\
- movs r1, 0\n\
- strb r1, [r0]\n\
- movs r0, 0x1\n\
- b _08146406\n\
- .align 2, 0\n\
-_081463F8: .4byte gUnknown_083C1F7C\n\
-_081463FC: .4byte 0x02000000\n\
-_08146400: .4byte 0x0001ffff\n\
-_08146404:\n\
- movs r0, 0\n\
-_08146406:\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
-#endif
-static void sub_814640C(u8 taskId) {
- if (gPaletteFade.active) {
- return;
+static void sub_814640C(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sub_80A5B40);
+ sub_80A7DD4();
+ gpu_pal_allocator_reset__manage_upper_four();
+ DestroyTask(taskId);
}
-
- SetMainCallback2(sub_80A5B40);
- sub_80A7DD4();
- gpu_pal_allocator_reset__manage_upper_four();
- DestroyTask(taskId);
}
-static void sub_8146440(u8 taskId) {
+static void sub_8146440(u8 taskId)
+{
PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
-
gTasks[taskId].func = sub_814640C;
}
-static void sub_8146480(u8 taskid) {
- register u16 keys asm("r1");
-
- if (gPaletteFade.active) {
- return;
- }
-
- keys = gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN);
- if (keys == DPAD_UP) {
- sub_81466E8(taskid, -1);
- }
-
- keys = gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN);
- if (keys == DPAD_DOWN) {
- sub_81466E8(taskid, 1);
- }
-
- if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) {
- sub_8146440(taskid);
+static void sub_8146480(u8 taskid)
+{
+ if (!gPaletteFade.active)
+ {
+ if ((gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) == DPAD_UP)
+ sub_81466E8(taskid, -1);
+ if ((gMain.newAndRepeatedKeys & (DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) == DPAD_DOWN)
+ sub_81466E8(taskid, 1);
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ sub_8146440(taskid);
}
}
-static void sub_81464E4(void) {
+static void sub_81464E4(void)
+{
struct Berry *berryInfo;
u32 size;
s32 sizeMajor;
@@ -461,163 +281,68 @@ static void sub_81464E4(void) {
MenuPrint(berryInfo->description2, 4, 16);
size = (berryInfo->size * 1000) / 254;
- if (size % 10 >= 5) {
+ if (size % 10 >= 5)
size += 10;
- }
sizeMinor = (size % 100) / 10;
sizeMajor = size / 100;
MenuPrint(gOtherText_Size, 11, 7);
- if (berryInfo->size != 0) {
+ if (berryInfo->size != 0)
+ {
ConvertIntToDecimalStringN(gStringVar1, sizeMajor, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, sizeMinor, STR_CONV_MODE_LEFT_ALIGN, 2);
MenuPrint(gContestStatsText_Unknown1, 16, 7);
- } else {
+ }
+ else
+ {
MenuPrint(gOtherText_ThreeQuestions2, 16, 7);
}
MenuPrint(gOtherText_Firm, 11, 9);
- if (berryInfo->firmness != 0) {
+ if (berryInfo->firmness != 0)
MenuPrint(gUnknown_0841192C[berryInfo->firmness - 1], 16, 9);
- } else {
+ else
MenuPrint(gOtherText_ThreeQuestions2, 16, 9);
- }
}
-#ifdef NONMATCHING
-static void sub_8146600(u8 berry) {
+static void sub_8146600(u8 berry)
+{
struct Berry *berryInfo;
u16 i;
berryInfo = GetBerryInfo(berry +1);
+ for (i = 0; i < 5; i++)
+ gUnknown_0203932E.circles[i] = (u16)gUnknown_0203932E.circles[i] | 0xFFFF;
- for (i = 0; i < 5; i++) {
- gUnknown_0203932E.circles[i] |= 0xFFFF;
- }
-
- if (berryInfo->spicy) {
- // argument is the center of the circle
+ // argument is the center of the circle
+ if (berryInfo->spicy)
gUnknown_0203932E.circles[0] = sub_80A7E5C(48);
- }
-
- if (berryInfo->dry) {
+ if (berryInfo->dry)
gUnknown_0203932E.circles[1] = sub_80A7E5C(88);
- }
-
- if (berryInfo->sweet) {
+ if (berryInfo->sweet)
gUnknown_0203932E.circles[2] = sub_80A7E5C(128);
- }
-
- if (berryInfo->bitter) {
+ if (berryInfo->bitter)
gUnknown_0203932E.circles[3] = sub_80A7E5C(168);
- }
-
- if (berryInfo->sour) {
+ if (berryInfo->sour)
gUnknown_0203932E.circles[4] = sub_80A7E5C(208);
- }
}
-#else
-__attribute__((naked))
-static void sub_8146600(u8 berry) {
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- lsls r0, 24\n\
- movs r1, 0x80\n\
- lsls r1, 17\n\
- adds r0, r1\n\
- lsrs r0, 24\n\
- bl GetBerryInfo\n\
- adds r4, r0, 0\n\
- movs r2, 0\n\
- ldr r5, _08146698 @ =gUnknown_0203932E\n\
- ldr r0, _0814669C @ =0x0000ffff\n\
- adds r3, r0, 0\n\
-_0814661A:\n\
- lsls r0, r2, 1\n\
- adds r0, r5\n\
- ldrh r1, [r0]\n\
- orrs r1, r3\n\
- strh r1, [r0]\n\
- adds r0, r2, 0x1\n\
- lsls r0, 16\n\
- lsrs r2, r0, 16\n\
- cmp r2, 0x4\n\
- bls _0814661A\n\
- ldrb r0, [r4, 0x15]\n\
- cmp r0, 0\n\
- beq _08146642\n\
- movs r0, 0x30\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1]\n\
-_08146642:\n\
- ldrb r0, [r4, 0x16]\n\
- cmp r0, 0\n\
- beq _08146656\n\
- movs r0, 0x58\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x2]\n\
-_08146656:\n\
- ldrb r0, [r4, 0x17]\n\
- cmp r0, 0\n\
- beq _0814666A\n\
- movs r0, 0x80\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x4]\n\
-_0814666A:\n\
- ldrb r0, [r4, 0x18]\n\
- cmp r0, 0\n\
- beq _0814667E\n\
- movs r0, 0xA8\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x6]\n\
-_0814667E:\n\
- ldrb r0, [r4, 0x19]\n\
- cmp r0, 0\n\
- beq _08146692\n\
- movs r0, 0xD0\n\
- bl sub_80A7E5C\n\
- ldr r1, _08146698 @ =gUnknown_0203932E\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r1, 0x8]\n\
-_08146692:\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08146698: .4byte gUnknown_0203932E\n\
-_0814669C: .4byte 0x0000ffff\n\
- .syntax divided\n");
-}
-#endif
-
-void sub_81466A0(void) {
+void sub_81466A0(void)
+{
u16 i;
- for (i = 0; i < 5; i++) {
- if (gUnknown_0203932E.circles[i] != -1) {
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0203932E.circles[i] != -1)
+ {
DestroySprite(&gSprites[gUnknown_0203932E.circles[i]]);
gUnknown_0203932E.circles[i] = -1;
}
}
}
-
__attribute__((naked))
-static void sub_81466E8(u8 taskId, s32 direction) {
+static void sub_81466E8(u8 taskId, s8 direction) {
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r8\n\
diff --git a/src/contest_painting.c b/src/contest_painting.c
index 2e8a73ec4..b6cdda034 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -14,7 +14,8 @@
#define MOSAIC_BIT_OBJ_HSIZE (8)
#define MOSAIC_BIT_OBJ_VSIZE (12)
-enum {
+enum
+{
CONTEST_COOL,
CONTEST_BEAUTY,
CONTEST_CUTE,
@@ -22,7 +23,8 @@ enum {
CONTEST_TOUGH,
};
-enum {
+enum
+{
CONTESTRESULT_COOL = 9,
CONTESTRESULT_BEAUTY = 13,
CONTESTRESULT_CUTE = 2,
@@ -30,26 +32,36 @@ enum {
CONTESTRESULT_TOUGH = 6,
};
-struct ContestEntry {
- /* 0x00 */ u8 var0;
- /* 0x04 */ u32 var4;
- /* 0x08 */ u16 var8;
- /* 0x0A */ u8 contestType;
- /* 0x0B */ u8 pokemon_name[POKEMON_NAME_LENGTH];
- /* 0x15 */ u8 pad15;
- /* 0x16 */ u8 trainer_name[OT_NAME_LENGTH];
+struct Unk2015E00
+{
+ u16 unk2015e00[128][32];
+ u16 unk2017e00[0];
};
-struct Unk3000756 {
- /* 0x00 */ u8 var_0;
+struct ContestEntry
+{
+ /*0x00*/ u8 var0;
+ /*0x04*/ u32 var4;
+ /*0x08*/ u16 var8;
+ /*0x0A*/ u8 contestType;
+ /*0x0B*/ u8 pokemon_name[POKEMON_NAME_LENGTH];
+ /*0x15*/ u8 pad15;
+ /*0x16*/ u8 trainer_name[OT_NAME_LENGTH];
};
-struct LabelPair {
+struct Unk3000756
+{
+ /*0x00*/ u8 var_0;
+};
+
+struct LabelPair
+{
u8 (*prefix)[];
u8 (*suffix)[];
};
-struct Unk03005E20 {
+struct Unk03005E20
+{
u8 var_0;
u8 pad1[3];
u16 (*var_4)[][32];
@@ -68,19 +80,18 @@ struct Unk03005E20 {
u8 var_1F;
};
-extern struct Unk03005E20 gUnknown_03005E20;
-extern u16 (*gUnknown_03005E90)[];
-
-extern u8 gUnknown_03005E40[];
-
extern u8 unk_2000000[];
-extern u8 unk_2015de0[];
+extern struct ContestEntry unk_2015de0;
+extern struct Unk2015E00 unk_2015e00;
+extern u8 gUnknown_03000750;
extern u16 gUnknown_03000752;
extern u16 gUnknown_03000754;
extern struct Unk3000756 gUnknown_03000756;
+extern u16 (*gUnknown_03005E10)[][32];
+extern struct Unk03005E20 gUnknown_03005E20;
+extern u8 gUnknown_03005E40[];
extern struct ContestEntry *gUnknown_03005E8C;
-
-extern u16 (*gUnknown_03005E10)[32][32];
+extern u16 (*gUnknown_03005E90)[];
extern const struct SpriteSheet gMonFrontPicTable[];
extern const struct MonCoords gMonFrontPicCoords[];
@@ -113,24 +124,25 @@ extern u16 gUnknown_083F6140[];
extern u8 gContestText_ContestWinner[];
extern u8 gOtherText_Unknown1[];
-void HoldContestPainting(void);
-void ShowContestPainting();
-void ContestPaintingInitWindow(u8 arg0);
-void ContestPaintingInitVars(u8 arg0);
-void sub_8107090(u8 arg0, u8 arg1);
-void ContestPaintingPrintCaption(u8 arg0, u8 arg1);
-void ContestPaintingInitBG(void);
-void CB2_HoldContestPainting(void);
-void VBlankCB_ContestPainting(void);
-
-void sub_80FC7A0(struct Unk03005E20*);
-void sub_80FDA18(struct Unk03005E20*);
-void sub_80FD8CC(struct Unk03005E20*);
+static void ShowContestPainting();
+static void CB2_HoldContestPainting(void);
+static void HoldContestPainting(void);
+static void ContestPaintingInitWindow(u8 arg0);
+static void ContestPaintingPrintCaption(u8 arg0, u8 arg1);
+static void ContestPaintingInitBG(void);
+static void ContestPaintingInitVars(u8 arg0);
+static void VBlankCB_ContestPainting(void);
+void sub_8106B90(); //should be static
+static void sub_8107090(u8 arg0, u8 arg1);
+
+extern void sub_80FC7A0(struct Unk03005E20*);
+extern void sub_80FDA18(struct Unk03005E20*);
+extern void sub_80FD8CC(struct Unk03005E20*);
extern void *species_and_otid_get_pal();
-void sub_8106B90();
__attribute__((naked))
-void sub_8106630(u32 arg0) {
+void sub_8106630(u32 arg0)
+{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
ldr r2, _0810665C @ =0x02015de0\n\
@@ -161,371 +173,128 @@ _08106664: .4byte 0x00002dfc\n\
.syntax divided\n");
}
-void CB2_ContestPainting(void) {
+void CB2_ContestPainting(void)
+{
ShowContestPainting();
}
-#ifdef NONMATCHING
-void ShowContestPainting(void) {
- switch (gMain.state) {
- case 0:
- remove_some_task();
- SetVBlankCallback(NULL);
- gUnknown_03005E8C->data = &unk_2015de0;
- ContestPaintingInitVars(FALSE);
- ContestPaintingInitBG();
- gMain.state += 1;
- break;
-
- case 1:
- ResetPaletteFade();
-
- // DMA STUFF
-
- ResetSpriteData();
- gMain.state += 1;
- break;
-
- case 2:
- SeedRng(gMain.vblankCounter1);
- InitKeys();
- ContestPaintingInitWindow(unk_2000000[0x15DDF]);
- gMain.state += 1;
- break;
-
- case 3:
- sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
- gMain.state += 1;
- break;
-
- case 4:
- ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
- LoadPalette(gUnknown_083F6140, 0, 1 * 2);
- // DMA STUFF
- BeginFastPaletteFade(2);
- SetVBlankCallback(VBlankCB_ContestPainting);
- REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
- SetMainCallback2(CB2_HoldContestPainting);
- break;
+static void ShowContestPainting(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ remove_some_task();
+ SetVBlankCallback(NULL);
+ gUnknown_03005E8C = &unk_2015de0;
+ ContestPaintingInitVars(TRUE);
+ ContestPaintingInitBG();
+ gMain.state++;
+ break;
+ case 1:
+ {
+ u8 *addr;
+ size_t size;
+
+ ResetPaletteFade();
+ addr = (void *)VRAM;
+ size = 0x18000;
+ while (1)
+ {
+ DmaFill32(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
+ {
+ DmaFill32(3, 0, addr, size);
+ break;
+ }
+ }
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ }
+ case 2:
+ SeedRng(gMain.vblankCounter1);
+ InitKeys();
+ ContestPaintingInitWindow(unk_2000000[0x15DDF]);
+ gMain.state++;
+ break;
+ case 3:
+ sub_8107090(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ gMain.state++;
+ break;
+ case 4:
+ ContestPaintingPrintCaption(unk_2000000[0x15DDE], unk_2000000[0x15DDF]);
+ LoadPalette(gUnknown_083F6140, 0, 1 * 2);
+ DmaClear32(3, PLTT, 0x400);
+ BeginFastPaletteFade(2);
+ SetVBlankCallback(VBlankCB_ContestPainting);
+ gUnknown_03000750 = 0;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
+ SetMainCallback2(CB2_HoldContestPainting);
+ break;
}
-}
-#else
-__attribute__((naked))
-void ShowContestPainting(void) {
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- sub sp, 0x4\n\
- ldr r1, _08106694 @ =gMain\n\
- ldr r2, _08106698 @ =0x0000043c\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r4, r1, 0\n\
- cmp r0, 0x4\n\
- bls _08106688\n\
- b _081067E0\n\
-_08106688:\n\
- lsls r0, 2\n\
- ldr r1, _0810669C @ =_081066A0\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_08106694: .4byte gMain\n\
-_08106698: .4byte 0x0000043c\n\
-_0810669C: .4byte _081066A0\n\
- .align 2, 0\n\
-_081066A0:\n\
- .4byte _081066B4\n\
- .4byte _081066D8\n\
- .4byte _08106734\n\
- .4byte _0810675C\n\
- .4byte _0810678C\n\
-_081066B4:\n\
- bl remove_some_task\n\
- movs r0, 0\n\
- bl SetVBlankCallback\n\
- ldr r1, _081066D0 @ =gUnknown_03005E8C\n\
- ldr r0, _081066D4 @ =0x02015de0\n\
- str r0, [r1]\n\
- movs r0, 0x1\n\
- bl ContestPaintingInitVars\n\
- bl ContestPaintingInitBG\n\
- b _0810676E\n\
- .align 2, 0\n\
-_081066D0: .4byte gUnknown_03005E8C\n\
-_081066D4: .4byte 0x02015de0\n\
-_081066D8:\n\
- bl ResetPaletteFade\n\
- movs r2, 0xC0\n\
- lsls r2, 19\n\
- movs r3, 0xC0\n\
- lsls r3, 9\n\
- movs r5, 0\n\
- ldr r1, _08106724 @ =0x040000d4\n\
- movs r4, 0x80\n\
- lsls r4, 5\n\
- ldr r6, _08106728 @ =0x85000400\n\
- movs r7, 0x85\n\
- lsls r7, 24\n\
-_081066F2:\n\
- str r5, [sp]\n\
- mov r0, sp\n\
- str r0, [r1]\n\
- str r2, [r1, 0x4]\n\
- str r6, [r1, 0x8]\n\
- ldr r0, [r1, 0x8]\n\
- adds r2, r4\n\
- subs r3, r4\n\
- cmp r3, r4\n\
- bhi _081066F2\n\
- str r5, [sp]\n\
- mov r0, sp\n\
- str r0, [r1]\n\
- str r2, [r1, 0x4]\n\
- lsrs r0, r3, 2\n\
- orrs r0, r7\n\
- str r0, [r1, 0x8]\n\
- ldr r0, [r1, 0x8]\n\
- bl ResetSpriteData\n\
- ldr r1, _0810672C @ =gMain\n\
- ldr r2, _08106730 @ =0x0000043c\n\
- adds r1, r2\n\
- b _08106774\n\
- .align 2, 0\n\
-_08106724: .4byte 0x040000d4\n\
-_08106728: .4byte 0x85000400\n\
-_0810672C: .4byte gMain\n\
-_08106730: .4byte 0x0000043c\n\
-_08106734:\n\
- ldrh r0, [r4, 0x20]\n\
- bl SeedRng\n\
- bl InitKeys\n\
- ldr r0, _08106750 @ =0x02000000\n\
- ldr r1, _08106754 @ =0x00015ddf\n\
- adds r0, r1\n\
- ldrb r0, [r0]\n\
- bl ContestPaintingInitWindow\n\
- ldr r2, _08106758 @ =0x0000043c\n\
- adds r1, r4, r2\n\
- b _08106774\n\
- .align 2, 0\n\
-_08106750: .4byte 0x02000000\n\
-_08106754: .4byte 0x00015ddf\n\
-_08106758: .4byte 0x0000043c\n\
-_0810675C:\n\
- ldr r1, _0810677C @ =0x02000000\n\
- ldr r2, _08106780 @ =0x00015dde\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r2, 0x1\n\
- adds r1, r2\n\
- ldrb r1, [r1]\n\
- bl sub_8107090\n\
-_0810676E:\n\
- ldr r1, _08106784 @ =gMain\n\
- ldr r0, _08106788 @ =0x0000043c\n\
- adds r1, r0\n\
-_08106774:\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- b _081067E0\n\
- .align 2, 0\n\
-_0810677C: .4byte 0x02000000\n\
-_08106780: .4byte 0x00015dde\n\
-_08106784: .4byte gMain\n\
-_08106788: .4byte 0x0000043c\n\
-_0810678C:\n\
- ldr r1, _081067E8 @ =0x02000000\n\
- ldr r2, _081067EC @ =0x00015dde\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r2, 0x1\n\
- adds r1, r2\n\
- ldrb r1, [r1]\n\
- bl ContestPaintingPrintCaption\n\
- ldr r0, _081067F0 @ =gUnknown_083F6140\n\
- movs r1, 0\n\
- movs r2, 0x2\n\
- bl LoadPalette\n\
- movs r1, 0xA0\n\
- lsls r1, 19\n\
- movs r4, 0\n\
- str r4, [sp]\n\
- ldr r0, _081067F4 @ =0x040000d4\n\
- mov r2, sp\n\
- str r2, [r0]\n\
- str r1, [r0, 0x4]\n\
- ldr r1, _081067F8 @ =0x85000100\n\
- str r1, [r0, 0x8]\n\
- ldr r0, [r0, 0x8]\n\
- movs r0, 0x2\n\
- bl BeginFastPaletteFade\n\
- ldr r0, _081067FC @ =VBlankCB_ContestPainting\n\
- bl SetVBlankCallback\n\
- ldr r0, _08106800 @ =gUnknown_03000750\n\
- strb r4, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 19\n\
- movs r2, 0x9A\n\
- lsls r2, 5\n\
- adds r0, r2, 0\n\
- strh r0, [r1]\n\
- ldr r0, _08106804 @ =CB2_HoldContestPainting\n\
- bl SetMainCallback2\n\
-_081067E0:\n\
- add sp, 0x4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_081067E8: .4byte 0x02000000\n\
-_081067EC: .4byte 0x00015dde\n\
-_081067F0: .4byte gUnknown_083F6140\n\
-_081067F4: .4byte 0x040000d4\n\
-_081067F8: .4byte 0x85000100\n\
-_081067FC: .4byte VBlankCB_ContestPainting\n\
-_08106800: .4byte gUnknown_03000750\n\
-_08106804: .4byte CB2_HoldContestPainting\n\
- .syntax divided\n");
}
-#endif
-
-void CB2_HoldContestPainting(void) {
+static void CB2_HoldContestPainting(void)
+{
HoldContestPainting();
UpdatePaletteFade();
}
-void CB2_QuitContestPainting(void) {
+static void CB2_QuitContestPainting(void)
+{
SetMainCallback2(gMain.savedCallback);
}
-__attribute__((naked))
-void HoldContestPainting(void) {
- asm(".syntax unified\n\
- push {lr}\n\
- sub sp, 0x4\n\
- ldr r3, _08106844 @ =gUnknown_03000750\n\
- ldrb r1, [r3]\n\
- cmp r1, 0x1\n\
- beq _08106880\n\
- cmp r1, 0x1\n\
- bgt _08106848\n\
- cmp r1, 0\n\
- beq _0810684E\n\
- b _081068E6\n\
- .align 2, 0\n\
-_08106844: .4byte gUnknown_03000750\n\
-_08106848:\n\
- cmp r1, 0x2\n\
- beq _081068C0\n\
- b _081068E6\n\
-_0810684E:\n\
- ldr r0, _08106874 @ =gPaletteFade\n\
- ldrb r1, [r0, 0x7]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0810685E\n\
- movs r0, 0x1\n\
- strb r0, [r3]\n\
-_0810685E:\n\
- ldr r0, _08106878 @ =gUnknown_03000756\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _081068E6\n\
- ldr r1, _0810687C @ =gUnknown_03000754\n\
- ldrh r0, [r1]\n\
- cmp r0, 0\n\
- beq _081068E6\n\
- subs r0, 0x1\n\
- b _081068E4\n\
- .align 2, 0\n\
-_08106874: .4byte gPaletteFade\n\
-_08106878: .4byte gUnknown_03000756\n\
-_0810687C: .4byte gUnknown_03000754\n\
-_08106880:\n\
- ldr r0, _081068B4 @ =gMain\n\
- ldrh r2, [r0, 0x2E]\n\
- ands r1, r2\n\
- cmp r1, 0\n\
- bne _08106892\n\
- movs r0, 0x2\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _081068A4\n\
-_08106892:\n\
- movs r0, 0x2\n\
- strb r0, [r3]\n\
- subs r0, 0x3\n\
- movs r1, 0\n\
- str r1, [sp]\n\
- movs r2, 0\n\
- movs r3, 0x10\n\
- bl BeginNormalPaletteFade\n\
-_081068A4:\n\
- ldr r0, _081068B8 @ =gUnknown_03000756\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _081068E6\n\
- ldr r1, _081068BC @ =gUnknown_03000754\n\
- movs r0, 0\n\
- b _081068E4\n\
- .align 2, 0\n\
-_081068B4: .4byte gMain\n\
-_081068B8: .4byte gUnknown_03000756\n\
-_081068BC: .4byte gUnknown_03000754\n\
-_081068C0:\n\
- ldr r0, _081068EC @ =gPaletteFade\n\
- ldrb r1, [r0, 0x7]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _081068D2\n\
- ldr r0, _081068F0 @ =CB2_QuitContestPainting\n\
- bl SetMainCallback2\n\
-_081068D2:\n\
- ldr r0, _081068F4 @ =gUnknown_03000756\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _081068E6\n\
- ldr r1, _081068F8 @ =gUnknown_03000754\n\
- ldrh r0, [r1]\n\
- cmp r0, 0x1D\n\
- bhi _081068E6\n\
- adds r0, 0x1\n\
-_081068E4:\n\
- strh r0, [r1]\n\
-_081068E6:\n\
- add sp, 0x4\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_081068EC: .4byte gPaletteFade\n\
-_081068F0: .4byte CB2_QuitContestPainting\n\
-_081068F4: .4byte gUnknown_03000756\n\
-_081068F8: .4byte gUnknown_03000754\n\
- .syntax divided\n");
+static void HoldContestPainting(void)
+{
+ switch (gUnknown_03000750)
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ gUnknown_03000750 = 1;
+ if (gUnknown_03000756.var_0 != 0 && gUnknown_03000754 != 0)
+ gUnknown_03000754--;
+ break;
+ case 1:
+ if ((gMain.newKeys & 1) || (gMain.newKeys & 2))
+ {
+ u8 two = 2; //needed to make the asm match
+
+ gUnknown_03000750 = two;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ }
+ if (gUnknown_03000756.var_0 != 0)
+ gUnknown_03000754 = 0;
+ break;
+ case 2:
+ if (!gPaletteFade.active)
+ SetMainCallback2(CB2_QuitContestPainting);
+ if (gUnknown_03000756.var_0 != 0 && gUnknown_03000754 <= 0x1D)
+ gUnknown_03000754++;
+ break;
+ }
}
-void ContestPaintingInitWindow(u8 arg0) {
+static void ContestPaintingInitWindow(u8 arg0)
+{
InitMenuWindow(&gWindowConfig_81E7160);
SetUpWindowConfig(&gWindowConfig_81E7160);
}
-void ContestPaintingPrintCaption(u8 contestType, u8 arg1) {
+static void ContestPaintingPrintCaption(u8 contestType, u8 arg1)
+{
u8 xPos, yPos;
u8 *ptr;
u8 type;
- if (arg1 == TRUE) {
+ if (arg1 == TRUE)
return;
- }
-
ptr = gUnknown_03005E40;
type = gUnknown_03005E8C->contestType;
- if (contestType < 8) {
+ if (contestType < 8)
+ {
ptr = StringCopy(ptr, gUnknown_083F60AC[type]);
ptr = StringCopy(ptr, gContestText_ContestWinner);
ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name);
@@ -540,7 +309,9 @@ void ContestPaintingPrintCaption(u8 contestType, u8 arg1) {
xPos = 6;
yPos = 14;
- } else {
+ }
+ else
+ {
ptr = StringCopy(ptr, *gUnknown_083F60C0[type].prefix);
ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name);
ptr = StringCopy(ptr, *gUnknown_083F60C0[type].suffix);
@@ -548,11 +319,11 @@ void ContestPaintingPrintCaption(u8 contestType, u8 arg1) {
xPos = 3;
yPos = 14;
}
-
MenuPrint_PixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1);
}
-void ContestPaintingInitBG(void) {
+static void ContestPaintingInitBG(void)
+{
REG_DISPCNT = 0;
REG_IE |= INTR_FLAG_VBLANK;
REG_BG0CNT = 0x0C42;
@@ -562,20 +333,26 @@ void ContestPaintingInitBG(void) {
REG_BLDY = 0;
}
-void ContestPaintingInitVars(bool8 arg0) {
- if (arg0 == 0) {
+static void ContestPaintingInitVars(bool8 arg0)
+{
+ if (arg0 == FALSE)
+ {
gUnknown_03000756.var_0 = FALSE;
gUnknown_03000752 = 0;
gUnknown_03000754 = 0;
- } else {
+ }
+ else
+ {
gUnknown_03000756.var_0 = TRUE;
gUnknown_03000752 = 15;
gUnknown_03000754 = 30;
}
}
-void ContestPaintingMosaic(void) {
- if (gUnknown_03000756.var_0 == FALSE) {
+static void ContestPaintingMosaic(void)
+{
+ if (gUnknown_03000756.var_0 == FALSE)
+ {
REG_MOSAIC = 0;
return;
}
@@ -586,19 +363,23 @@ void ContestPaintingMosaic(void) {
REG_MOSAIC = (gUnknown_03000752 << 12) | (gUnknown_03000752 << 8) | (gUnknown_03000752 << 4) | (gUnknown_03000752 << 0);
}
-void VBlankCB_ContestPainting(void) {
+static void VBlankCB_ContestPainting(void)
+{
ContestPaintingMosaic();
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-struct MonCoords {
- u8 x, y;
+
+struct MonCoords
+{
+ u8 x;
+ u8 y;
};
#ifdef NONMATCHING
-void sub_8106AC4(u16 species, u8 arg1) {
+static void sub_8106AC4(u16 species, u8 arg1) {
void *pal;
// Unsure what gUnknown_03005E8C->var0 is supposed to be.
@@ -631,7 +412,7 @@ void sub_8106AC4(u16 species, u8 arg1) {
}
#else
__attribute__((naked))
-void sub_8106AC4(u16 arg0, u8 arg2) {
+static void sub_8106AC4(u16 arg0, u8 arg2) {
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r8\n\
@@ -727,8 +508,44 @@ _08106B8C: .4byte gUnknown_03005E10\n\
}
#endif
+#ifdef NONMATCHING
+void sub_8106B90(u8 a[][8][8][4], u16 b[], u16 c[][8][8][8])
+{
+ u16 i;
+ u16 j;
+ u16 k;
+ u16 l;
+
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 8; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ for (l = 0; l < 8; l++)
+ {
+ //u8 *arr = a[i][j][k];
+ //u8 r1 = arr[l / 2];
+ u8 r1 = a[i][j][k][l / 2];
+
+ if (l & 1)
+ r1 /= 16;
+ else
+ r1 %= 16;
+ //_08106BEA
+ if (r1 == 0)
+ c[i][k][j][l] = 0x8000;
+ else
+ c[i][k][j][l] = b[r1];
+ }
+ }
+ }
+ }
+}
+#else
__attribute__((naked))
-void sub_8106B90() {
+void sub_8106B90()
+{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
@@ -828,481 +645,146 @@ _08106C08:\n\
bx r0\n\
.syntax divided\n");
}
+#endif
-#ifdef NONMATCHING
-void sub_8106C40(u8 arg0, u8 arg1) {
+static void sub_8106C40(u8 arg0, u8 arg1)
+{
+ u8 x, y;
+
LoadPalette(gPictureFramePalettes, 0, 128 * 2);
-
- if (arg1 == 1) {
- switch (gUnknown_03005E8C->contestType / 3) {
- case CONTEST_COOL:
- RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM);
- RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03005E10);
- break;
-
- case CONTEST_BEAUTY:
- RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM);
- RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03005E10);
- break;
-
- case CONTEST_CUTE:
- RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM);
- RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03005E10);
- break;
-
- case CONTEST_SMART:
- RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM);
- RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03005E10);
- break;
-
- case CONTEST_TOUGH:
- RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM);
- RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03005E10);
- break;
+ if (arg1 == 1)
+ {
+ switch (gUnknown_03005E8C->contestType / 3)
+ {
+ case CONTEST_COOL:
+ RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_0, gUnknown_03005E10);
+ break;
+ case CONTEST_BEAUTY:
+ RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_1, gUnknown_03005E10);
+ break;
+ case CONTEST_CUTE:
+ RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_2, gUnknown_03005E10);
+ break;
+ case CONTEST_SMART:
+ RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_3, gUnknown_03005E10);
+ break;
+ case CONTEST_TOUGH:
+ RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM);
+ RLUnCompWram(gPictureFrameTilemap_4, gUnknown_03005E10);
+ break;
}
-
+
+ #define VRAM_PICTURE_DATA(x, y) (((u16 *)(VRAM + 0x6000))[(y) * 32 + (x)])
+
+ // Set the background
+ for (y = 0; y < 20; y++)
{
- u8 x;
- u8 y;
-
- u16 (*vram)[32][32] = (void *) (VRAM + 0x6000);
-
- // Set the background
- for (y = 0; y < 20; y++) {
- for (x = 0; x < 32; x++) {
- (*vram)[y][x] = 1 << 12 | 21;
- }
- }
-
- // Copy the image frame
- for (y = 0; y < 10; y++) {
- for (x = 0; x < 18; x++) {
- (*vram)[y + 2][x + 6] = (*gUnknown_03005E10)[y + 2][x + 6];
- }
- }
-
- // Re-set the entire top row to the first top frame part
- for (x = 0; x < 16; x++) {
- (*vram)[2][x + 7] = (*gUnknown_03005E10)[2][7];
- }
+ for (x = 0; x < 32; x++)
+ VRAM_PICTURE_DATA(x, y) = 0x1015;
}
- // def_8106C7A
- } else {
- if (arg0 < 8) {
- RLUnCompVram(gPictureFrameTiles_5, (void *) VRAM);
- RLUnCompVram(gPictureFrameTilemap_5, (void *) (VRAM + 0x6000));
- return;
+ // Copy the image frame
+ for (y = 0; y < 10; y++)
+ {
+ for (x = 0; x < 18; x++)
+ VRAM_PICTURE_DATA(x + 6, y + 2) = (*gUnknown_03005E10)[y + 2][x + 6];
}
- switch (gUnknown_03005E8C->contestType / 3) {
- case CONTEST_COOL:
- RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM);
- RLUnCompVram(gPictureFrameTilemap_0, (void *) (VRAM + 0x6000));
- break;
-
- case CONTEST_BEAUTY:
- RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM);
- RLUnCompVram(gPictureFrameTilemap_1, (void *) (VRAM + 0x6000));
- break;
-
- case CONTEST_CUTE:
- RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM);
- RLUnCompVram(gPictureFrameTilemap_2, (void *) (VRAM + 0x6000));
- break;
-
- case CONTEST_SMART:
- RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM);
- RLUnCompVram(gPictureFrameTilemap_3, (void *) (VRAM + 0x6000));
- break;
-
- case CONTEST_TOUGH:
- RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM);
- RLUnCompVram(gPictureFrameTilemap_4, (void *) (VRAM + 0x6000));
- break;
+ // Re-set the entire top row to the first top frame part
+ for (x = 0; x < 16; x++)
+ VRAM_PICTURE_DATA(x + 7, 2) = (*gUnknown_03005E10)[2][7];
+
+ #undef VRAM_PICTURE_DATA
+ }
+ else if (arg0 < 8)
+ {
+ RLUnCompVram(gPictureFrameTiles_5, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_5, (void *) (VRAM + 0x6000));
+ }
+ else
+ {
+ switch (gUnknown_03005E8C->contestType / 3)
+ {
+ case CONTEST_COOL:
+ RLUnCompVram(gPictureFrameTiles_0, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_0, (void *) (VRAM + 0x6000));
+ break;
+ case CONTEST_BEAUTY:
+ RLUnCompVram(gPictureFrameTiles_1, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_1, (void *) (VRAM + 0x6000));
+ break;
+ case CONTEST_CUTE:
+ RLUnCompVram(gPictureFrameTiles_2, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_2, (void *) (VRAM + 0x6000));
+ break;
+ case CONTEST_SMART:
+ RLUnCompVram(gPictureFrameTiles_3, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_3, (void *) (VRAM + 0x6000));
+ break;
+ case CONTEST_TOUGH:
+ RLUnCompVram(gPictureFrameTiles_4, (void *) VRAM);
+ RLUnCompVram(gPictureFrameTilemap_4, (void *) (VRAM + 0x6000));
+ break;
}
}
}
-#else
-__attribute__((naked))
-void sub_8106C40(u8 arg0, u8 arg1) {
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- adds r4, r1, 0\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- ldr r0, _08106C7C @ =gPictureFramePalettes\n\
- movs r2, 0x80\n\
- lsls r2, 1\n\
- movs r1, 0\n\
- bl LoadPalette\n\
- cmp r4, 0x1\n\
- beq _08106C5E\n\
- b _08106DB4\n\
-_08106C5E:\n\
- ldr r0, _08106C80 @ =gUnknown_03005E8C\n\
- ldr r0, [r0]\n\
- ldrb r0, [r0, 0xA]\n\
- movs r1, 0x3\n\
- bl __udivsi3\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x4\n\
- bhi _08106D1C\n\
- lsls r0, 2\n\
- ldr r1, _08106C84 @ =_08106C88\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_08106C7C: .4byte gPictureFramePalettes\n\
-_08106C80: .4byte gUnknown_03005E8C\n\
-_08106C84: .4byte _08106C88\n\
- .align 2, 0\n\
-_08106C88:\n\
- .4byte _08106C9C\n\
- .4byte _08106CB4\n\
- .4byte _08106CCC\n\
- .4byte _08106CE4\n\
- .4byte _08106D08\n\
-_08106C9C:\n\
- ldr r0, _08106CAC @ =gPictureFrameTiles_0\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106CB0 @ =gPictureFrameTilemap_0\n\
- b _08106CF0\n\
- .align 2, 0\n\
-_08106CAC: .4byte gPictureFrameTiles_0\n\
-_08106CB0: .4byte gPictureFrameTilemap_0\n\
-_08106CB4:\n\
- ldr r0, _08106CC4 @ =gPictureFrameTiles_1\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106CC8 @ =gPictureFrameTilemap_1\n\
- b _08106CF0\n\
- .align 2, 0\n\
-_08106CC4: .4byte gPictureFrameTiles_1\n\
-_08106CC8: .4byte gPictureFrameTilemap_1\n\
-_08106CCC:\n\
- ldr r0, _08106CDC @ =gPictureFrameTiles_2\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106CE0 @ =gPictureFrameTilemap_2\n\
- b _08106CF0\n\
- .align 2, 0\n\
-_08106CDC: .4byte gPictureFrameTiles_2\n\
-_08106CE0: .4byte gPictureFrameTilemap_2\n\
-_08106CE4:\n\
- ldr r0, _08106CFC @ =gPictureFrameTiles_3\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106D00 @ =gPictureFrameTilemap_3\n\
-_08106CF0:\n\
- ldr r1, _08106D04 @ =gUnknown_03005E10\n\
- ldr r1, [r1]\n\
- bl RLUnCompWram\n\
- b _08106D1C\n\
- .align 2, 0\n\
-_08106CFC: .4byte gPictureFrameTiles_3\n\
-_08106D00: .4byte gPictureFrameTilemap_3\n\
-_08106D04: .4byte gUnknown_03005E10\n\
-_08106D08:\n\
- ldr r0, _08106D98 @ =gPictureFrameTiles_4\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106D9C @ =gPictureFrameTilemap_4\n\
- ldr r1, _08106DA0 @ =gUnknown_03005E10\n\
- ldr r1, [r1]\n\
- bl RLUnCompWram\n\
-_08106D1C:\n\
- movs r1, 0\n\
- ldr r5, _08106DA4 @ =0x06006000\n\
- ldr r0, _08106DA8 @ =0x00001015\n\
- adds r4, r0, 0\n\
-_08106D24:\n\
- movs r3, 0\n\
- lsls r2, r1, 5\n\
-_08106D28:\n\
- adds r0, r2, r3\n\
- lsls r0, 1\n\
- adds r0, r5\n\
- strh r4, [r0]\n\
- adds r0, r3, 0x1\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- cmp r3, 0x1F\n\
- bls _08106D28\n\
- adds r0, r1, 0x1\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
- cmp r1, 0x13\n\
- bls _08106D24\n\
- movs r1, 0\n\
- ldr r0, _08106DAC @ =0x0600608c\n\
- mov r12, r0\n\
- ldr r7, _08106DA0 @ =gUnknown_03005E10\n\
-_08106D4C:\n\
- movs r3, 0\n\
- adds r6, r1, 0x1\n\
- lsls r5, r1, 5\n\
- lsls r4, r1, 6\n\
-_08106D54:\n\
- adds r2, r5, r3\n\
- lsls r2, 1\n\
- add r2, r12\n\
- ldr r0, [r7]\n\
- adds r0, r4, r0\n\
- lsls r1, r3, 1\n\
- adds r0, r1\n\
- adds r0, 0x8C\n\
- ldrh r0, [r0]\n\
- strh r0, [r2]\n\
- adds r0, r3, 0x1\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- cmp r3, 0x11\n\
- bls _08106D54\n\
- lsls r0, r6, 24\n\
- lsrs r1, r0, 24\n\
- cmp r1, 0x9\n\
- bls _08106D4C\n\
- movs r3, 0\n\
- ldr r4, _08106DB0 @ =0x0600608e\n\
- ldr r2, _08106DA0 @ =gUnknown_03005E10\n\
-_08106D80:\n\
- lsls r1, r3, 1\n\
- adds r1, r4\n\
- ldr r0, [r2]\n\
- adds r0, 0x8E\n\
- ldrh r0, [r0]\n\
- strh r0, [r1]\n\
- adds r0, r3, 0x1\n\
- lsls r0, 24\n\
- lsrs r3, r0, 24\n\
- cmp r3, 0xF\n\
- bls _08106D80\n\
- b _08106E86\n\
- .align 2, 0\n\
-_08106D98: .4byte gPictureFrameTiles_4\n\
-_08106D9C: .4byte gPictureFrameTilemap_4\n\
-_08106DA0: .4byte gUnknown_03005E10\n\
-_08106DA4: .4byte 0x06006000\n\
-_08106DA8: .4byte 0x00001015\n\
-_08106DAC: .4byte 0x0600608c\n\
-_08106DB0: .4byte 0x0600608e\n\
-_08106DB4:\n\
- cmp r5, 0x7\n\
- bhi _08106DD0\n\
- ldr r0, _08106DC8 @ =gPictureFrameTiles_5\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106DCC @ =gPictureFrameTilemap_5\n\
- b _08106E60\n\
- .align 2, 0\n\
-_08106DC8: .4byte gPictureFrameTiles_5\n\
-_08106DCC: .4byte gPictureFrameTilemap_5\n\
-_08106DD0:\n\
- ldr r0, _08106DF0 @ =gUnknown_03005E8C\n\
- ldr r0, [r0]\n\
- ldrb r0, [r0, 0xA]\n\
- movs r1, 0x3\n\
- bl __udivsi3\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x4\n\
- bhi _08106E86\n\
- lsls r0, 2\n\
- ldr r1, _08106DF4 @ =_08106DF8\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_08106DF0: .4byte gUnknown_03005E8C\n\
-_08106DF4: .4byte _08106DF8\n\
- .align 2, 0\n\
-_08106DF8:\n\
- .4byte _08106E0C\n\
- .4byte _08106E24\n\
- .4byte _08106E3C\n\
- .4byte _08106E54\n\
- .4byte _08106E74\n\
-_08106E0C:\n\
- ldr r0, _08106E1C @ =gPictureFrameTiles_0\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106E20 @ =gPictureFrameTilemap_0\n\
- b _08106E60\n\
- .align 2, 0\n\
-_08106E1C: .4byte gPictureFrameTiles_0\n\
-_08106E20: .4byte gPictureFrameTilemap_0\n\
-_08106E24:\n\
- ldr r0, _08106E34 @ =gPictureFrameTiles_1\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106E38 @ =gPictureFrameTilemap_1\n\
- b _08106E60\n\
- .align 2, 0\n\
-_08106E34: .4byte gPictureFrameTiles_1\n\
-_08106E38: .4byte gPictureFrameTilemap_1\n\
-_08106E3C:\n\
- ldr r0, _08106E4C @ =gPictureFrameTiles_2\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106E50 @ =gPictureFrameTilemap_2\n\
- b _08106E60\n\
- .align 2, 0\n\
-_08106E4C: .4byte gPictureFrameTiles_2\n\
-_08106E50: .4byte gPictureFrameTilemap_2\n\
-_08106E54:\n\
- ldr r0, _08106E68 @ =gPictureFrameTiles_3\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106E6C @ =gPictureFrameTilemap_3\n\
-_08106E60:\n\
- ldr r1, _08106E70 @ =0x06006000\n\
- bl RLUnCompVram\n\
- b _08106E86\n\
- .align 2, 0\n\
-_08106E68: .4byte gPictureFrameTiles_3\n\
-_08106E6C: .4byte gPictureFrameTilemap_3\n\
-_08106E70: .4byte 0x06006000\n\
-_08106E74:\n\
- ldr r0, _08106E8C @ =gPictureFrameTiles_4\n\
- movs r1, 0xC0\n\
- lsls r1, 19\n\
- bl RLUnCompVram\n\
- ldr r0, _08106E90 @ =gPictureFrameTilemap_4\n\
- ldr r1, _08106E94 @ =0x06006000\n\
- bl RLUnCompVram\n\
-_08106E86:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08106E8C: .4byte gPictureFrameTiles_4\n\
-_08106E90: .4byte gPictureFrameTilemap_4\n\
-_08106E94: .4byte 0x06006000\n\
- .syntax divided\n");
-}
-#endif
-#ifdef NONMATCHING
-void sub_8106E98(u8 arg0 ) {
+static void sub_8106E98(u8 arg0)
+{
+ //Some hacks just to get the asm to match
+#ifndef NONMATCHING
+ asm(""::"r"(arg0));
+#endif
+
gMain.oamBuffer[0] = gOamData_83F6138;
-
gMain.oamBuffer[0].tileNum = 0;
+
+#ifndef NONMATCHING
+ if (arg0) arg0 = gMain.oamBuffer[0].tileNum;
+#endif
+
gMain.oamBuffer[0].x = 88;
gMain.oamBuffer[0].y = 24;
}
-#else
-__attribute__((naked))
-void sub_8106E98(u8 arg0) {
- asm(".syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldr r4, _08106ED0 @ =gMain\n\
- ldr r1, _08106ED4 @ =gOamData_83F6138\n\
- ldr r2, [r1, 0x4]\n\
- ldr r1, [r1]\n\
- str r1, [r4, 0x3C]\n\
- str r2, [r4, 0x40]\n\
- adds r3, r4, 0\n\
- adds r3, 0x40\n\
- ldrh r2, [r3]\n\
- ldr r1, _08106ED8 @ =0xfffffc00\n\
- ands r1, r2\n\
- strh r1, [r3]\n\
- ldrh r1, [r4, 0x3E]\n\
- ldr r0, _08106EDC @ =0xfffffe00\n\
- ands r0, r1\n\
- movs r1, 0x58\n\
- orrs r0, r1\n\
- strh r0, [r4, 0x3E]\n\
- adds r1, r4, 0\n\
- adds r1, 0x3C\n\
- movs r0, 0x18\n\
- strb r0, [r1]\n\
- pop {r4}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08106ED0: .4byte gMain\n\
-_08106ED4: .4byte gOamData_83F6138\n\
-_08106ED8: .4byte 0xfffffc00\n\
-_08106EDC: .4byte 0xfffffe00\n\
- .syntax divided\n");
-}
-#endif
-u8 sub_8106EE0(u8 arg0) {
+static u8 sub_8106EE0(u8 arg0)
+{
u8 contestType;
- if (arg0 < 8) {
+ if (arg0 < 8)
contestType = gUnknown_03005E8C->contestType;
- } else {
+ else
contestType = gUnknown_03005E8C->contestType / 3;
- }
-
- switch (contestType) {
- case CONTEST_COOL:
- return CONTESTRESULT_COOL;
-
- case CONTEST_BEAUTY:
- return CONTESTRESULT_BEAUTY;
-
- case CONTEST_CUTE:
- return CONTESTRESULT_CUTE;
-
- case CONTEST_SMART:
- return CONTESTRESULT_SMART;
- case CONTEST_TOUGH:
- return CONTESTRESULT_TOUGH;
+ switch (contestType)
+ {
+ case CONTEST_COOL:
+ return CONTESTRESULT_COOL;
+ case CONTEST_BEAUTY:
+ return CONTESTRESULT_BEAUTY;
+ case CONTEST_CUTE:
+ return CONTESTRESULT_CUTE;
+ case CONTEST_SMART:
+ return CONTESTRESULT_SMART;
+ case CONTEST_TOUGH:
+ return CONTESTRESULT_TOUGH;
}
return contestType;
}
-#ifdef NONMATCHING
-void sub_8106F4C(void) {
- gUnknown_03005E90 = (void *) 0x02017e00;
- gUnknown_03005E10 = (void *) 0x02015e00;
-}
-#else
-__attribute__((naked))
-void sub_8106F4C(void) {
- asm(".syntax unified\n\
- ldr r0, _08106F5C @ =gUnknown_03005E90\n\
- ldr r1, _08106F60 @ =0x02017e00\n\
- str r1, [r0]\n\
- ldr r0, _08106F64 @ =gUnknown_03005E10\n\
- ldr r2, _08106F68 @ =0xffffe000\n\
- adds r1, r2\n\
- str r1, [r0]\n\
- bx lr\n\
- .align 2, 0\n\
-_08106F5C: .4byte gUnknown_03005E90\n\
-_08106F60: .4byte 0x02017e00\n\
-_08106F64: .4byte gUnknown_03005E10\n\
-_08106F68: .4byte 0xffffe000\n\
- .syntax divided\n");
+static void sub_8106F4C(void)
+{
+ gUnknown_03005E90 = &unk_2015e00.unk2017e00;
+ gUnknown_03005E10 = &unk_2015e00.unk2015e00;
}
-#endif
-void sub_8106F6C(u8 arg0) {
+static void sub_8106F6C(u8 arg0)
+{
gUnknown_03005E20.var_4 = gUnknown_03005E10;
gUnknown_03005E20.var_8 = gUnknown_03005E90;
gUnknown_03005E20.var_18 = 0;
@@ -1314,18 +796,18 @@ void sub_8106F6C(u8 arg0) {
gUnknown_03005E20.var_1D = 64;
gUnknown_03005E20.var_1E = 64;
- switch (arg0) {
- case CONTESTRESULT_SMART:
- case CONTESTRESULT_TOUGH:
- gUnknown_03005E20.var_14 = 3;
- break;
-
- case CONTESTRESULT_COOL:
- case CONTESTRESULT_BEAUTY:
- case CONTESTRESULT_CUTE:
- default:
- gUnknown_03005E20.var_14 = 1;
- break;
+ switch (arg0)
+ {
+ case CONTESTRESULT_SMART:
+ case CONTESTRESULT_TOUGH:
+ gUnknown_03005E20.var_14 = 3;
+ break;
+ case CONTESTRESULT_COOL:
+ case CONTESTRESULT_BEAUTY:
+ case CONTESTRESULT_CUTE:
+ default:
+ gUnknown_03005E20.var_14 = 1;
+ break;
}
gUnknown_03005E20.var_16 = 2;
@@ -1339,15 +821,11 @@ void sub_8106F6C(u8 arg0) {
LoadPalette(gUnknown_03005E90, 256, 256 * 2);
}
-void sub_8107090(u8 arg0, u8 arg1) {
- u8 local0;
-
+static void sub_8107090(u8 arg0, u8 arg1)
+{
sub_8106F4C();
sub_8106AC4(gUnknown_03005E8C->var8, 0);
-
- local0 = sub_8106EE0(arg0);
- sub_8106F6C(local0);
-
+ sub_8106F6C(sub_8106EE0(arg0));
sub_8106E98(arg0);
sub_8106C40(arg0, arg1);
}
diff --git a/src/credits.c b/src/credits.c
index ef89707ff..13a6a1633 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -9,6 +9,72 @@
#include "task.h"
#include "text.h"
+enum {
+ PAGE_TITLE,
+ PAGE_DIRECTOR,
+ PAGE_ART_DIRECTOR,
+ PAGE_BATTLE_DIRECTOR,
+ PAGE_MAIN_PROGRAMMER,
+ PAGE_BATTLE_SYSTEM_PROGRAMMER,
+ PAGE_PROGRAMMERS_1,
+ PAGE_PROGRAMMERS_2,
+ PAGE_PROGRAMMERS_3,
+ PAGE_MAIN_GRAHPICS_DESIGNER,
+ PAGE_POKEMON_GRAHPIC_DESIGNERS_1,
+ PAGE_POKEMON_GRAHPIC_DESIGNERS_2,
+ PAGE_POKEMON_GRAHPIC_DESIGNERS_3,
+ PAGE_POKEMON_DESIGNERS_1,
+ PAGE_POKEMON_DESIGNERS_2,
+ PAGE_MUSIC_COMPOSITION,
+ PAGE_SOUND_EFFECTS,
+ PAGE_GAME_DESIGNERS_1,
+ PAGE_GAME_DESIGNERS_2,
+ PAGE_GAME_DESIGNERS_3,
+ PAGE_PLOT_SCENARIO,
+ PAGE_GAME_SCENARIO,
+ PAGE_SCRIPT_DESIGNERS,
+ PAGE_MAP_DESIGNERS,
+ PAGE_MAP_DATA_DESIGNERS,
+ PAGE_PARAMETRIC_DESIGNERS,
+ PAGE_POKEDEX_TEXT,
+ PAGE_ENVIRONMENT_TOOLS,
+ PAGE_PRODUCT_TESTING,
+ PAGE_SPECIAL_THANKS,
+ PAGE_SPECIAL_THANKS_1,
+ PAGE_SPECIAL_THANKS_2,
+ PAGE_SPECIAL_THANKS_3,
+ PAGE_INFORMATION_SUPERVISORS,
+ PAGE_COORDINATORS,
+ PAGE_TASK_MANAGERS,
+ PAGE_PRODUCERS,
+ PAGE_EXECUTIVE_DIRECTOR,
+ PAGE_EXECUTIVE_PRODUCERS_1,
+ PAGE_EXECUTIVE_PRODUCERS_2,
+ PAGE_TRANSLATION_COORDINATOR,
+ PAGE_TRANSLATORS,
+ PAGE_PROGRAMMERS,
+ PAGE_GRAPHIC_DESIGNERS,
+ PAGE_PRODUCT_SUPPORT,
+ PAGE_ARTWORK,
+ PAGE_TEXT_EDITOR,
+ PAGE_NOA_TESTING,
+ PAGE_BRAILLE_CODE_CHECK_1,
+ PAGE_BRAILLE_CODE_CHECK_2,
+ PAGE_SPECIAL_THANKS_4,
+ PAGE_SPECIAL_THANKS_5,
+
+ PAGE_COUNT
+};
+
+#define UNK_DEFINE_82 (0x82)
+
+#define COLOR_DARK_GREEN 0x1967
+#define COLOR_LIGHT_GREEN 0x328D
+
+enum {
+ TD_CURRENT_PAGE = 2,
+};
+
struct Unk201C000 {
u8 pad_00[0x88];
u16 var_88;
@@ -22,6 +88,11 @@ struct HallOfFame {
u8 sheet2[0x800];
};
+struct CreditsEntry {
+ u8 var_0;
+ u8 *text;
+};
+
extern struct Unk201C000 unk_201C000;
extern struct HallOfFame gHallOfFame;
@@ -45,6 +116,7 @@ extern u8 gBirchHelpGfx[];
// data/credits
extern u16 gUnknown_0840B7BC[32];
extern u16 gUnknown_0840B7FC[32];
+extern struct CreditsEntry *gCreditsEntryPointerTable[][5];
extern struct SpriteSheet gUnknown_0840CAA0;
extern struct SpritePalette gUnknown_0840CAB0;
@@ -62,8 +134,9 @@ static void sub_8144024(u8 taskId);
static void sub_8144080(u8 taskId);
static void sub_8144114(u8 taskId);
static void sub_8144130(void);
+static void sub_81441B8(u8 taskId);
+static u8 sub_8144454(u8 page, u8 taskId);
-void sub_81441B8(u8 taskId);
void sub_8144514(u8 taskId);
u8 sub_8144ECC(u8 data, u8 taskId);
void sub_81450AC(u8 taskId);
@@ -83,15 +156,18 @@ static void sub_814395C(void) {
BuildOamBuffer();
UpdatePaletteFade();
- if (!(gMain.heldKeys & B_BUTTON)) {
+ if (!(gMain.heldKeys & B_BUTTON))
+ {
return;
}
- if (!gUnknown_02039324) {
+ if (!gUnknown_02039324)
+ {
return;
}
- if (gTasks[gUnknown_02039322].func != sub_8143B68) {
+ if (gTasks[gUnknown_02039322].func != sub_8143B68)
+ {
return;
}
@@ -108,7 +184,7 @@ void sub_81439D0(void) {
s16 taskId3;
u8 taskId2;
u16 savedIme;
- struct Unk201C000 * c000;
+ struct Unk201C000 *c000;
sub_8144130();
SetVBlankCallback(NULL);
@@ -122,8 +198,10 @@ void sub_81439D0(void) {
gTasks[taskId].data[11] = 0;
gTasks[taskId].data[13] = 1;
- while (TRUE) {
- if (sub_8144ECC(0, taskId)) {
+ while (TRUE)
+ {
+ if (sub_8144ECC(0, taskId))
+ {
break;
}
}
@@ -171,7 +249,8 @@ void sub_81439D0(void) {
}
void sub_8143B38(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
@@ -181,7 +260,8 @@ void sub_8143B38(u8 taskId) {
void sub_8143B68(u8 taskId) {
u16 data11;
- if (gTasks[taskId].data[4]) {
+ if (gTasks[taskId].data[4])
+ {
s16 secondaryTaskId;
secondaryTaskId = gTasks[taskId].data[1];
@@ -195,12 +275,15 @@ void sub_8143B68(u8 taskId) {
gUnknown_02039320 = 0;
data11 = gTasks[taskId].data[11];
- if (gTasks[taskId].data[11] == 1) {
+ if (gTasks[taskId].data[11] == 1)
+ {
gTasks[taskId].data[13] = data11;
gTasks[taskId].data[11] = 0;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gTasks[taskId].func = sub_8143BFC;
- } else if (gTasks[taskId].data[11] == 2) {
+ }
+ else if (gTasks[taskId].data[11] == 2)
+ {
gTasks[taskId].data[13] = data11;
gTasks[taskId].data[11] = 0;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
@@ -209,7 +292,8 @@ void sub_8143B68(u8 taskId) {
}
static void sub_8143BFC(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
@@ -223,7 +307,8 @@ static void c2_080C9BFC(u8 taskId) {
SetVBlankCallback(NULL);
- if (!sub_8144ECC(gTasks[taskId].data[7], taskId)) {
+ if (!sub_8144ECC(gTasks[taskId].data[7], taskId))
+ {
return;
}
@@ -240,7 +325,8 @@ static void c2_080C9BFC(u8 taskId) {
}
static void sub_8143CC0(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
@@ -252,58 +338,58 @@ static void sub_8143CC0(u8 taskId) {
#ifdef NONMATCHING
static void sub_8143D04(u8 taskId) {
switch (gMain.state) {
- default:
- case 0: {
- u16 i;
-
- ResetSpriteData();
- FreeAllSpritePalettes();
- gReservedSpritePaletteCount = 8;
- LZ77UnCompVram(&gBirchHelpGfx, (void *) VRAM);
- LZ77UnCompVram(&gBirchBagTilemap, (void *) (VRAM + 0x3800));
- LoadPalette(gBirchBagGrassPal + 2, 1, 31 * 2);
-
- for (i = 0; i < 0x800; i++) {
- gHallOfFame.sheet0[i] = 0x11;
- }
+ default:
+ case 0: {
+ u16 i;
+
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 8;
+ LZ77UnCompVram(&gBirchHelpGfx, (void *) VRAM);
+ LZ77UnCompVram(&gBirchBagTilemap, (void *) (VRAM + 0x3800));
+ LoadPalette(gBirchBagGrassPal + 2, 1, 31 * 2);
+
+ for (i = 0; i < 0x800; i++) {
+ gHallOfFame.sheet0[i] = 0x11;
+ }
- for (i = 0; i < 0x800; i++) {
- gHallOfFame.sheet1[i] = 0x22;
- }
+ for (i = 0; i < 0x800; i++) {
+ gHallOfFame.sheet1[i] = 0x22;
+ }
- for (i = 0; i < 0x800; i++) {
- gHallOfFame.sheet2[i] = 0x33;
- }
+ for (i = 0; i < 0x800; i++) {
+ gHallOfFame.sheet2[i] = 0x33;
+ }
- unk_201f800[0] = 0;
- unk_201f800[1] = 0x53FF;
- unk_201f800[2] = 0x529F;
- unk_201f800[3] = 0x7E94;
+ unk_201f800[0] = 0;
+ unk_201f800[1] = 0x53FF; // light yellow
+ unk_201f800[2] = 0x529F; // light red
+ unk_201f800[3] = 0x7E94; // light blue
- LoadSpriteSheet(&gUnknown_0840CAA0);
- LoadSpritePalette(&gUnknown_0840CAB0);
+ LoadSpriteSheet(&gUnknown_0840CAA0);
+ LoadSpritePalette(&gUnknown_0840CAB0);
- gMain.state += 1;
- break;
- }
+ gMain.state += 1;
+ break;
+ }
- case 1: {
- gTasks[taskId].data[3] = CreateTask(sub_8144514, 0);
- gTasks[gTasks[taskId].data[3]].data[0] = 1;
- gTasks[gTasks[taskId].data[3]].data[1] = taskId;
- gTasks[gTasks[taskId].data[3]].data[2] = gTasks[taskId].data[7];
-
- BeginNormalPaletteFade(-1, 0, 16, 0, 0);
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 32;
- REG_BG3CNT = 0x703;
- REG_DISPCNT = 0x1940;
-
- gMain.state = 0;
- gUnknown_0203935C = 0;
- gTasks[taskId].func = sub_8143B38;
- break;
- }
+ case 1: {
+ gTasks[taskId].data[3] = CreateTask(sub_8144514, 0);
+ gTasks[gTasks[taskId].data[3]].data[0] = 1;
+ gTasks[gTasks[taskId].data[3]].data[1] = taskId;
+ gTasks[gTasks[taskId].data[3]].data[2] = gTasks[taskId].data[7];
+
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 32;
+ REG_BG3CNT = 0x703;
+ REG_DISPCNT = 0x1940;
+
+ gMain.state = 0;
+ gUnknown_0203935C = 0;
+ gTasks[taskId].func = sub_8143B38;
+ break;
+ }
}
}
#else
@@ -508,7 +594,8 @@ _08143EB8: .4byte sub_8143B38\n\
#endif
static void sub_8143EBC(u8 taskId) {
- if (gTasks[taskId].data[12]) {
+ if (gTasks[taskId].data[12])
+ {
gTasks[taskId].data[12] -= 1;
return;
}
@@ -518,7 +605,8 @@ static void sub_8143EBC(u8 taskId) {
}
static void sub_8143F04(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
@@ -549,7 +637,8 @@ static void sub_8143F3C(u8 taskId) {
}
static void sub_8143FDC(u8 taskId) {
- if (gTasks[taskId].data[0]) {
+ if (gTasks[taskId].data[0])
+ {
gTasks[taskId].data[0] -= 1;
return;
}
@@ -559,7 +648,8 @@ static void sub_8143FDC(u8 taskId) {
}
static void sub_8144024(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
@@ -571,29 +661,34 @@ static void sub_8144024(u8 taskId) {
}
static void sub_8144080(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
- if (gTasks[taskId].data[0] == 0) {
+ if (gTasks[taskId].data[0] == 0)
+ {
FadeOutBGM(4);
BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF);
gTasks[taskId].func = sub_8144114;
return;
}
- if (gMain.newKeys) {
+ if (gMain.newKeys)
+ {
FadeOutBGM(4);
BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF);
gTasks[taskId].func = sub_8144114;
return;
}
- if (gTasks[taskId].data[0] == 7144) {
+ if (gTasks[taskId].data[0] == 7144)
+ {
FadeOutBGM(8);
}
- if (gTasks[taskId].data[0] == 6840) {
+ if (gTasks[taskId].data[0] == 6840)
+ {
m4aSongNumStart(BGM_END);
}
@@ -601,7 +696,8 @@ static void sub_8144080(u8 taskId) {
}
static void sub_8144114(u8 taskId) {
- if (gPaletteFade.active) {
+ if (gPaletteFade.active)
+ {
return;
}
@@ -624,7 +720,197 @@ static void sub_8144130(void) {
REG_BLDALPHA = 0;
REG_BLDY = 0;
- DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
- DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
- DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
+ DmaFill16(3, 0, (void *) VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *) OAM, OAM_SIZE);
+ DmaFill16(3, 0, (void *) (PLTT + 2), PLTT_SIZE - 2);
+}
+
+static void sub_81441B8(u8 taskId) {
+ u16 i;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ default:
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].data[3] = 0x58;
+ gTasks[gTasks[taskId].data[1]].data[14] = 0;
+ gUnknown_02039320 = 0;
+ return;
+
+ case 1:
+ if (gTasks[taskId].data[3] != 0)
+ {
+ gTasks[taskId].data[3] -= 1;
+ return;
+ }
+
+ gTasks[taskId].data[0] += 1;
+ return;
+
+ case 2:
+ REG_DISPCNT &= ~DISPCNT_BG0_ON;
+
+ if (gTasks[gTasks[taskId].data[1]].func == sub_8143B68)
+ {
+ if (gTasks[taskId].data[TD_CURRENT_PAGE] < PAGE_COUNT)
+ {
+
+ for (i = 0; i < 5; i++)
+ {
+ sub_8072BD8(gCreditsEntryPointerTable[gTasks[taskId].data[TD_CURRENT_PAGE]][i]->text, 0,
+ 9 + i * 2, 240);
+ }
+
+ gTasks[taskId].data[TD_CURRENT_PAGE] += 1;
+ gTasks[taskId].data[0] += 1;
+
+ gTasks[gTasks[taskId].data[1]].data[14] = 1;
+
+ if (gTasks[gTasks[taskId].data[1]].data[13] == 1)
+ {
+ BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_LIGHT_GREEN);
+ }
+ else
+ {
+ BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_DARK_GREEN);
+ }
+ return;
+ }
+
+
+ gTasks[taskId].data[0] = 10;
+ return;
+ }
+
+ gTasks[gTasks[taskId].data[1]].data[14] = 0;
+ return;
+
+ case 3:
+ REG_DISPCNT |= DISPCNT_BG0_ON;
+
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ gTasks[taskId].data[3] = UNK_DEFINE_82;
+ gTasks[taskId].data[0] += 1;
+ return;
+
+ case 4:
+ if (gTasks[taskId].data[3] != 0)
+ {
+ gTasks[taskId].data[3] -= 1;
+ return;
+ }
+
+ if (sub_8144454((u8) gTasks[taskId].data[2], (u8) gTasks[taskId].data[1]))
+ {
+ gTasks[taskId].data[0] += 1;
+ return;
+ }
+
+ gTasks[taskId].data[0] += 1;
+
+ if (gTasks[gTasks[taskId].data[1]].data[13] == 1)
+ {
+ BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_LIGHT_GREEN);
+ }
+ else
+ {
+ BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_DARK_GREEN);
+ }
+
+ return;
+
+ case 5:
+ if (gPaletteFade.active)
+ {
+ return;
+ }
+
+ MenuZeroFillWindowRect(0, 9, 29, 19);
+ gTasks[taskId].data[0] = 2;
+ return;
+
+ case 10:
+ gTasks[gTasks[taskId].data[1]].data[4] = 1;
+ DestroyTask(taskId);
+ return;
+ }
+}
+
+#define LAST_PAGE (PAGE_TEXT_EDITOR)
+
+static u8 sub_8144454(u8 page, u8 taskId) {
+ // Starts with bike + ocean + morning
+
+ if (page == PAGE_PROGRAMMERS_1)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == PAGE_POKEMON_GRAHPIC_DESIGNERS_3)
+ {
+ // Bike + ocean + sunset
+ gTasks[taskId].data[7] = 1;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (page == PAGE_GAME_DESIGNERS_2)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == PAGE_MAP_DATA_DESIGNERS)
+ {
+ // Bike + forest + sunset
+ gTasks[taskId].data[7] = 2;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (page == PAGE_SPECIAL_THANKS_1)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == PAGE_TASK_MANAGERS)
+ {
+ // Bike + forest + sunset
+ gTasks[taskId].data[7] = 3;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (page == PAGE_TRANSLATION_COORDINATOR)
+ {
+ // Grass patch
+ gTasks[taskId].data[11] = 2;
+ }
+
+ if (page == LAST_PAGE)
+ {
+ // Bike + town + night
+ gTasks[taskId].data[7] = 4;
+ gTasks[taskId].data[11] = 1;
+ }
+
+ if (gTasks[taskId].data[11] != 0)
+ {
+ // Returns true if changed?
+ return TRUE;
+ }
+
+ return FALSE;
}
diff --git a/src/daycare.c b/src/daycare.c
new file mode 100644
index 000000000..23f0305d8
--- /dev/null
+++ b/src/daycare.c
@@ -0,0 +1,33 @@
+#include "global.h"
+#include "pokemon.h"
+#include "string_util.h"
+
+u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 *pokemon_get_nick_(struct BoxPokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetBoxMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 daycare_count_pokemon(struct BoxPokemon *daycare_data)
+{
+ u8 i, count;
+ count = 0;
+
+ for(i = 0;i <= 1;i++) {
+ if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) {
+ count++;
+ }
+ }
+
+ return count;
+}
diff --git a/src/truck_scene.c b/src/field_special_scene.c
index 64eca498c..80a1727d8 100644
--- a/src/truck_scene.c
+++ b/src/field_special_scene.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "truck_scene.h"
+#include "field_special_scene.h"
#include "asm.h"
#include "palette.h"
#include "task.h"
@@ -7,9 +7,15 @@
#include "songs.h"
#include "sound.h"
#include "field_camera.h"
+#include "rom4.h"
+#include "event_data.h"
+#include "sprite.h"
extern s8 gTruckCamera_HorizontalTable[];
+extern u8 gUnknown_083D295F[];
+extern u8 gUnknown_083D2961[];
+
s32 GetTruckCameraBobbingY(int a1)
{
if (!(a1 % 120))
@@ -65,10 +71,10 @@ void Task_Truck2(u8 taskId)
s16 box1;
s16 box2;
s16 box3;
-
+
data[0]++;
data[2]++;
-
+
if (data[0] > 5)
{
data[0] = 0;
@@ -82,7 +88,7 @@ void Task_Truck2(u8 taskId)
{
if (gTruckCamera_HorizontalTable[data[1]] == 2)
gTasks[taskId].func = Task_Truck3;
-
+
cameraXpan = gTruckCamera_HorizontalTable[data[1]];
cameraYpan = GetTruckCameraBobbingY(data[2]);
SetCameraPanning(cameraXpan, cameraYpan);
@@ -218,3 +224,112 @@ void EndTruckSequence(void)
sub_805BD90(3, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -3, 0);
}
}
+
+bool8 sub_80C7754(void)
+{
+ s8 mapGroup, mapNum;
+ s16 x, y;
+
+ if (sub_810D9EC(&mapGroup, &mapNum, &x, &y))
+ {
+ return FALSE;
+ }
+ else
+ {
+ warp1_set(mapGroup, mapNum, -1, x, y);
+ return TRUE;
+ }
+}
+
+void sub_80C77A0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 *var = GetVarPointer(0x40B4);
+ struct WarpData *location = &gSaveBlock1.location;
+
+ switch (data[0])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ data[1] = 0;
+ data[0] = 2;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ data[1] = 1;
+ if (!sub_80A212C(0xFF, location->mapNum, location->mapGroup))
+ return;
+ if (sub_810D9B0(1) == TRUE)
+ {
+ if (*var == 2)
+ *var = 9;
+ else
+ *var = 10;
+ data[0] = 3;
+ return;
+ }
+ data[0] = 2;
+ case 2:
+ if (data[1])
+ {
+ data[0] = 3;
+ return;
+ }
+
+ if (*var == 2)
+ {
+ exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_083D295F);
+ data[0] = 1;
+ }
+ else
+ {
+ exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_083D2961);
+ data[0] = 1;
+ }
+ break;
+ case 3:
+ FlagReset(0x4001);
+ FlagReset(0x4000);
+ copy_saved_warp2_bank_and_enter_x_to_warp1(0);
+ sp13E_warp_to_last_warp();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_80C78A0(void)
+{
+ u8 spriteId = AddPseudoFieldObject(0x8C, SpriteCallbackDummy, 112, 80, 0);
+
+ gSprites[spriteId].coordOffsetEnabled = FALSE;
+
+ if (VarGet(0x40B4) == 2)
+ {
+ StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(4));
+ }
+ else
+ {
+ StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(3));
+ }
+}
+
+void sub_80C791C(void)
+{
+ sub_80C78A0();
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = TRUE;
+ pal_fill_black();
+ CreateTask(sub_80C77A0, 80);
+ ScriptContext2_Enable();
+}
+
+void sub_80C7958(void)
+{
+ FlagSet(SYS_CRUISE_MODE);
+ FlagSet(0x4001);
+ FlagSet(0x4000);
+ saved_warp2_set(0, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1);
+ sub_80C7754();
+ sub_8080F9C();
+}
diff --git a/src/menu_cursor.c b/src/menu_cursor.c
index 5c1f0addf..201c6c4d8 100644
--- a/src/menu_cursor.c
+++ b/src/menu_cursor.c
@@ -13,7 +13,7 @@ extern struct SpriteTemplate gSpriteTemplate_842F298[];
extern struct Subsprite *gUnknown_0842F5BC[];
extern struct SubspriteTable gSubspriteTables_842F5C0[];
-extern struct SubspriteTable gUnknown_0842F6C0[];
+extern struct SubspriteTable gSubspriteTables_842F6C0[];
extern struct SubspriteTable gUnknown_0842F758[];
extern struct Subsprite gUnknown_0842F780;
@@ -601,6 +601,6 @@ void sub_814ADF4(u8 a1)
a1 = 0;
if (gUnknown_0203A3D2 != 0x40)
- SetSubspriteTables(&gSprites[gUnknown_0203A3D2], &gUnknown_0842F6C0[a1]);
+ SetSubspriteTables(&gSprites[gUnknown_0203A3D2], &gSubspriteTables_842F6C0[a1]);
return;
}
diff --git a/src/rom4.c b/src/rom4.c
index 4f3e35fea..3f383b690 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -26,7 +26,7 @@
#include "start_menu.h"
#include "task.h"
#include "tileset_anim.h"
-#include "truck_scene.h"
+#include "field_special_scene.h"
#include "weather.h"
#include "wild_encounter.h"
#include "metatile_behavior.h"
@@ -57,9 +57,6 @@ extern u16 gUnknown_02029814;
extern bool8 gUnknown_02029816;
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
-extern u8 gUnknown_0202E85C;
-extern u8 gUnknown_0202E85D;
-
extern u8 gUnknown_03000580[];
extern u16 (*gUnknown_03000584)(u32);
extern u8 gUnknown_03000588;
@@ -370,7 +367,7 @@ void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y
warp_set(&gSaveBlock1.warp2, mapGroup, mapNum, warpId, x, y);
}
-void copy_saved_warp2_bank_and_enter_x_to_warp1(void)
+void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused)
{
gUnknown_020297F8 = gSaveBlock1.warp2;
}
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index 41e61eadb..2396aab15 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -33,9 +33,6 @@ extern struct SaveFailedStruct gUnknown_0203933E;
extern u32 gUnknown_03005EA8;
extern u32 gUnknown_03005EBC;
-extern struct OamData gUnknown_08411940;
-extern u8 gUnknown_08411948[][3];
-
extern u8 gBirchHelpGfx[];
extern u8 gSystemText_SaveFailedBackupCheck[];
@@ -52,6 +49,35 @@ extern const u8 gSaveFailedClockGfx[];
extern const u8 gSaveFailedClockPal[];
extern u8 gBirchBagGrassPal[];
+static const struct OamData sClockOamData =
+{
+ 160, // Y
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0
+};
+
+static const u8 sClockFrames[8][3] =
+{
+ { 1, 0, 0 },
+ { 5, 0, 0 },
+ { 9, 0, 0 },
+ { 5, 0, 1 },
+ { 1, 0, 1 },
+ { 5, 1, 1 },
+ { 9, 1, 0 },
+ { 5, 1, 0 },
+};
+
static void VBlankCB(void);
static void CB2_SaveFailedScreen(void);
static void CB2_WipeSave(void);
@@ -236,14 +262,14 @@ static void VBlankCB_UpdateClockGraphics(void)
{
unsigned int n = (gMain.vblankCounter2 >> 3) & 7;
- gMain.oamBuffer[0] = gUnknown_08411940;
+ gMain.oamBuffer[0] = sClockOamData;
gMain.oamBuffer[0].x = 112;
gMain.oamBuffer[0].y = (CLOCK_WIN_TOP + 1) * 8;
if (gUnknown_0203933E.unk0)
{
- gMain.oamBuffer[0].tileNum = gUnknown_08411948[n][0];
- gMain.oamBuffer[0].matrixNum = (gUnknown_08411948[n][2] << 4) | (gUnknown_08411948[n][1] << 3);
+ gMain.oamBuffer[0].tileNum = sClockFrames[n][0];
+ gMain.oamBuffer[0].matrixNum = (sClockFrames[n][2] << 4) | (sClockFrames[n][1] << 3);
}
else
{
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 68e644353..9bd817cce 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -28,7 +28,7 @@ extern struct SpriteSheet gUnknown_083F77A4;
extern u8 gBirchBagGrassPal[];
extern const u8 gStarterChoose_LabelCoords[][2];
extern u16 gStarterMons[];
-extern union AffineAnimCmd *gUnknown_083F778C[];
+extern union AffineAnimCmd *gSpriteAffineAnimTable_83F778C[];
extern u8 gOtherText_DoYouChoosePoke[];
extern u16 gScriptResult;
extern u8 gSpeciesNames[][11];
@@ -216,7 +216,7 @@ static void Task_StarterChoose2(u8 taskId)
GetStarterPokemon(gTasks[taskId].data[TD_STARTERSELECTION]),
gStarterChoose_PokeballCoords[selection][0],
gStarterChoose_PokeballCoords[selection][1]);
- gSprites[spriteId].affineAnims = gUnknown_083F778C;
+ gSprites[spriteId].affineAnims = gSpriteAffineAnimTable_83F778C;
gSprites[spriteId].callback = StarterPokemonSpriteAnimCallback;
gTasks[taskId].data[TD_PKMN_SPRITE_ID] = spriteId;
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 97b099d65..13304fef9 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -6,9 +6,8 @@
.space 0x2E8
.include "src/link.o"
-
- .align 2
+ .align 2
gUnknown_020238C4: @ 20238C4
.space 0x1