summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2015-11-25 16:43:06 -0800
committerYamaArashi <shadow962@live.com>2015-11-25 16:43:06 -0800
commit5ce2d43498b04613fbad2fb8cfb150f52b2362bf (patch)
treeef1d0f454076e00b1140523a59f40a82bfff3909
parentf7a92b9a95945bf59748733ac3cf8096b5d1b125 (diff)
field effect graphics and scripts
-rw-r--r--asm/emerald.s592
-rw-r--r--asm/gpu_obj.s4
-rw-r--r--asm/string_util.s18
-rw-r--r--build.bat6
-rw-r--r--data/data1.s6
-rw-r--r--data/data2.s106
-rw-r--r--data/field_effect_scripts.s341
-rw-r--r--data/graphics/field_objects/field_effect_object_template_pointers.s40
-rw-r--r--data/graphics/field_objects/field_effect_objects.s1374
-rw-r--r--data/graphics/field_objects/field_object_graphics.s727
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_00.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_01.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_02.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_03.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_04.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_05.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_06.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_07.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_08.pal19
-rw-r--r--data/graphics/field_objects/palettes/field_effect_object_palette_10.pal19
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/0.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/1.pngbin0 -> 183 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/2.pngbin0 -> 183 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/3.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/4.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/5.pngbin0 -> 183 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/6.pngbin0 -> 184 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/arrow/7.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ash/0.pngbin0 -> 168 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ash/1.pngbin0 -> 191 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ash/2.pngbin0 -> 194 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ash/3.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ash/4.pngbin0 -> 163 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/0.pngbin0 -> 132 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/1.pngbin0 -> 141 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/2.pngbin0 -> 151 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/3.pngbin0 -> 153 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/4.pngbin0 -> 145 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/5.pngbin0 -> 134 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_big_splash/0.pngbin0 -> 192 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_big_splash/1.pngbin0 -> 193 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_big_splash/2.pngbin0 -> 193 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_big_splash/3.pngbin0 -> 169 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_small_splash/0.pngbin0 -> 167 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_small_splash/1.pngbin0 -> 176 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_small_splash/2.pngbin0 -> 152 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_tall_grass/0.pngbin0 -> 171 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_tall_grass/1.pngbin0 -> 169 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_tall_grass/2.pngbin0 -> 153 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_hop_tall_grass/3.pngbin0 -> 151 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_tire_tracks/0.pngbin0 -> 165 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_tire_tracks/1.pngbin0 -> 153 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_tire_tracks/2.pngbin0 -> 149 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bike_tire_tracks/3.pngbin0 -> 172 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bird.pngbin0 -> 288 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/0.pngbin0 -> 186 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/1.pngbin0 -> 207 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/2.pngbin0 -> 233 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/3.pngbin0 -> 235 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/4.pngbin0 -> 231 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/5.pngbin0 -> 205 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/6.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/bubbles/7.pngbin0 -> 160 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/deep_sand_footprints/0.pngbin0 -> 182 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/deep_sand_footprints/1.pngbin0 -> 174 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ground_impact_dust/0.pngbin0 -> 174 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ground_impact_dust/1.pngbin0 -> 165 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ground_impact_dust/2.pngbin0 -> 158 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/hot_springs_water.pngbin0 -> 150 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/jump_out_of_ash/0.pngbin0 -> 175 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/jump_out_of_ash/1.pngbin0 -> 191 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/jump_out_of_ash/2.pngbin0 -> 208 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/jump_out_of_ash/3.pngbin0 -> 196 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/jump_out_of_ash/4.pngbin0 -> 190 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/long_grass/0.pngbin0 -> 236 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/long_grass/1.pngbin0 -> 230 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/long_grass/2.pngbin0 -> 231 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/long_grass/3.pngbin0 -> 236 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/0.pngbin0 -> 221 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/1.pngbin0 -> 248 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/2.pngbin0 -> 241 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/3.pngbin0 -> 237 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/4.pngbin0 -> 217 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/5.pngbin0 -> 200 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/mountain_disguise/6.pngbin0 -> 164 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ripple/0.pngbin0 -> 161 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ripple/1.pngbin0 -> 171 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ripple/2.pngbin0 -> 166 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ripple/3.pngbin0 -> 176 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/ripple/4.pngbin0 -> 166 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/0.pngbin0 -> 210 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/1.pngbin0 -> 222 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/2.pngbin0 -> 212 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/3.pngbin0 -> 207 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/4.pngbin0 -> 194 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/5.pngbin0 -> 183 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_disguise_placeholder/6.pngbin0 -> 166 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_footprints/0.pngbin0 -> 172 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/sand_footprints/1.pngbin0 -> 159 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/shadow_extra_large.pngbin0 -> 165 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/shadow_large.pngbin0 -> 157 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/shadow_medium.pngbin0 -> 156 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/shadow_small.pngbin0 -> 156 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/short_grass/0.pngbin0 -> 159 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/short_grass/1.pngbin0 -> 156 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/splash/0.pngbin0 -> 160 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/splash/1.pngbin0 -> 163 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/surf_blob/0.pngbin0 -> 241 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/surf_blob/1.pngbin0 -> 244 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/surf_blob/2.pngbin0 -> 238 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tall_grass/0.pngbin0 -> 199 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tall_grass/1.pngbin0 -> 227 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tall_grass/2.pngbin0 -> 219 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tall_grass/3.pngbin0 -> 205 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tall_grass/4.pngbin0 -> 207 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/0.pngbin0 -> 270 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/1.pngbin0 -> 278 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/2.pngbin0 -> 248 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/3.pngbin0 -> 249 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/4.pngbin0 -> 227 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/5.pngbin0 -> 216 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/tree_disguise/6.pngbin0 -> 164 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_16/0.pngbin0 -> 244 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_16/1.pngbin0 -> 241 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_16/2.pngbin0 -> 246 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_16/3.pngbin0 -> 249 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_16/4.pngbin0 -> 250 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_16/5.pngbin0 -> 226 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/0.pngbin0 -> 251 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/1.pngbin0 -> 248 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/2.pngbin0 -> 250 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/3.pngbin0 -> 250 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/4.pngbin0 -> 242 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/5.pngbin0 -> 240 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/6.pngbin0 -> 240 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_17/7.pngbin0 -> 245 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_18/0.pngbin0 -> 244 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_18/1.pngbin0 -> 245 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_18/2.pngbin0 -> 245 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_18/3.pngbin0 -> 244 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_19/0.pngbin0 -> 186 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_19/1.pngbin0 -> 204 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_19/2.pngbin0 -> 211 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_19/3.pngbin0 -> 203 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_20/0.pngbin0 -> 154 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_20/1.pngbin0 -> 171 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_20/2.pngbin0 -> 197 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_20/3.pngbin0 -> 211 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_20/4.pngbin0 -> 206 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_29/0.pngbin0 -> 164 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_29/1.pngbin0 -> 176 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_29/2.pngbin0 -> 171 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_33/0.pngbin0 -> 185 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_33/1.pngbin0 -> 224 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_33/2.pngbin0 -> 232 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_33/3.pngbin0 -> 223 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_33/4.pngbin0 -> 214 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_35/0.pngbin0 -> 157 bytes
-rw-r--r--data/graphics/field_objects/pics/effects/unknown_35/1.pngbin0 -> 175 bytes
159 files changed, 3089 insertions, 315 deletions
diff --git a/asm/emerald.s b/asm/emerald.s
index a987c77e9..74e5c5630 100644
--- a/asm/emerald.s
+++ b/asm/emerald.s
@@ -9838,7 +9838,7 @@ sub_800E084: ; 800E084
movs r0, 0x84
lsls r0, 3
adds r3, r0
- ldr r0, =gUnknown_082EC690
+ ldr r0, =gDefaultOamAttributes
ldr r1, [r0]
ldr r2, [r0, 0x4]
str r1, [r3]
@@ -45574,7 +45574,7 @@ sub_80201A4: ; 80201A4
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
- bl StringCopy_LimitN_Multibyte
+ bl CopyString_LimitN_Multibyte
movs r0, 0
adds r1, r6, 0
movs r2, 0
@@ -242281,7 +242281,7 @@ sub_8086988: ; 8086988
movs r0, 0x1
bl npc_paltag_set_load
@080869BA:
- bl oe_active_list_clear
+ bl FieldEffectActiveListClear
bl sub_80AAFA4
bl sub_80AEE84
cmp r4, 0
@@ -253249,7 +253249,7 @@ get_on_surf_blob: ; 808B4D8
ldrb r0, [r0, 0x5]
str r0, [r1, 0x8]
movs r0, 0x8
- bl oe_exec
+ bl FieldEffectStart
lsls r0, 24
lsrs r0, 24
strb r0, [r4, 0x1A]
@@ -255266,7 +255266,7 @@ do_jump_landing_dust: ; 808C3C4
lsrs r0, 30
str r0, [r2, 0xC]
movs r0, 0xA
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0xD6
bl audio_play
ldrh r0, [r6, 0x8]
@@ -257281,7 +257281,7 @@ sub_808D450: ; 808D450
mov r5, r9
mov r4, r8
push {r4-r6}
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x54]
mov r9, r0
movs r1, 0
@@ -263118,7 +263118,7 @@ do_berry_tree_growth_sparkle_1: ; 808FE90
lsrs r0, 30
str r0, [r1, 0xC]
movs r0, 0x17
- bl oe_exec
+ bl FieldEffectStart
strb r7, [r6]
@0808FEF6:
movs r0, 0
@@ -263216,7 +263216,7 @@ do_berry_tree_growth_sparkle_2: ; 808FF68
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0x17
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0x1
pop {r4}
pop {r1}
@@ -268361,7 +268361,7 @@ do_ninja_boy_tree_disguise: ; 809253C
adds r0, r4, 0
bl npc_get_local_id_and_mapnumbers
movs r0, 0x1C
- bl oe_exec
+ bl FieldEffectStart
strb r0, [r4, 0x1A]
movs r0, 0x1
strb r0, [r6]
@@ -268425,7 +268425,7 @@ do_ninja_boy_mountain_disguise: ; 80925B8
adds r0, r4, 0
bl npc_get_local_id_and_mapnumbers
movs r0, 0x1D
- bl oe_exec
+ bl FieldEffectStart
strb r0, [r4, 0x1A]
movs r0, 0x1
strb r0, [r6]
@@ -275181,7 +275181,7 @@ do_exclamation_mark_bubble_1: ; 80954DC
adds r3, 0x8
bl npc_get_local_id_and_mapnumbers
movs r0, 0
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
@@ -275201,7 +275201,7 @@ do_exclamation_mark_bubble_2: ; 8095500
adds r3, 0x8
bl npc_get_local_id_and_mapnumbers
movs r0, 0x21
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
@@ -275221,7 +275221,7 @@ do_heart_bubble: ; 8095524
adds r3, 0x8
bl npc_get_local_id_and_mapnumbers
movs r0, 0x2E
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0x1
strh r0, [r4, 0x32]
pop {r4}
@@ -278840,7 +278840,7 @@ dp03_step_grass_normal: ; 8096E90
movs r0, 0x1
str r0, [r3, 0x1C]
movs r0, 0x4
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -278879,7 +278879,7 @@ dp03_step_grass_elastic: ; 8096EDC
movs r0, 0
str r0, [r3, 0x1C]
movs r0, 0x4
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -278918,7 +278918,7 @@ dp03_step_grass_tall_1: ; 8096F28
movs r0, 0x1
str r0, [r3, 0x1C]
movs r0, 0x11
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -278957,7 +278957,7 @@ dp03_step_grass_tall_0: ; 8096F74
movs r0, 0
str r0, [r3, 0x1C]
movs r0, 0x11
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -279073,7 +279073,7 @@ do_sand_step_footprint_effect: ; 8097044
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
- bl oe_exec
+ bl FieldEffectStart
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -279115,7 +279115,7 @@ do_sand_step_bike_tire_tracks_effect: ; 8097094
ldrb r0, [r1]
str r0, [r2, 0x10]
movs r0, 0x23
- bl oe_exec
+ bl FieldEffectStart
@080970D6:
pop {r4}
pop {r0}
@@ -279171,7 +279171,7 @@ dp03_step_grass_thin: ; 8097110
movs r0, 0x2
str r0, [r1, 0xC]
movs r0, 0xC
- bl oe_exec
+ bl FieldEffectStart
ldrb r0, [r5, 0x8]
ldrb r1, [r5, 0x9]
ldrb r2, [r5, 0xA]
@@ -279213,7 +279213,7 @@ dp03_step_grass_heavy: ; 8097168
movs r0, 0x2
str r0, [r2, 0xC]
movs r0, 0x12
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -279238,7 +279238,7 @@ dp03_step_bike_splash_probably: ; 8097190
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0x10
- bl oe_exec
+ bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
@@ -279264,7 +279264,7 @@ dp03_step_drop_water: ; 80971C0
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0xE
- bl oe_exec
+ bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
@@ -279290,7 +279290,7 @@ dp03_step_dust: ; 80971F0
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0xA
- bl oe_exec
+ bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
@@ -279329,7 +279329,7 @@ dp03_step_bubbles: ; 8097240
ldrsh r0, [r0, r1]
str r0, [r2, 0x4]
movs r0, 0x35
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -280974,7 +280974,7 @@ oe_exec_and_other_stuff: ; 8097DD0
adds r3, 0x8
bl npc_get_local_id_and_mapnumbers
adds r0, r4, 0
- bl oe_exec
+ bl FieldEffectStart
pop {r4}
pop {r1}
bx r1
@@ -281023,7 +281023,7 @@ do_puddle_step_effect: ; 8097E14
movs r0, 0x3
str r0, [r2, 0xC]
movs r0, 0x5
- bl oe_exec
+ bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
@@ -288776,7 +288776,7 @@ s9C_execute_HM: ; 809B7CC
strh r0, [r1]
lsls r0, 24
lsrs r0, 24
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0
pop {r1}
bx r1
@@ -288814,7 +288814,7 @@ sub_809B824: ; 809B824
push {lr}
ldr r0, =0x020375d0
ldrb r0, [r0]
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
beq @0809B83C
@@ -304061,6 +304061,7 @@ sub_80A303C: ; 80A303C
thumb_func_end sub_80A303C
thumb_func_start pause_music_for_sound_maybe
+; void pause_music_for_sound_maybe(u8 a1)
pause_music_for_sound_maybe: ; 80A3060
push {r4,lr}
adds r4, r0, 0
@@ -304132,6 +304133,7 @@ sub_80A30CC: ; 80A30CC
thumb_func_end sub_80A30CC
thumb_func_start fanfare_play
+; void fanfare_play(u16 a1)
fanfare_play: ; 80A30E4
push {lr}
lsls r0, 16
@@ -304210,6 +304212,7 @@ task50_overworld_fanfare: ; 80A3140
thumb_func_end task50_overworld_fanfare
thumb_func_start task_add_50_overworld_fanfare_if_not_running
+; void task_add_50_overworld_fanfare_if_not_running()
task_add_50_overworld_fanfare_if_not_running: ; 80A3170
push {r4,lr}
ldr r4, =task50_overworld_fanfare
@@ -321359,6 +321362,7 @@ sub_80ABDFC: ; 80ABDFC
thumb_func_end sub_80ABDFC
thumb_func_start sub_80ABE18
+; void sub_80ABE18(u8 a1)
sub_80ABE18: ; 80ABE18
push {r4-r6,lr}
lsls r0, 24
@@ -337704,7 +337708,7 @@ sub_80B417C: ; 80B417C
adds r0, r4, 0
bl npc_get_local_id_and_mapnumbers
movs r0, 0
- bl oe_exec
+ bl FieldEffectStart
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
@@ -337731,7 +337735,7 @@ sub_80B41C0: ; 80B41C0
adds r4, r1, 0
adds r5, r2, 0
movs r0, 0
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
beq @080B41D6
@@ -338036,7 +338040,7 @@ sub_80B43E0: ; 80B43E0
movs r0, 0x2
str r0, [r2, 0xC]
movs r0, 0x31
- bl oe_exec
+ bl FieldEffectStart
strh r0, [r5, 0x10]
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -338115,7 +338119,7 @@ sub_80B44AC: ; 80B44AC
push {r4,lr}
adds r4, r1, 0
movs r0, 0x31
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B44C0
@@ -338169,7 +338173,7 @@ sub_80B44C8: ; 80B44C8
cmp r0, 0x3
bne @080B4564
movs r0, 0x31
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B4564
@@ -338458,7 +338462,7 @@ objc_exclamation_mark_probably: ; 80B4724
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl oe_stop
+ bl FieldEffectStop
b @080B47B2
@080B4764:
ldr r2, =0x02037350
@@ -341014,16 +341018,17 @@ ApplyCleanseTagWildEncounterRateReduction: ; 80B5AF0
.pool
thumb_func_end ApplyCleanseTagWildEncounterRateReduction
- thumb_func_start oe_exec
-oe_exec: ; 80B5B18
+ thumb_func_start FieldEffectStart
+; u8 FieldEffectStart(u8 id)
+FieldEffectStart: ; 80B5B18
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
- bl oe_active_list_add
- ldr r0, =gUnknown_082DB9D4
+ bl FieldEffectActiveListAdd
+ ldr r0, =gFieldEffectScriptPointers
lsls r4, 2
adds r4, r0
ldr r0, [r4]
@@ -341049,64 +341054,70 @@ oe_exec: ; 80B5B18
bx r1
.align 2, 0
.pool
- thumb_func_end oe_exec
+ thumb_func_end FieldEffectStart
- thumb_func_start oec00_load_gfx
-oec00_load_gfx: ; 80B5B60
+ thumb_func_start FieldEffectCmd00_loadtiles
+; BOOL FieldEffectCmd00_loadtiles(u8 **script, u8 *returnValue)
+FieldEffectCmd00_loadtiles: ; 80B5B60
push {lr}
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
- bl oec00_load_gfx_impl
+ bl FieldEffectScript_LoadTiles
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end oec00_load_gfx
+ thumb_func_end FieldEffectCmd00_loadtiles
- thumb_func_start sub_80B5B74
-sub_80B5B74: ; 80B5B74
+ thumb_func_start FieldEffectCmd01_loadfadedpal
+; BOOL FieldEffectCmd01_loadfadedpal(u8 **script, u8 *returnValue)
+FieldEffectCmd01_loadfadedpal: ; 80B5B74
push {lr}
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
- bl sub_80B5C6C
+ bl FieldEffectScript_LoadFadedPalette
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_80B5B74
+ thumb_func_end FieldEffectCmd01_loadfadedpal
- thumb_func_start sub_80B5B88
-sub_80B5B88: ; 80B5B88
+ thumb_func_start FieldEffectCmd02_loadpal
+; BOOL FieldEffectCmd02_loadpal(u8 **script, u8 *returnValue)
+FieldEffectCmd02_loadpal: ; 80B5B88
push {lr}
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
- bl sub_80B5C94
+ bl FieldEffectScript_LoadPalette
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_80B5B88
+ thumb_func_end FieldEffectCmd02_loadpal
- thumb_func_start sub_80B5B9C
-sub_80B5B9C: ; 80B5B9C
+ thumb_func_start FieldEffectCmd03_callnative
+; BOOL FieldEffectCmd03_callnative(u8 **script, u8 *returnValue)
+FieldEffectCmd03_callnative: ; 80B5B9C
push {lr}
ldr r2, [r0]
adds r2, 0x1
str r2, [r0]
- bl oec03_call_asm_impl
+ bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r1}
bx r1
- thumb_func_end sub_80B5B9C
+ thumb_func_end FieldEffectCmd03_callnative
- thumb_func_start sub_80B5BB0
-sub_80B5BB0: ; 80B5BB0
+ thumb_func_start FieldEffectCmd04_end
+; BOOL FieldEffectCmd04_end(u8 **script, u8 *returnValue)
+FieldEffectCmd04_end: ; 80B5BB0
movs r0, 0
bx lr
- thumb_func_end sub_80B5BB0
+ thumb_func_end FieldEffectCmd04_end
- thumb_func_start sub_80B5BB4
-sub_80B5BB4: ; 80B5BB4
+ thumb_func_start FieldEffectCmd05_loadgfx_callnative
+; BOOL FieldEffectCmd05_loadgfx_callnative(u8 **script, u8 *returnValue)
+FieldEffectCmd05_loadgfx_callnative: ; 80B5BB4
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -341114,20 +341125,21 @@ sub_80B5BB4: ; 80B5BB4
adds r0, 0x1
str r0, [r4]
adds r0, r4, 0
- bl oec00_load_gfx_impl
+ bl FieldEffectScript_LoadTiles
adds r0, r4, 0
- bl sub_80B5C6C
+ bl FieldEffectScript_LoadFadedPalette
adds r0, r4, 0
adds r1, r5, 0
- bl oec03_call_asm_impl
+ bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80B5BB4
+ thumb_func_end FieldEffectCmd05_loadgfx_callnative
- thumb_func_start sub_80B5BDC
-sub_80B5BDC: ; 80B5BDC
+ thumb_func_start FieldEffectCmd06_loadtiles_callnative
+; BOOL FieldEffectCmd06_loadtiles_callnative(u8 **script, u8 *returnValue)
+FieldEffectCmd06_loadtiles_callnative: ; 80B5BDC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -341135,18 +341147,19 @@ sub_80B5BDC: ; 80B5BDC
adds r0, 0x1
str r0, [r4]
adds r0, r4, 0
- bl oec00_load_gfx_impl
+ bl FieldEffectScript_LoadTiles
adds r0, r4, 0
adds r1, r5, 0
- bl oec03_call_asm_impl
+ bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80B5BDC
+ thumb_func_end FieldEffectCmd06_loadtiles_callnative
- thumb_func_start sub_80B5C00
-sub_80B5C00: ; 80B5C00
+ thumb_func_start FieldEffectCmd07_loadfadedpal_callnative
+; BOOL FieldEffectCmd07_loadfadedpal_callnative(u8 **script, u8 *returnValue)
+FieldEffectCmd07_loadfadedpal_callnative: ; 80B5C00
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
@@ -341154,18 +341167,19 @@ sub_80B5C00: ; 80B5C00
adds r0, 0x1
str r0, [r4]
adds r0, r4, 0
- bl sub_80B5C6C
+ bl FieldEffectScript_LoadFadedPalette
adds r0, r4, 0
adds r1, r5, 0
- bl oec03_call_asm_impl
+ bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80B5C00
+ thumb_func_end FieldEffectCmd07_loadfadedpal_callnative
- thumb_func_start oe_read_word
-oe_read_word: ; 80B5C24
+ thumb_func_start FieldEffectScript_ReadWord
+; u32 FieldEffectScript_ReadWord(u8 **script)
+FieldEffectScript_ReadWord: ; 80B5C24
ldr r2, [r0]
ldrb r0, [r2]
ldrb r1, [r2, 0x1]
@@ -341178,13 +341192,14 @@ oe_read_word: ; 80B5C24
lsls r1, 24
adds r0, r1
bx lr
- thumb_func_end oe_read_word
+ thumb_func_end FieldEffectScript_ReadWord
- thumb_func_start oec00_load_gfx_impl
-oec00_load_gfx_impl: ; 80B5C3C
+ thumb_func_start FieldEffectScript_LoadTiles
+; void FieldEffectScript_LoadTiles(u8 **script)
+FieldEffectScript_LoadTiles: ; 80B5C3C
push {r4,r5,lr}
adds r4, r0, 0
- bl oe_read_word
+ bl FieldEffectScript_ReadWord
adds r5, r0, 0
ldrh r0, [r5, 0x6]
bl gpu_tile_obj_tag_get_range_start
@@ -341203,13 +341218,14 @@ oec00_load_gfx_impl: ; 80B5C3C
bx r0
.align 2, 0
.pool
- thumb_func_end oec00_load_gfx_impl
+ thumb_func_end FieldEffectScript_LoadTiles
- thumb_func_start sub_80B5C6C
-sub_80B5C6C: ; 80B5C6C
+ thumb_func_start FieldEffectScript_LoadFadedPalette
+; void FieldEffectScript_LoadFadedPalette(u8 **script)
+FieldEffectScript_LoadFadedPalette: ; 80B5C6C
push {r4,r5,lr}
adds r5, r0, 0
- bl oe_read_word
+ bl FieldEffectScript_ReadWord
adds r4, r0, 0
bl gpu_pal_obj_alloc_tag_and_apply
ldrh r0, [r4, 0x4]
@@ -341223,13 +341239,14 @@ sub_80B5C6C: ; 80B5C6C
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_80B5C6C
+ thumb_func_end FieldEffectScript_LoadFadedPalette
- thumb_func_start sub_80B5C94
-sub_80B5C94: ; 80B5C94
+ thumb_func_start FieldEffectScript_LoadPalette
+; void FieldEffectScript_LoadPalette(u8 **script)
+FieldEffectScript_LoadPalette: ; 80B5C94
push {r4,lr}
adds r4, r0, 0
- bl oe_read_word
+ bl FieldEffectScript_ReadWord
bl gpu_pal_obj_alloc_tag_and_apply
ldr r0, [r4]
adds r0, 0x4
@@ -341237,14 +341254,15 @@ sub_80B5C94: ; 80B5C94
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80B5C94
+ thumb_func_end FieldEffectScript_LoadPalette
- thumb_func_start oec03_call_asm_impl
-oec03_call_asm_impl: ; 80B5CAC
+ thumb_func_start FieldEffectScript_CallNative
+; void FieldEffectScript_CallNative(u8 **script, u8 *returnValue)
+FieldEffectScript_CallNative: ; 80B5CAC
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl oe_read_word
+ bl FieldEffectScript_ReadWord
bl _call_via_r0
str r0, [r5]
ldr r0, [r4]
@@ -341253,10 +341271,11 @@ oec03_call_asm_impl: ; 80B5CAC
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end oec03_call_asm_impl
+ thumb_func_end FieldEffectScript_CallNative
- thumb_func_start oe_stop_
-oe_stop_: ; 80B5CC8
+ thumb_func_start FieldEffectFreeGraphicsResources
+; void FieldEffectFreeGraphicsResources(struct obj *object)
+FieldEffectFreeGraphicsResources: ; 80B5CC8
push {r4,r5,lr}
adds r1, r0, 0
adds r1, 0x40
@@ -341265,29 +341284,31 @@ oe_stop_: ; 80B5CC8
lsrs r4, 4
bl obj_delete_and_free_tiles
adds r0, r5, 0
- bl gpu_tile_obj_free_by_ado_when_unused_maybe
+ bl FieldEffectFreeTilesIfUnused
adds r0, r4, 0
- bl gpu_pal_free_by_index_when_unused
+ bl FieldEffectFreePaletteIfUnused
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end oe_stop_
+ thumb_func_end FieldEffectFreeGraphicsResources
- thumb_func_start oe_stop
-oe_stop: ; 80B5CEC
+ thumb_func_start FieldEffectStop
+; void FieldEffectStop(struct obj *object, u8 id)
+FieldEffectStop: ; 80B5CEC
push {r4,lr}
lsls r4, r1, 24
lsrs r4, 24
- bl oe_stop_
+ bl FieldEffectFreeGraphicsResources
adds r0, r4, 0
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
pop {r4}
pop {r0}
bx r0
- thumb_func_end oe_stop
+ thumb_func_end FieldEffectStop
- thumb_func_start gpu_tile_obj_free_by_ado_when_unused_maybe
-gpu_tile_obj_free_by_ado_when_unused_maybe: ; 80B5D04
+ thumb_func_start FieldEffectFreeTilesIfUnused
+; void FieldEffectFreeTilesIfUnused(u16 tileRangeStart)
+FieldEffectFreeTilesIfUnused: ; 80B5D04
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -341336,10 +341357,11 @@ gpu_tile_obj_free_by_ado_when_unused_maybe: ; 80B5D04
bx r0
.align 2, 0
.pool
- thumb_func_end gpu_tile_obj_free_by_ado_when_unused_maybe
+ thumb_func_end FieldEffectFreeTilesIfUnused
- thumb_func_start gpu_pal_free_by_index_when_unused
-gpu_pal_free_by_index_when_unused: ; 80B5D68
+ thumb_func_start FieldEffectFreePaletteIfUnused
+; void FieldEffectFreePaletteIfUnused(u8 paletteSlot)
+FieldEffectFreePaletteIfUnused: ; 80B5D68
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -341382,10 +341404,11 @@ gpu_pal_free_by_index_when_unused: ; 80B5D68
bx r0
.align 2, 0
.pool
- thumb_func_end gpu_pal_free_by_index_when_unused
+ thumb_func_end FieldEffectFreePaletteIfUnused
- thumb_func_start oe_active_list_clear
-oe_active_list_clear: ; 80B5DC0
+ thumb_func_start FieldEffectActiveListClear
+; void FieldEffectActiveListClear()
+FieldEffectActiveListClear: ; 80B5DC0
push {r4,lr}
movs r2, 0
ldr r4, =0x03000f58
@@ -341405,10 +341428,11 @@ oe_active_list_clear: ; 80B5DC0
bx r0
.align 2, 0
.pool
- thumb_func_end oe_active_list_clear
+ thumb_func_end FieldEffectActiveListClear
- thumb_func_start oe_active_list_add
-oe_active_list_add: ; 80B5DE4
+ thumb_func_start FieldEffectActiveListAdd
+; void FieldEffectActiveListAdd(u8 id)
+FieldEffectActiveListAdd: ; 80B5DE4
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -341433,10 +341457,11 @@ oe_active_list_add: ; 80B5DE4
pop {r4}
pop {r0}
bx r0
- thumb_func_end oe_active_list_add
+ thumb_func_end FieldEffectActiveListAdd
- thumb_func_start oe_active_list_remove
-oe_active_list_remove: ; 80B5E10
+ thumb_func_start FieldEffectActiveListRemove
+; void FieldEffectActiveListRemove(u8 id)
+FieldEffectActiveListRemove: ; 80B5E10
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
@@ -341463,10 +341488,11 @@ oe_active_list_remove: ; 80B5E10
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end oe_active_list_remove
+ thumb_func_end FieldEffectActiveListRemove
- thumb_func_start oe_active_list_contains
-oe_active_list_contains: ; 80B5E40
+ thumb_func_start FieldEffectActiveListContains
+; void FieldEffectActiveListContains(u8 id)
+FieldEffectActiveListContains: ; 80B5E40
push {lr}
lsls r0, 24
lsrs r2, r0, 24
@@ -341491,7 +341517,7 @@ oe_active_list_contains: ; 80B5E40
@080B5E68:
pop {r1}
bx r1
- thumb_func_end oe_active_list_contains
+ thumb_func_end FieldEffectActiveListContains
thumb_func_start sub_80B5E6C
sub_80B5E6C: ; 80B5E6C
@@ -342062,7 +342088,7 @@ sub_80B62B4: ; 80B62B4
adds r0, r1, 0
bl obj_delete_and_free_tiles
movs r0, 0x19
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B61E4
bl get_task_id_by_function
lsls r0, 24
@@ -342254,7 +342280,7 @@ sub_80B642C: ; 80B642C
adds r0, r1, 0
bl obj_delete_and_free_tiles
movs r0, 0x3E
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B6330
bl get_task_id_by_function
lsls r0, 24
@@ -342754,7 +342780,7 @@ sub_80B6828: ; 80B6828
cmp r0, 0x4
ble @080B6848
adds r0, r3, 0
- bl oe_stop_
+ bl FieldEffectFreeGraphicsResources
@080B6848:
pop {r0}
bx r0
@@ -342834,7 +342860,7 @@ sub_80B68AC: ; 80B68AC
cmp r0, 0
beq @080B68E4
adds r0, r4, 0
- bl oe_stop_
+ bl FieldEffectFreeGraphicsResources
@080B68E4:
pop {r4}
pop {r0}
@@ -342955,7 +342981,7 @@ sub_80B6970: ; 80B6970
cmp r0, 0x7F
ble @080B69D4
adds r0, r3, 0
- bl oe_stop_
+ bl FieldEffectFreeGraphicsResources
@080B69D4:
pop {r0}
bx r0
@@ -343023,13 +343049,13 @@ task00_8084310: ; 80B6A24
str r6, [r1]
@080B6A58:
movs r0, 0x1F
- bl oe_exec
+ bl FieldEffectStart
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@080B6A64:
movs r0, 0x1F
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B6A8A
@@ -343116,13 +343142,13 @@ c3_080843F8: ; 80B6B0C
cmp r0, 0
bne @080B6B58
movs r0, 0x20
- bl oe_exec
+ bl FieldEffectStart
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@080B6B3E:
movs r0, 0x20
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B6B58
@@ -344244,7 +344270,7 @@ waterfall_1_do_anim_probably: ; 80B73F0
ldrsh r0, [r4, r2]
str r0, [r1]
movs r0, 0x3B
- bl oe_exec
+ bl FieldEffectStart
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -344262,7 +344288,7 @@ waterfall_2_wait_anim_finish_probably: ; 80B742C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x6
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B7446
@@ -344328,7 +344354,7 @@ sub_80B7478: ; 80B7478
lsrs r0, 24
bl remove_task
movs r0, 0x2B
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0
b @080B74CA
.align 2, 0
@@ -344424,7 +344450,7 @@ dive_2_unknown: ; 80B7558
ldrsh r0, [r4, r2]
str r0, [r1]
movs r0, 0x3B
- bl oe_exec
+ bl FieldEffectStart
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -344445,7 +344471,7 @@ dive_3_unknown: ; 80B7580
mov r0, sp
bl player_get_pos_to
movs r0, 0x6
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B75C4
@@ -344465,7 +344491,7 @@ dive_3_unknown: ; 80B7580
lsrs r0, 24
bl remove_task
movs r0, 0x2C
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
@080B75C4:
movs r0, 0
add sp, 0x8
@@ -344614,7 +344640,7 @@ sub_80B76B8: ; 80B76B8
lsrs r0, 30
str r0, [r3, 0xC]
movs r0, 0x32
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0xB2
bl audio_play
ldrh r0, [r4, 0x8]
@@ -344919,7 +344945,7 @@ sub_80B791C: ; 80B791C
lsrs r0, 30
str r0, [r1, 0xC]
movs r0, 0x31
- bl oe_exec
+ bl FieldEffectStart
strh r0, [r4, 0xA]
ldrh r0, [r4, 0x8]
adds r0, 0x1
@@ -345011,7 +345037,7 @@ sub_80B79F4: ; 80B79F4
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
adds r0, 0x84
ldr r0, [r0]
movs r2, 0
@@ -345061,7 +345087,7 @@ sub_80B7A58: ; 80B7A58
beq @080B7A70
adds r0, r2, 0
movs r1, 0x32
- bl oe_stop
+ bl FieldEffectStop
@080B7A70:
pop {r0}
bx r0
@@ -345181,7 +345207,7 @@ sub_80B7B18: ; 80B7B18
lsrs r0, 30
str r0, [r1, 0xC]
movs r0, 0x31
- bl oe_exec
+ bl FieldEffectStart
strh r0, [r5, 0xA]
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -345247,7 +345273,7 @@ sub_80B7BCC: ; 80B7BCC
push {r4,lr}
adds r4, r0, 0
movs r0, 0x31
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B7BEA
@@ -345305,7 +345331,7 @@ sub_80B7C48: ; 80B7C48
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
adds r0, 0x80
ldr r0, [r0]
movs r2, 0
@@ -345355,7 +345381,7 @@ sub_80B7CAC: ; 80B7CAC
beq @080B7CC4
adds r0, r2, 0
movs r1, 0x31
- bl oe_stop
+ bl FieldEffectStop
@080B7CC4:
pop {r0}
bx r0
@@ -346376,9 +346402,9 @@ sub_80B84F8: ; 80B84F8
orrs r0, r6
str r0, [r5]
movs r0, 0x6
- bl oe_exec
+ bl FieldEffectStart
movs r0, 0x3B
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0
pop {r4-r6}
pop {r1}
@@ -346714,7 +346740,7 @@ overworld_bg_setup_2: ; 80B87B8
lsrs r1, 24
bl sub_80B6070
movs r0, 0x6
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B8554
bl get_task_id_by_function
lsls r0, 24
@@ -347053,7 +347079,7 @@ sub_80B8A64: ; 80B8A64
lsrs r1, 24
bl sub_80B6070
movs r0, 0x6
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B88B4
bl get_task_id_by_function
lsls r0, 24
@@ -347552,7 +347578,7 @@ sub_80B8E60: ; 80B8E60
orrs r0, r1
str r0, [r2]
movs r0, 0x3B
- bl oe_exec
+ bl FieldEffectStart
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -347569,7 +347595,7 @@ sub_80B8EA8: ; 80B8EA8
push {r4-r6,lr}
adds r6, r0, 0
movs r0, 0x6
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B8F12
@@ -347607,7 +347633,7 @@ sub_80B8EA8: ; 80B8EA8
ldrb r0, [r5, 0x5]
str r0, [r1, 0x8]
movs r0, 0x8
- bl oe_exec
+ bl FieldEffectStart
strb r0, [r4, 0x1A]
ldrh r0, [r6, 0x8]
adds r0, 0x1
@@ -347655,7 +347681,7 @@ sub_80B8F24: ; 80B8F24
bl sub_809757C
bl script_env_2_disable
movs r0, 0x9
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B8D84
bl get_task_id_by_function
lsls r0, 24
@@ -347674,7 +347700,7 @@ sub_80B8F98: ; 80B8F98
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
adds r0, 0x90
ldr r0, [r0]
movs r2, 0x18
@@ -347806,7 +347832,7 @@ sub_80B8F98: ; 80B8F98
thumb_func_start sub_80B90CC
sub_80B90CC: ; 80B90CC
push {r4,lr}
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x68]
movs r1, 0x78
movs r2, 0
@@ -347900,7 +347926,7 @@ sub_80B9128: ; 80B9128
ble @080B919A
adds r0, r4, 0
movs r1, 0x1E
- bl oe_stop
+ bl FieldEffectStop
@080B919A:
pop {r4,r5}
pop {r0}
@@ -348021,7 +348047,7 @@ sub_80B925C: ; 80B925C
ldrsh r0, [r4, r2]
str r0, [r1]
movs r0, 0x3B
- bl oe_exec
+ bl FieldEffectStart
@080B928C:
pop {r4}
pop {r0}
@@ -348035,7 +348061,7 @@ sub_80B92A0: ; 80B92A0
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x6
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080B92E8
@@ -348287,7 +348313,7 @@ sub_80B9494: ; 80B9494
cmp r0, 0
bne @080B94B6
movs r0, 0x1F
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B91D4
bl get_task_id_by_function
lsls r0, 24
@@ -348303,7 +348329,7 @@ sub_80B9494: ; 80B9494
thumb_func_start sub_80B94C4
sub_80B94C4: ; 80B94C4
push {lr}
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x68]
movs r1, 0xFF
movs r2, 0xB4
@@ -349060,7 +349086,7 @@ fishE: ; 80B9A60
movs r0, 0
strb r0, [r6, 0x6]
movs r0, 0x20
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r0, =sub_80B97D4
bl get_task_id_by_function
lsls r0, 24
@@ -349111,7 +349137,7 @@ sub_80B9ADC: ; 80B9ADC
.pool
@080B9B2C:
movs r0, 0x41
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
@080B9B32:
movs r0, 0
add sp, 0x4
@@ -349352,7 +349378,7 @@ sub_80B9CDC: ; 80B9CDC
ldrb r2, [r4, 0x10]
bl npc_hide_by_local_id_and_map
movs r0, 0x41
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
adds r0, r5, 0
bl remove_task
@080B9D16:
@@ -349686,7 +349712,7 @@ sub_80B9EDC: ; 80B9EDC
orrs r0, r1
strb r0, [r4]
movs r0, 0x42
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
adds r0, r7, 0
bl remove_task
@080B9FAC:
@@ -399527,7 +399553,7 @@ sub_80D3718: ; 80D3718
hm2_ruin_valley: ; 80D3A50
push {lr}
movs r0, 0x1
- bl oe_exec
+ bl FieldEffectStart
bl brm_get_pokemon_selection
ldr r1, =0x02038c08
lsls r0, 24
@@ -399607,9 +399633,9 @@ sub_80D3ABC: ; 80D3ABC
sub_80D3AEC: ; 80D3AEC
push {lr}
movs r0, 0x1
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0x3A
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
thumb_func_end sub_80D3AEC
@@ -400486,7 +400512,7 @@ sub_80D41D0: ; 80D41D0
lsls r0, 2
adds r0, r5
movs r1, 0x3A
- bl oe_stop
+ bl FieldEffectStop
ldr r0, [r6]
bl free
movs r0, 0
@@ -400661,7 +400687,7 @@ sub_80D4354: ; 80D4354
movs r0, 0x80
bl audio_play
movs r0, 0x2
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -445151,7 +445177,7 @@ sub_80EA3E4: ; 80EA3E4
.pool
@080EA810:
ldrb r0, [r5, 0x8]
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @080EA820
@@ -474119,9 +474145,9 @@ oei_sweet_scent: ; 80FA0FC
sub_80FA128: ; 80FA128
push {lr}
movs r0, 0xB
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0x37
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
thumb_func_end sub_80FA128
@@ -474211,7 +474237,7 @@ sub_80FA1A8: ; 80FA1A8
sub_80FA1D8: ; 80FA1D8
push {lr}
movs r1, 0x37
- bl oe_stop
+ bl FieldEffectStop
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -474259,9 +474285,9 @@ sub_80FA208: ; 80FA208
sub_80FA234: ; 80FA234
push {lr}
movs r0, 0x1A
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0x38
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
thumb_func_end sub_80FA234
@@ -474389,7 +474415,7 @@ sub_80FA304: ; 80FA304
sub_80FA33C: ; 80FA33C
push {lr}
movs r1, 0x38
- bl oe_stop
+ bl FieldEffectStop
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -474437,9 +474463,9 @@ sub_80FA36C: ; 80FA36C
sub_80FA398: ; 80FA398
push {lr}
movs r0, 0x1B
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0x39
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
thumb_func_end sub_80FA398
@@ -474529,7 +474555,7 @@ sub_80FA418: ; 80FA418
sub_80FA448: ; 80FA448
push {lr}
movs r1, 0x39
- bl oe_stop
+ bl FieldEffectStop
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -474649,7 +474675,7 @@ sub_80FA4A0: ; 80FA4A0
ldrsh r1, [r4, r2]
bl cur_mapdata_draw_block_at
movs r0, 0x3D
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl script_env_2_enable_and_set_ctx_running
adds r0, r5, 0
bl remove_task
@@ -475210,7 +475236,7 @@ sub_80FA9D0: ; 80FA9D0
movs r2, 0x8
movs r3, 0x4
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x58]
mov r1, sp
movs r2, 0
@@ -475484,7 +475510,7 @@ sub_80FAC24: ; 80FAC24
sub_80FAC68: ; 80FAC68
push {lr}
movs r1, 0x34
- bl oe_stop
+ bl FieldEffectStop
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -594110,7 +594136,7 @@ task08_080C9820: ; 813549C
cmp r0, 0x5
bne @08135504
movs r0, 0x3B
- bl oe_exec
+ bl FieldEffectStart
ldr r0, =0x03005e00
lsls r1, r5, 2
adds r1, r5
@@ -594159,7 +594185,7 @@ sub_813552C: ; 813552C
cmp r0, 0x1
bne @08135560
movs r0, 0x3B
- bl oe_exec
+ bl FieldEffectStart
ldr r0, =0x03005e00
lsls r1, r4, 2
adds r1, r4
@@ -594181,7 +594207,7 @@ sub_8135578: ; 8135578
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x6
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
@@ -594233,7 +594259,7 @@ sub_8135578: ; 8135578
ldrb r1, [r6, 0x8]
bl obj_anim_image_start
movs r0, 0x6
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
ldr r1, =0x03005e00
lsls r0, r7, 2
adds r0, r7
@@ -594369,7 +594395,7 @@ sub_8135714: ; 8135714
movs r0, 0x83
bl audio_play
movs r0, 0x25
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -594405,7 +594431,7 @@ hm2_dig: ; 8135760
push {lr}
bl flagmods_08054D70
movs r0, 0x26
- bl oe_exec
+ bl FieldEffectStart
bl brm_get_pokemon_selection
ldr r1, =0x02038c08
lsls r0, 24
@@ -594450,7 +594476,7 @@ sub_8135780: ; 8135780
sub_81357BC: ; 81357BC
push {r4,lr}
movs r0, 0x26
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl sub_81795E8
lsls r0, 24
lsrs r4, r0, 24
@@ -605476,7 +605502,7 @@ sub_813B0B4: ; 813B0B4
@0813B13A:
str r0, [r3, 0x14]
movs r0, 0x42
- bl oe_exec
+ bl FieldEffectStart
ldr r0, =gUnknown_085B33E0
adds r1, r5, r0
ldrb r1, [r1]
@@ -605499,7 +605525,7 @@ sub_813B160: ; 813B160
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x42
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @0813B17C
@@ -607325,7 +607351,7 @@ sub_813C008: ; 813C008
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x7
- bl StringCompare_LimitN
+ bl CompareString_LimitN
cmp r0, 0
bne @0813C02C
ldrh r0, [r4, 0x8]
@@ -625970,7 +625996,7 @@ sub_8145E2C: ; 8145E2C
sub_8145E74: ; 8145E74
push {lr}
movs r0, 0x28
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl script_env_2_enable_and_set_ctx_running
pop {r0}
bx r0
@@ -627186,7 +627212,7 @@ sub_8146800: ; 8146800
movs r2, 0xB0
lsls r2, 2
bl CpuSet
- ldr r0, =gUnknown_085C8ED4
+ ldr r0, =gFieldEffectObjectPalette10
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
@@ -628146,7 +628172,7 @@ sub_8146FCC: ; 8146FCC
ldr r2, =0x05000200
mov r0, sp
bl CpuSet
- ldr r0, =gUnknown_085C8ED4
+ ldr r0, =gFieldEffectObjectPalette10
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
@@ -628204,7 +628230,7 @@ sub_8147018: ; 8147018
ldrsh r0, [r0, r1]
str r0, [r6, 0xC]
movs r0, 0x2D
- bl oe_exec
+ bl FieldEffectStart
adds r4, 0x1
lsls r4, 16
movs r0, 0x1
@@ -628233,7 +628259,7 @@ sub_8147018: ; 8147018
sub_81470A4: ; 81470A4
push {lr}
movs r0, 0x2D
- bl oe_active_list_contains
+ bl FieldEffectActiveListContains
lsls r0, 24
cmp r0, 0
bne @081470C4
@@ -628392,7 +628418,7 @@ sub_814713C: ; 814713C
bls @081471F2
adds r0, r4, 0
movs r1, 0x2D
- bl oe_stop
+ bl FieldEffectStop
@081471F2:
add sp, 0x4
pop {r4-r6}
@@ -631983,7 +632009,7 @@ sub_8148E8C: ; 8148E8C
ldr r2, =0x01000400
mov r0, sp
bl CpuSet
- ldr r0, =gUnknown_085C8ED4
+ ldr r0, =gFieldEffectObjectPalette10
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
@@ -633344,7 +633370,7 @@ sub_8149994: ; 8149994
ldr r2, =0x01000400
mov r0, sp
bl CpuSet
- ldr r0, =gUnknown_085C8ED4
+ ldr r0, =gFieldEffectObjectPalette10
movs r1, 0xF0
movs r2, 0x20
bl gpu_pal_apply
@@ -649815,7 +649841,7 @@ sub_81521C0: ; 81521C0
cmp r5, r4
bcs @08152242
adds r3, r6, 0
- ldr r0, =gUnknown_082EC690
+ ldr r0, =gDefaultOamAttributes
mov r12, r0
movs r2, 0x4
mov r8, r2
@@ -649872,7 +649898,7 @@ sub_8152254: ; 8152254
bcs @08152292
ldr r0, =0x030024f8
mov r12, r0
- ldr r4, =gUnknown_082EC690
+ ldr r4, =gDefaultOamAttributes
adds r2, r5, 0
@0815227A:
lsls r1, r3, 3
@@ -649972,7 +649998,7 @@ sub_81522D4: ; 81522D4
lsls r0, r6, 3
ldr r1, =0x030024f8
adds r0, r1
- ldr r1, =gUnknown_082EC690
+ ldr r1, =gDefaultOamAttributes
ldm r1!, {r2,r3}
stm r0!, {r2,r3}
b @081523C0
@@ -650375,7 +650401,7 @@ sub_81525D0: ; 81525D0
lsls r1, r5, 3
ldr r0, =0x030024f8
adds r1, r0
- ldr r0, =gUnknown_082EC690
+ ldr r0, =gDefaultOamAttributes
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
adds r0, r5, 0
@@ -653805,7 +653831,7 @@ objc_80DAF50: ; 81540A8
thumb_func_start sub_8154228
sub_8154228: ; 8154228
push {r4,lr}
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x20]
movs r1, 0
movs r2, 0
@@ -653967,7 +653993,7 @@ oei_shadow: ; 8154340
ldrb r0, [r1, 0x5]
bl GetFieldObjectGraphicsInfo
adds r4, r0, 0
- ldr r2, =gUnknown_085059F8
+ ldr r2, =gFieldEffectObjectTemplatePointers
ldr r1, =gUnknown_085CDC3E
ldrb r0, [r4, 0xC]
lsls r0, 26
@@ -654044,7 +654070,7 @@ oamc_shadow: ; 81543E4
beq @08154412
adds r0, r5, 0
movs r1, 0x3
- bl oe_stop
+ bl FieldEffectStop
b @08154498
@08154412:
mov r0, sp
@@ -654108,7 +654134,7 @@ oamc_shadow: ; 81543E4
@08154490:
adds r0, r5, 0
movs r1, 0x3
- bl oe_stop
+ bl FieldEffectStop
@08154498:
add sp, 0x4
pop {r4,r5}
@@ -654135,7 +654161,7 @@ oei_grass_normal: ; 81544AC
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x10]
mov r1, sp
movs r2, 0
@@ -654281,7 +654307,7 @@ unc_grass_normal: ; 8154550
@081545F0:
adds r0, r5, 0
movs r1, 0x4
- bl oe_stop
+ bl FieldEffectStop
b @08154648
.align 2, 0
.pool
@@ -654340,7 +654366,7 @@ sub_8154658: ; 8154658
movs r2, 0x8
movs r3, 0xC
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x28]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -654478,7 +654504,7 @@ sub_8154758: ; 8154758
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x3C]
mov r1, sp
movs r2, 0
@@ -654625,7 +654651,7 @@ unc_grass_tall: ; 8154800
@081548A0:
adds r0, r5, 0
movs r1, 0x11
- bl oe_stop
+ bl FieldEffectStop
b @081548EA
.align 2, 0
.pool
@@ -654676,7 +654702,7 @@ sub_81548FC: ; 81548FC
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x40]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -654737,7 +654763,7 @@ sub_815496C: ; 815496C
lsls r1, 2
ldr r0, =0x02037350
adds r5, r1, r0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x78]
movs r1, 0
movs r2, 0
@@ -654836,7 +654862,7 @@ sub_8154A10: ; 8154A10
@08154A4E:
adds r0, r4, 0
movs r1, 0x29
- bl oe_stop
+ bl FieldEffectStop
b @08154AF2
.align 2, 0
.pool
@@ -654935,7 +654961,7 @@ sub_8154B04: ; 8154B04
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x2C]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -654990,7 +655016,7 @@ sub_8154B78: ; 8154B78
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x5C]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655046,7 +655072,7 @@ sub_8154BEC: ; 8154BEC
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x6C]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655163,7 +655189,7 @@ sub_8154CA0: ; 8154CA0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl oe_stop
+ bl FieldEffectStop
@08154CE4:
pop {r4}
pop {r0}
@@ -655185,7 +655211,7 @@ sub_8154CEC: ; 8154CEC
lsls r1, 2
ldr r0, =0x02037350
adds r5, r1, r0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x34]
movs r1, 0
movs r2, 0
@@ -655274,7 +655300,7 @@ sub_8154D90: ; 8154D90
@08154DC0:
adds r0, r4, 0
movs r1, 0xF
- bl oe_stop
+ bl FieldEffectStop
b @08154E0A
@08154DCA:
ldr r3, =0x02020630
@@ -655326,7 +655352,7 @@ sub_8154E1C: ; 8154E1C
movs r2, 0x8
movs r3, 0xC
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x38]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655381,7 +655407,7 @@ oei_water_drop_tall: ; 8154E8C
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x30]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655442,7 +655468,7 @@ sub_8154EFC: ; 8154EFC
lsls r1, 2
ldr r0, =0x02037350
adds r6, r1, r0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x34]
movs r1, 0
movs r2, 0
@@ -655542,7 +655568,7 @@ sub_8154FB4: ; 8154FB4
@08154FEE:
adds r0, r4, 0
movs r1, 0x22
- bl oe_stop
+ bl FieldEffectStop
b @08155046
.align 2, 0
.pool
@@ -655594,7 +655620,7 @@ sub_8154FB4: ; 8154FB4
thumb_func_start oei_ripples
oei_ripples: ; 8155054
push {r4,lr}
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x14]
ldr r4, =0x02038c08
movs r2, 0
@@ -655654,7 +655680,7 @@ sub_81550B4: ; 81550B4
lsls r1, 2
ldr r0, =0x02037350
adds r5, r1, r0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x7C]
movs r1, 0
movs r2, 0
@@ -655751,7 +655777,7 @@ sub_8155158: ; 8155158
@08155192:
adds r0, r4, 0
movs r1, 0x2A
- bl oe_stop
+ bl FieldEffectStop
b @081551E4
.align 2, 0
.pool
@@ -655806,7 +655832,7 @@ sub_81551F0: ; 81551F0
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x44]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655859,7 +655885,7 @@ sub_815525C: ; 815525C
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x48]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655912,7 +655938,7 @@ sub_81552C8: ; 81552C8
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x4C]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -655965,7 +655991,7 @@ sub_8155334: ; 8155334
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x50]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -656030,7 +656056,7 @@ ash: ; 81553A0
asrs r3, 16
str r3, [r4, 0x14]
movs r0, 0x7
- bl oe_exec
+ bl FieldEffectStart
pop {r4}
pop {r0}
bx r0
@@ -656055,7 +656081,7 @@ oei_ash: ; 81553D4
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x18]
mov r1, sp
movs r2, 0
@@ -656214,7 +656240,7 @@ sub_815550C: ; 815550C
beq @0815552C
adds r0, r4, 0
movs r1, 0x7
- bl oe_stop
+ bl FieldEffectStop
@0815552C:
pop {r4}
pop {r0}
@@ -656230,7 +656256,7 @@ sub_8155534: ; 8155534
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x1C]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -656268,7 +656294,7 @@ sub_8155534: ; 8155534
strh r0, [r1, 0x3C]
@0815558E:
movs r0, 0x8
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
adds r0, r5, 0
pop {r4,r5}
pop {r1}
@@ -656691,7 +656717,7 @@ sub_8155890: ; 8155890
movs r2, 0x8
movs r3, 0xC
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x24]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -656752,7 +656778,7 @@ sub_8155900: ; 8155900
lsls r1, 2
ldr r0, =0x02037350
adds r6, r1, r0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x74]
movs r1, 0
movs r2, 0
@@ -656859,7 +656885,7 @@ sub_81559BC: ; 81559BC
@081559F6:
adds r0, r4, 0
movs r1, 0x27
- bl oe_stop
+ bl FieldEffectStop
b @08155A76
.align 2, 0
.pool
@@ -656939,7 +656965,7 @@ sub_8155A88: ; 8155A88
movs r2, 0x8
movs r3, 0
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
adds r0, 0x88
ldr r0, [r0]
movs r2, 0
@@ -657004,7 +657030,7 @@ sub_8155AEC: ; 8155AEC
beq @08155B20
adds r0, r4, 0
movs r1, 0x35
- bl oe_stop
+ bl FieldEffectStop
@08155B20:
pop {r4}
pop {r0}
@@ -657022,7 +657048,7 @@ sub_8155B2C: ; 8155B2C
movs r2, 0x8
movs r3, 0x4
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x58]
movs r2, 0
ldrsh r1, [r4, r2]
@@ -657070,41 +657096,45 @@ sub_8155B2C: ; 8155B2C
.pool
thumb_func_end sub_8155B2C
- thumb_func_start sub_8155BA0
-sub_8155BA0: ; 8155BA0
+ thumb_func_start ShowTreeDisguiseFieldEffect
+; u8 ShowTreeDisguiseFieldEffect()
+ShowTreeDisguiseFieldEffect: ; 8155BA0
push {lr}
movs r0, 0x1C
movs r1, 0x18
movs r2, 0x4
- bl sub_8155BD0
+ bl ShowDisguiseFieldEffect
pop {r1}
bx r1
- thumb_func_end sub_8155BA0
+ thumb_func_end ShowTreeDisguiseFieldEffect
- thumb_func_start sub_8155BB0
-sub_8155BB0: ; 8155BB0
+ thumb_func_start ShowMountainDisguiseFieldEffect
+; u8 ShowMountainDisguiseFieldEffect()
+ShowMountainDisguiseFieldEffect: ; 8155BB0
push {lr}
movs r0, 0x1D
movs r1, 0x19
movs r2, 0x3
- bl sub_8155BD0
+ bl ShowDisguiseFieldEffect
pop {r1}
bx r1
- thumb_func_end sub_8155BB0
+ thumb_func_end ShowMountainDisguiseFieldEffect
- thumb_func_start sub_8155BC0
-sub_8155BC0: ; 8155BC0
+ thumb_func_start ShowSandDisguiseFieldEffect
+; u8 ShowSandDisguiseFieldEffect()
+ShowSandDisguiseFieldEffect: ; 8155BC0
push {lr}
movs r0, 0x24
movs r1, 0x1C
movs r2, 0x2
- bl sub_8155BD0
+ bl ShowDisguiseFieldEffect
pop {r1}
bx r1
- thumb_func_end sub_8155BC0
+ thumb_func_end ShowSandDisguiseFieldEffect
- thumb_func_start sub_8155BD0
-sub_8155BD0: ; 8155BD0
+ thumb_func_start ShowDisguiseFieldEffect
+; u8 ShowDisguiseFieldEffect(u8 fieldEffectId, u8 fieldEffectObjectId, u8 paletteSlot)
+ShowDisguiseFieldEffect: ; 8155BD0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -657126,13 +657156,13 @@ sub_8155BD0: ; 8155BD0
cmp r0, 0
beq @08155C08
adds r0, r4, 0
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
movs r0, 0x40
b @08155C74
.align 2, 0
.pool
@08155C08:
- ldr r1, =gUnknown_085059F8
+ ldr r1, =gFieldEffectObjectTemplatePointers
lsls r0, r6, 2
adds r0, r1
ldr r0, [r0]
@@ -657195,7 +657225,7 @@ sub_8155BD0: ; 8155BD0
bx r1
.align 2, 0
.pool
- thumb_func_end sub_8155BD0
+ thumb_func_end ShowDisguiseFieldEffect
thumb_func_start sub_8155C88
sub_8155C88: ; 8155C88
@@ -657220,7 +657250,7 @@ sub_8155C88: ; 8155C88
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl oe_stop
+ bl FieldEffectStop
@08155CB8:
ldr r4, =0x02037350
mov r0, sp
@@ -657308,7 +657338,7 @@ sub_8155C88: ; 8155C88
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
- bl oe_stop
+ bl FieldEffectStop
@08155D68:
add sp, 0x4
pop {r4,r5}
@@ -657394,7 +657424,7 @@ sub_8155DDC: ; 8155DDC
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
adds r0, 0x8C
ldr r0, [r0]
movs r2, 0
@@ -657475,7 +657505,7 @@ sub_8155E50: ; 8155E50
ble @08155E9A
adds r0, r2, 0
movs r1, 0x36
- bl oe_stop
+ bl FieldEffectStop
@08155E9A:
pop {r0}
bx r0
@@ -657840,7 +657870,7 @@ sub_8155F80: ; 8155F80
bl lcd_io_set
adds r0, r5, 0
movs r1, 0x40
- bl oe_stop
+ bl FieldEffectStop
@08156156:
movs r3, 0x32
ldrsh r0, [r5, r3]
@@ -657892,7 +657922,7 @@ sub_8156194: ; 8156194
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl oe_stop
+ bl FieldEffectStop
b @081561C8
@081561B2:
adds r0, r4, 0
@@ -657924,7 +657954,7 @@ sub_81561D0: ; 81561D0
lsls r1, 24
lsrs r1, 24
adds r0, r2, 0
- bl oe_stop
+ bl FieldEffectStop
b @081561F6
@081561EE:
adds r0, r2, 0
@@ -665964,7 +665994,7 @@ sub_8159EF0: ; 8159EF0
hm2_sweet_scent: ; 8159F10
push {lr}
movs r0, 0x33
- bl oe_exec
+ bl FieldEffectStart
bl brm_get_pokemon_selection
ldr r1, =0x02038c08
lsls r0, 24
@@ -666049,7 +666079,7 @@ sub_8159F5C: ; 8159F5C
movs r0, 0
strh r0, [r1, 0x8]
movs r0, 0x33
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
add sp, 0x4
pop {r4,r5}
pop {r0}
@@ -726656,7 +726686,7 @@ sub_8179834: ; 8179834
lsrs r0, 24
str r0, [r1]
movs r0, 0x3C
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -726667,7 +726697,7 @@ sub_8179834: ; 8179834
sub_8179850: ; 8179850
push {lr}
movs r0, 0x3C
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl sub_8179860
pop {r0}
bx r0
@@ -726755,7 +726785,7 @@ sub_8179918: ; 8179918
lsrs r0, 24
str r0, [r1]
movs r0, 0x3C
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -726766,7 +726796,7 @@ sub_8179918: ; 8179918
sub_8179934: ; 8179934
push {lr}
movs r0, 0x3C
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl sub_8179944
pop {r0}
bx r0
@@ -732385,7 +732415,7 @@ hm_teleport_run_dp02scr: ; 817C8FC
push {lr}
bl new_game
movs r0, 0x3F
- bl oe_exec
+ bl FieldEffectStart
bl brm_get_pokemon_selection
ldr r1, =0x02038c08
lsls r0, 24
@@ -732425,7 +732455,7 @@ sub_817C91C: ; 817C91C
sub_817C94C: ; 817C94C
push {lr}
movs r0, 0x3F
- bl oe_active_list_remove
+ bl FieldEffectActiveListRemove
bl sub_80B7FC8
pop {r0}
bx r0
@@ -844138,7 +844168,7 @@ hm_surf_run_dp02scr: ; 81B5804
lsrs r0, 24
str r0, [r1]
movs r0, 0x9
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -844246,7 +844276,7 @@ hm2_waterfall: ; 81B58D4
lsrs r0, 24
str r0, [r1]
movs r0, 0x2B
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -844308,7 +844338,7 @@ sub_81B5958: ; 81B5958
lsrs r0, 24
str r0, [r1]
movs r0, 0x2C
- bl oe_exec
+ bl FieldEffectStart
pop {r0}
bx r0
.align 2, 0
@@ -905956,7 +905986,7 @@ sub_81D4A90: ; 81D4A90
movs r0, 0x1
strb r0, [r1]
@081D4B3A:
- ldr r4, =gUnknown_0850C9C8
+ ldr r4, =gFieldEffectObjectPaletteInfo1
adds r0, r4, 0
bl gpu_pal_obj_alloc_tag_and_apply
ldrh r0, [r4, 0x4]
@@ -905976,7 +906006,7 @@ sub_81D4A90: ; 81D4A90
movs r2, 0x8
movs r3, 0x8
bl sub_80930E0
- ldr r0, =gUnknown_085059F8
+ ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x3C]
mov r1, sp
movs r2, 0
diff --git a/asm/gpu_obj.s b/asm/gpu_obj.s
index c1051759f..bddfe5b4e 100644
--- a/asm/gpu_obj.s
+++ b/asm/gpu_obj.s
@@ -554,7 +554,7 @@ super_sprites_fill: ; 8006D68
bcs @08006DD8
mov r1, sp
ldr r5, =0x030022f8
- ldr r0, =gUnknown_082EC690
+ ldr r0, =gDefaultOamAttributes
ldr r2, [r0]
ldr r3, [r0, 0x4]
@08006DBE:
@@ -1044,7 +1044,7 @@ reset_super_sprites: ; 8007150
cmp r3, r4
bcs @08007178
ldr r6, =0x030022f8
- ldr r5, =gUnknown_082EC690
+ ldr r5, =gDefaultOamAttributes
@08007162:
lsls r0, r3, 3
adds r0, r6
diff --git a/asm/string_util.s b/asm/string_util.s
index dbc64ca8a..482c14b81 100644
--- a/asm/string_util.s
+++ b/asm/string_util.s
@@ -231,9 +231,9 @@ CompareString: ; 8008C44
bx r1
thumb_func_end CompareString
- thumb_func_start StringCompare_LimitN
-; u8 StringCompare_LimitN(u8 *s1, u8 *s2, u32 n)
-StringCompare_LimitN: ; 8008C68
+ thumb_func_start CompareString_LimitN
+; u8 CompareString_LimitN(u8 *s1, u8 *s2, u32 n)
+CompareString_LimitN: ; 8008C68
push {r4,lr}
adds r3, r0, 0
b @08008C80
@@ -260,7 +260,7 @@ StringCompare_LimitN: ; 8008C68
pop {r4}
pop {r1}
bx r1
- thumb_func_end StringCompare_LimitN
+ thumb_func_end CompareString_LimitN
thumb_func_start IsStringLengthLessThanN
; BOOL IsStringLengthLessThanN(u8 *s, s32 n)
@@ -1027,9 +1027,9 @@ RepeatStringTerminator: ; 800917C
bx r1
thumb_func_end RepeatStringTerminator
- thumb_func_start StringCopy_LimitN_Multibyte
-; u8 *StringCopy_LimitN_Multibyte(u8 *dest, u8 *src, u32 n)
-StringCopy_LimitN_Multibyte: ; 800918C
+ thumb_func_start CopyString_LimitN_Multibyte
+; u8 *CopyString_LimitN_Multibyte(u8 *dest, u8 *src, u32 n)
+CopyString_LimitN_Multibyte: ; 800918C
push {r4,r5,lr}
adds r4, r0, 0
adds r3, r1, 0
@@ -1065,7 +1065,7 @@ StringCopy_LimitN_Multibyte: ; 800918C
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end StringCopy_LimitN_Multibyte
+ thumb_func_end CopyString_LimitN_Multibyte
thumb_func_start GetStringLength_Multibyte
; u32 GetStringLength_Multibyte(u8 *s)
@@ -1192,7 +1192,7 @@ sub_800924C: ; 800924C
thumb_func_end sub_800924C
thumb_func_start GetExtendedControlCodeLength
-; u8 GetExtendedControlCodeLength(u8 command)
+; u8 GetExtendedControlCodeLength(u8 code)
GetExtendedControlCodeLength: ; 800927C
push {lr}
lsls r0, 24
diff --git a/build.bat b/build.bat
index 97761d086..304a254e2 100644
--- a/build.bat
+++ b/build.bat
@@ -1,4 +1,4 @@
as -mcpu=arm7tdmi asm/emerald.s -o emerald.o
-ld -T ld_script.txt -T wram_syms.txt -o emerald.elf emerald.o
-objcopy -O binary emerald.elf emerald.gba
-fc /b base_emerald.gba emerald.gba
+ld -T ld_script.txt -T wram_syms.txt -o pokeemerald.elf emerald.o
+objcopy -O binary pokeemerald.elf pokeemerald.gba
+diff base_emerald.gba pokeemerald.gba
diff --git a/data/data1.s b/data/data1.s
index ceb3b09fc..bbd82abe2 100644
--- a/data/data1.s
+++ b/data/data1.s
@@ -1203,8 +1203,10 @@ gUnknown_082DB9C1: ; 82DB9C1
gUnknown_082DB9C8: ; 82DB9C8
.incbin "base_emerald.gba", 0x2db9c8, 0xc
-gUnknown_082DB9D4: ; 82DB9D4
- .incbin "base_emerald.gba", 0x2db9d4, 0x334
+; 82DB9D4
+ .include "data/field_effect_scripts.s"
+
+ .align 2, 0
gUnknown_082DBD08: ; 82DBD08
.incbin "base_emerald.gba", 0x2dbd08, 0x34
diff --git a/data/data2.s b/data/data2.s
index 02f387c78..794eb79d6 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -138,8 +138,11 @@ gUnknown_082EC634: ; 82EC634
gUnknown_082EC64C: ; 82EC64C
.incbin "base_emerald.gba", 0x2ec64c, 0x44
-gUnknown_082EC690: ; 82EC690
- .incbin "base_emerald.gba", 0x2ec690, 0x8
+; off-screen and low priority relative to background
+gDefaultOamAttributes: ; 82EC690
+ .2byte 160 ; Y
+ .2byte 304 ; X
+ .2byte 3 << 10 ; priority
.align 2, 0
@@ -2394,8 +2397,8 @@ gUnknown_085055CD: ; 85055CD
; 8505620
.include "data/graphics/field_objects/field_object_graphics_info_pointers.s"
-gUnknown_085059F8: ; 85059F8
- .incbin "base_emerald.gba", 0x5059f8, 0x94
+; 85059F8
+ .include "data/graphics/field_objects/field_effect_object_template_pointers.s"
; 8505A8C
.include "data/graphics/field_objects/field_object_pic_tables.s"
@@ -2427,10 +2430,10 @@ gUnknown_0850BE38: ; 850BE38
; 850BE48
.include "data/graphics/field_objects/berry_tree_graphics_tables.s"
- .incbin "base_emerald.gba", 0x50c9c0, 0x8
+; 850C9C0
+ .include "data/graphics/field_objects/field_effect_objects.s"
-gUnknown_0850C9C8: ; 850C9C8
- .incbin "base_emerald.gba", 0x50c9c8, 0xd14
+ .incbin "base_emerald.gba", 0x50d6d4, 0x8
gUnknown_0850D6DC: ; 850D6DC
.incbin "base_emerald.gba", 0x50d6dc, 0x10
@@ -3417,7 +3420,19 @@ gUnknown_08553A78: ; 8553A78
.incbin "base_emerald.gba", 0x553a78, 0x4
gUnknown_08553A7C: ; 8553A7C
- .incbin "base_emerald.gba", 0x553a7c, 0x73d4
+ .incbin "base_emerald.gba", 0x553a7c, 0x6f14
+
+ .align 2, 0
+
+gFieldEffectObjectPalette4: ; 855A990
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_04.gbapal"
+
+ .incbin "base_emerald.gba", 0x55a9b0, 0x480
+
+ .align 2, 0
+
+gFieldEffectObjectPalette5: ; 855AE30
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_05.gbapal"
gUnknown_0855AE50: ; 855AE50
.incbin "base_emerald.gba", 0x55ae50, 0x200
@@ -3453,7 +3468,19 @@ gUnknown_0855C230: ; 855C230
.incbin "base_emerald.gba", 0x55c230, 0x14
gUnknown_0855C244: ; 855C244
- .incbin "base_emerald.gba", 0x55c244, 0x68
+ .incbin "base_emerald.gba", 0x55c244, 0x18
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo4: ; 855C25C
+ obj_pal gFieldEffectObjectPalette4, 0x1007
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo5: ; 855C264
+ obj_pal gFieldEffectObjectPalette5, 0x1010
+
+ .incbin "base_emerald.gba", 0x55c26c, 0x40
gUnknown_0855C2AC: ; 855C2AC
.incbin "base_emerald.gba", 0x55c2ac, 0x18
@@ -4056,7 +4083,12 @@ gUnknown_0857C608: ; 857C608
.incbin "base_emerald.gba", 0x57c608, 0x2
gUnknown_0857C60A: ; 857C60A
- .incbin "base_emerald.gba", 0x57c60a, 0x62
+ .incbin "base_emerald.gba", 0x57c60a, 0x5a
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo6: ; 857C664
+ obj_pal gFieldEffectObjectPalette6, 0x1000
gUnknown_0857C66C: ; 857C66C
.incbin "base_emerald.gba", 0x57c66c, 0x18
@@ -4705,7 +4737,21 @@ gUnknown_0858D8F0: ; 858D8F0
.incbin "base_emerald.gba", 0x58d8f0, 0x80
gUnknown_0858D970: ; 858D970
- .incbin "base_emerald.gba", 0x58d970, 0xc90
+ .incbin "base_emerald.gba", 0x58d970, 0x2a8
+
+ .align 2, 0
+
+gFieldEffectObjectPalette7: ; 858DC18
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_07.gbapal"
+
+ .incbin "base_emerald.gba", 0x58dc38, 0x580
+
+ .align 2, 0
+
+gFieldEffectObjectPalette8: ; 858E1B8
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_08.gbapal"
+
+ .incbin "base_emerald.gba", 0x58e1d8, 0x428
gUnknown_0858E600: ; 858E600
.incbin "base_emerald.gba", 0x58e600, 0x18
@@ -4714,10 +4760,31 @@ gUnknown_0858E618: ; 858E618
.incbin "base_emerald.gba", 0x58e618, 0x18
gUnknown_0858E630: ; 858E630
- .incbin "base_emerald.gba", 0x58e630, 0x5c
+ .incbin "base_emerald.gba", 0x58e630, 0x18
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo7: ; 858E648
+ obj_pal gFieldEffectObjectPalette7, 0x1003
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo8: ; 858E650
+ obj_pal gFieldEffectObjectPalette8, 0x1008
+
+ .incbin "base_emerald.gba", 0x58e658, 0x34
gUnknown_0858E68C: ; 858E68C
- .incbin "base_emerald.gba", 0x58e68c, 0x1d8
+ .incbin "base_emerald.gba", 0x58e68c, 0x18
+
+ .align 2, 0
+
+; This uses one of the secret base palettes, so there is no
+; "field_effect_object_palette_09.pal" file.
+gFieldEffectObjectPaletteInfo9: ; 858E6A4
+ obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
+
+ .incbin "base_emerald.gba", 0x58e6ac, 0x1b8
gUnknown_0858E864: ; 858E864
.incbin "base_emerald.gba", 0x58e864, 0x1c
@@ -6546,8 +6613,17 @@ gUnknown_085C8E24: ; 85C8E24
gUnknown_085C8E68: ; 85C8E68
.incbin "base_emerald.gba", 0x5c8e68, 0x6c
-gUnknown_085C8ED4: ; 85C8ED4
- .incbin "base_emerald.gba", 0x5c8ed4, 0x108
+ .align 2, 0
+
+gFieldEffectObjectPalette10: ; 85C8ED4
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_10.gbapal"
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo10: ; 85C8EF4
+ obj_pal gFieldEffectObjectPalette10, 0x1009
+
+ .incbin "base_emerald.gba", 0x5c8efc, 0xe0
gUnknown_085C8FDC: ; 85C8FDC
.incbin "base_emerald.gba", 0x5c8fdc, 0x14
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
new file mode 100644
index 000000000..7485e7c74
--- /dev/null
+++ b/data/field_effect_scripts.s
@@ -0,0 +1,341 @@
+ .align 2, 0
+
+gFieldEffectScriptPointers: ; 82DB9D4
+ .4byte gFieldEffectScript_ExclamationMarkIcon1
+ .4byte gFieldEffectScript_UseCutOnTallGrass
+ .4byte gFieldEffectScript_UseCutOnTree
+ .4byte gFieldEffectScript_Shadow
+ .4byte gFieldEffectScript_TallGrass
+ .4byte gFieldEffectScript_Ripple
+ .4byte gFieldEffectScript_FieldMoveShowMon
+ .4byte gFieldEffectScript_Ash
+ .4byte gFieldEffectScript_SurfBlob
+ .4byte gFieldEffectScript_UseSurf
+ .4byte gFieldEffectScript_GroundImpactDust
+ .4byte gFieldEffectScript_Unknown11
+ .4byte gFieldEffectScript_BikeHopTallGrass
+ .4byte gFieldEffectScript_SandFootprints
+ .4byte gFieldEffectScript_BikeHopBigSplash
+ .4byte gFieldEffectScript_Splash
+ .4byte gFieldEffectScript_BikeHopSmallSplash
+ .4byte gFieldEffectScript_LongGrass
+ .4byte gFieldEffectScript_Unknown18
+ .4byte gFieldEffectScript_Unknown19
+ .4byte gFieldEffectScript_Unknown20
+ .4byte gFieldEffectScript_Unknown21
+ .4byte gFieldEffectScript_Unknown22
+ .4byte gFieldEffectScript_BerryTreeGrowthSparkle
+ .4byte gFieldEffectScript_DeepSandFootprints
+ .4byte gFieldEffectScript_Unknown25
+ .4byte gFieldEffectScript_Unknown26
+ .4byte gFieldEffectScript_Unknown27
+ .4byte gFieldEffectScript_TreeDisguise
+ .4byte gFieldEffectScript_MountainDisguise
+ .4byte gFieldEffectScript_Unknown30
+ .4byte gFieldEffectScript_UseFly
+ .4byte gFieldEffectScript_FlyIn
+ .4byte gFieldEffectScript_ExclamationMarkIcon2
+ .4byte gFieldEffectScript_FeetInFlowingWater
+ .4byte gFieldEffectScript_BikeTireTracks
+ .4byte gFieldEffectScript_SandDisguisePlaceholder
+ .4byte gFieldEffectScript_UseRockSmash
+ .4byte gFieldEffectScript_Unknown38
+ .4byte gFieldEffectScript_Unknown39
+ .4byte gFieldEffectScript_Unknown40
+ .4byte gFieldEffectScript_ShortGrass
+ .4byte gFieldEffectScript_HotSpringsWater
+ .4byte gFieldEffectScript_Unknown43
+ .4byte gFieldEffectScript_Unknown44
+ .4byte gFieldEffectScript_Unknown45
+ .4byte gFieldEffectScript_HeartIcon
+ .4byte gFieldEffectScript_Unknown47
+ .4byte gFieldEffectScript_Unknown48
+ .4byte gFieldEffectScript_JumpOutOfAsh
+ .4byte gFieldEffectScript_Unknown50
+ .4byte gFieldEffectScript_Unknown51
+ .4byte gFieldEffectScript_Unknown52
+ .4byte gFieldEffectScript_Bubbles
+ .4byte gFieldEffectScript_Unknown54
+ .4byte gFieldEffectScript_Unknown55
+ .4byte gFieldEffectScript_Unknown56
+ .4byte gFieldEffectScript_Unknown57
+ .4byte gFieldEffectScript_Unknown58
+ .4byte gFieldEffectScript_FieldMoveShowMonInit
+ .4byte gFieldEffectScript_Unknown60
+ .4byte gFieldEffectScript_Unknown61
+ .4byte gFieldEffectScript_Unknown62
+ .4byte gFieldEffectScript_Unknown63
+ .4byte gFieldEffectScript_Rayquaza
+ .4byte gFieldEffectScript_Unknown65
+ .4byte gFieldEffectScript_Unknown66
+
+gFieldEffectScript_ExclamationMarkIcon1: ; 82DBAE0
+ field_eff_callnative oei_exclamation_mark
+ field_eff_end
+
+gFieldEffectScript_UseCutOnTallGrass: ; 82DBAE6
+ field_eff_callnative sub_80D3A6C
+ field_eff_end
+
+gFieldEffectScript_UseCutOnTree: ; 82DBAEC
+ field_eff_callnative sub_80D3ABC
+ field_eff_end
+
+gFieldEffectScript_Shadow: ; 82DBAF2
+ field_eff_callnative oei_shadow
+ field_eff_end
+
+gFieldEffectScript_TallGrass: ; 82DBAF8
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, oei_grass_normal
+ field_eff_end
+
+gFieldEffectScript_Ripple: ; 82DBB02
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, oei_ripples
+ field_eff_end
+
+gFieldEffectScript_FieldMoveShowMon: ; 82DBB0C
+ field_eff_callnative sub_80B849C
+ field_eff_end
+
+gFieldEffectScript_Ash: ; 82DBB12
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, oei_ash
+ field_eff_end
+
+gFieldEffectScript_SurfBlob: ; 82DBB1C
+ field_eff_callnative sub_8155534
+ field_eff_end
+
+gFieldEffectScript_UseSurf: ; 82DBB22
+ field_eff_callnative sub_80B8D44
+ field_eff_end
+
+gFieldEffectScript_GroundImpactDust: ; 82DBB28
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155890
+ field_eff_end
+
+gFieldEffectScript_Unknown11: ; 82DBB32
+ field_eff_callnative oei_sweet_scent
+ field_eff_end
+
+gFieldEffectScript_BikeHopTallGrass: ; 82DBB38
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_8154658
+ field_eff_end
+
+gFieldEffectScript_SandFootprints: ; 82DBB42
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154B04
+ field_eff_end
+
+gFieldEffectScript_BikeHopBigSplash: ; 82DBB4C
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, oei_water_drop_tall
+ field_eff_end
+
+gFieldEffectScript_Splash: ; 82DBB56
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154CEC
+ field_eff_end
+
+gFieldEffectScript_BikeHopSmallSplash: ; 82DBB60
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154E1C
+ field_eff_end
+
+gFieldEffectScript_LongGrass: ; 82DBB6A
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_8154758
+ field_eff_end
+
+gFieldEffectScript_Unknown18: ; 82DBB74
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_81548FC
+ field_eff_end
+
+gFieldEffectScript_Unknown19: ; 82DBB7E
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_81551F0
+ field_eff_end
+
+gFieldEffectScript_Unknown20: ; 82DBB88
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_815525C
+ field_eff_end
+
+gFieldEffectScript_Unknown21: ; 82DBB92
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_81552C8
+ field_eff_end
+
+gFieldEffectScript_Unknown22: ; 82DBB9C
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155334
+ field_eff_end
+
+gFieldEffectScript_BerryTreeGrowthSparkle: ; 82DBBA6
+ field_eff_callnative sub_8155B2C
+ field_eff_end
+
+gFieldEffectScript_DeepSandFootprints: ; 82DBBAC
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154B78
+ field_eff_end
+
+gFieldEffectScript_Unknown25: ; 82DBBB6
+ field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_80B61A0
+ field_eff_end
+
+gFieldEffectScript_Unknown26: ; 82DBBC5
+ field_eff_callnative sub_80FA208
+ field_eff_end
+
+gFieldEffectScript_Unknown27: ; 82DBBCB
+ field_eff_callnative sub_80FA36C
+ field_eff_end
+
+gFieldEffectScript_TreeDisguise: ; 82DBBD1
+ field_eff_callnative ShowTreeDisguiseFieldEffect
+ field_eff_end
+
+gFieldEffectScript_MountainDisguise: ; 82DBBD7
+ field_eff_callnative ShowMountainDisguiseFieldEffect
+ field_eff_end
+
+gFieldEffectScript_Unknown30: ; 82DBBDD
+ field_eff_callnative sub_80B90CC
+ field_eff_end
+
+gFieldEffectScript_UseFly: ; 82DBBE3
+ field_eff_callnative sub_80B91A4
+ field_eff_end
+
+gFieldEffectScript_FlyIn: ; 82DBBE9
+ field_eff_callnative sub_80B97C0
+ field_eff_end
+
+gFieldEffectScript_ExclamationMarkIcon2: ; 82DBBEF
+ field_eff_callnative sub_80B4658
+ field_eff_end
+
+gFieldEffectScript_FeetInFlowingWater: ; 82DBBF5
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154EFC
+ field_eff_end
+
+gFieldEffectScript_BikeTireTracks: ; 82DBBFF
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8154BEC
+ field_eff_end
+
+gFieldEffectScript_SandDisguisePlaceholder: ; 82DBC09
+ field_eff_callnative ShowSandDisguiseFieldEffect
+ field_eff_end
+
+gFieldEffectScript_UseRockSmash: ; 82DBC0F
+ field_eff_callnative oei_rocksmash
+ field_eff_end
+
+gFieldEffectScript_Unknown40: ; 82DBC15
+ field_eff_callnative sub_8145E2C
+ field_eff_end
+
+gFieldEffectScript_Unknown38: ; 82DBC1B
+ field_eff_callnative sub_8135780
+ field_eff_end
+
+gFieldEffectScript_Unknown39: ; 82DBC21
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155900
+ field_eff_end
+
+gFieldEffectScript_ShortGrass: ; 82DBC2B
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_815496C
+ field_eff_end
+
+gFieldEffectScript_HotSpringsWater: ; 82DBC35
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo1, sub_81550B4
+ field_eff_end
+
+gFieldEffectScript_Unknown43: ; 82DBC3F
+ field_eff_callnative oei_waterfall
+ field_eff_end
+
+gFieldEffectScript_Unknown44: ; 82DBC45
+ field_eff_callnative sub_80B74D0
+ field_eff_end
+
+gFieldEffectScript_Unknown45: ; 82DBC4B
+ field_eff_loadpal gFieldEffectObjectPaletteInfo10
+ field_eff_callnative sub_81470D0
+ field_eff_end
+
+gFieldEffectScript_HeartIcon: ; 82DBC56
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_80B4690
+ field_eff_end
+
+gFieldEffectScript_Unknown47: ; 82DBC60
+ field_eff_callnative sub_80FA6FC
+ field_eff_end
+
+gFieldEffectScript_Unknown48: ; 82DBC66
+ field_eff_callnative sub_80FA700
+ field_eff_end
+
+gFieldEffectScript_JumpOutOfAsh: ; 82DBC6C
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, sub_80B7C48
+ field_eff_end
+
+gFieldEffectScript_Unknown50: ; 82DBC76
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo2, sub_80B79F4
+ field_eff_end
+
+gFieldEffectScript_Unknown51: ; 82DBC80
+ field_eff_callnative sub_8159F2C
+ field_eff_end
+
+gFieldEffectScript_Unknown52: ; 82DBC86
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo9, sub_80FAA7C
+ field_eff_end
+
+gFieldEffectScript_Bubbles: ; 82DBC90
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo0, sub_8155A88
+ field_eff_end
+
+gFieldEffectScript_Unknown54: ; 82DBC9A
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo3, sub_8155DDC
+ field_eff_end
+
+gFieldEffectScript_Unknown55: ; 82DBCA4
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo7, sub_80FA13C
+ field_eff_end
+
+gFieldEffectScript_Unknown56: ; 82DBCAE
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, sub_80FA248
+ field_eff_end
+
+gFieldEffectScript_Unknown57: ; 82DBCB8
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo8, sub_80FA3AC
+ field_eff_end
+
+gFieldEffectScript_Unknown58: ; 82DBCC2
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo6, sub_80D3B00
+ field_eff_end
+
+gFieldEffectScript_FieldMoveShowMonInit: ; 82DBCCC
+ field_eff_callnative sub_80B84F8
+ field_eff_end
+
+gFieldEffectScript_Unknown60: ; 82DBCD2
+ field_eff_callnative sub_81799B8
+ field_eff_end
+
+gFieldEffectScript_Unknown61: ; 82DBCD8
+ field_eff_callnative sub_80FA458
+ field_eff_end
+
+gFieldEffectScript_Unknown62: ; 82DBCDE
+ field_eff_loadfadedpal gFieldEffectObjectPaletteInfo4
+ field_eff_loadfadedpal_callnative gFieldEffectObjectPaletteInfo5, sub_80B62F4
+ field_eff_end
+
+gFieldEffectScript_Unknown63: ; 82DBCED
+ field_eff_callnative sub_817C91C
+ field_eff_end
+
+gFieldEffectScript_Rayquaza: ; 82DBCF3
+ field_eff_callnative sub_80B8F98
+ field_eff_end
+
+gFieldEffectScript_Unknown65: ; 82DBCF9
+ field_eff_callnative sub_80B9ADC
+ field_eff_end
+
+gFieldEffectScript_Unknown66: ; 82DBCFF
+ field_eff_callnative sub_80B9E28
+ field_eff_end
diff --git a/data/graphics/field_objects/field_effect_object_template_pointers.s b/data/graphics/field_objects/field_effect_object_template_pointers.s
new file mode 100644
index 000000000..3690e2558
--- /dev/null
+++ b/data/graphics/field_objects/field_effect_object_template_pointers.s
@@ -0,0 +1,40 @@
+ .align 2, 0
+
+gFieldEffectObjectTemplatePointers: ; 85059F8
+ .4byte gFieldEffectObjectTemplate_ShadowSmall
+ .4byte gFieldEffectObjectTemplate_ShadowMedium
+ .4byte gFieldEffectObjectTemplate_ShadowLarge
+ .4byte gFieldEffectObjectTemplate_ShadowExtraLarge
+ .4byte gFieldEffectObjectTemplate_TallGrass
+ .4byte gFieldEffectObjectTemplate_Ripple
+ .4byte gFieldEffectObjectTemplate_Ash
+ .4byte gFieldEffectObjectTemplate_SurfBlob
+ .4byte gFieldEffectObjectTemplate_Arrow
+ .4byte gFieldEffectObjectTemplate_GroundImpactDust
+ .4byte gFieldEffectObjectTemplate_BikeHopTallGrass
+ .4byte gFieldEffectObjectTemplate_SandFootprints
+ .4byte gFieldEffectObjectTemplate_BikeHopBigSplash
+ .4byte gFieldEffectObjectTemplate_Splash
+ .4byte gFieldEffectObjectTemplate_BikeHopSmallSplash
+ .4byte gFieldEffectObjectTemplate_LongGrass
+ .4byte gFieldEffectObjectTemplate_Unknown16
+ .4byte gFieldEffectObjectTemplate_Unknown17
+ .4byte gFieldEffectObjectTemplate_Unknown18
+ .4byte gFieldEffectObjectTemplate_Unknown19
+ .4byte gFieldEffectObjectTemplate_Unknown20
+ .4byte gFieldEffectObjectTemplate_Unknown21
+ .4byte gFieldEffectObjectTemplate_BerryTreeGrowthSparkle
+ .4byte gFieldEffectObjectTemplate_DeepSandFootprints
+ .4byte gFieldEffectObjectTemplate_TreeDisguise
+ .4byte gFieldEffectObjectTemplate_MountainDisguise
+ .4byte gFieldEffectObjectTemplate_Bird
+ .4byte gFieldEffectObjectTemplate_BikeTireTracks
+ .4byte gFieldEffectObjectTemplate_SandDisguisePlaceholder
+ .4byte gFieldEffectObjectTemplate_Unknown29
+ .4byte gFieldEffectObjectTemplate_ShortGrass
+ .4byte gFieldEffectObjectTemplate_HotSpringsWater
+ .4byte gFieldEffectObjectTemplate_JumpOutOfAsh
+ .4byte gFieldEffectObjectTemplate_Unknown33
+ .4byte gFieldEffectObjectTemplate_Bubbles
+ .4byte gFieldEffectObjectTemplate_Unknown35
+ .4byte gFieldEffectObjectTemplate_Rayquaza
diff --git a/data/graphics/field_objects/field_effect_objects.s b/data/graphics/field_objects/field_effect_objects.s
new file mode 100644
index 000000000..9f1c3cc1f
--- /dev/null
+++ b/data/graphics/field_objects/field_effect_objects.s
@@ -0,0 +1,1374 @@
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo0: ; 850C9C0
+ obj_pal gFieldEffectObjectPalette0, 0x1004
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo1: ; 850C9C8
+ obj_pal gFieldEffectObjectPalette1, 0x1005
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850C9D0: ; 850C9D0
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Shadow: ; 850C9D8
+ .4byte gFieldEffectObjectImageAnim_850C9D0
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_ShadowSmall: ; 850C9DC
+ obj_tiles gFieldEffectObjectPic_ShadowSmall, 0x20
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_ShadowMedium: ; 850C9E4
+ obj_tiles gFieldEffectObjectPic_ShadowMedium, 0x40
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_ShadowLarge: ; 850C9EC
+ obj_tiles gFieldEffectObjectPic_ShadowLarge, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_ShadowExtraLarge: ; 850C9F4
+ obj_tiles gFieldEffectObjectPic_ShadowExtraLarge, 0x400
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_ShadowSmall: ; 850C9FC
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_8x8
+ .4byte gFieldEffectObjectImageAnimTable_Shadow
+ .4byte gFieldEffectObjectPicTable_ShadowSmall
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte oamc_shadow
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_ShadowMedium: ; 850CA14
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_16x8
+ .4byte gFieldEffectObjectImageAnimTable_Shadow
+ .4byte gFieldEffectObjectPicTable_ShadowMedium
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte oamc_shadow
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_ShadowLarge: ; 850CA2C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_32x8
+ .4byte gFieldEffectObjectImageAnimTable_Shadow
+ .4byte gFieldEffectObjectPicTable_ShadowLarge
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte oamc_shadow
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_ShadowExtraLarge: ; 850CA44
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_64x32
+ .4byte gFieldEffectObjectImageAnimTable_Shadow
+ .4byte gFieldEffectObjectPicTable_ShadowExtraLarge
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte oamc_shadow
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_TallGrass: ; 850CA5C
+ obj_tiles gFieldEffectObjectPic_TallGrass_0, 0x80
+ obj_tiles gFieldEffectObjectPic_TallGrass_1, 0x80
+ obj_tiles gFieldEffectObjectPic_TallGrass_2, 0x80
+ obj_tiles gFieldEffectObjectPic_TallGrass_3, 0x80
+ obj_tiles gFieldEffectObjectPic_TallGrass_4, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CA84: ; 850CA84
+ obj_image_anim_frame 1, 10
+ obj_image_anim_frame 2, 10
+ obj_image_anim_frame 3, 10
+ obj_image_anim_frame 4, 10
+ obj_image_anim_frame 0, 10
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_TallGrass: ; 850CA9C
+ .4byte gFieldEffectObjectImageAnim_850CA84
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_TallGrass: ; 850CAA0
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_TallGrass
+ .4byte gFieldEffectObjectPicTable_TallGrass
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte unc_grass_normal
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Ripple: ; 850CAB8
+ obj_tiles gFieldEffectObjectPic_Ripple_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Ripple_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Ripple_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Ripple_3, 0x80
+ obj_tiles gFieldEffectObjectPic_Ripple_4, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CAE0: ; 850CAE0
+ obj_image_anim_frame 0, 12
+ obj_image_anim_frame 1, 9
+ obj_image_anim_frame 2, 9
+ obj_image_anim_frame 3, 9
+ obj_image_anim_frame 0, 9
+ obj_image_anim_frame 1, 9
+ obj_image_anim_frame 2, 11
+ obj_image_anim_frame 4, 11
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Ripple: ; 850CB04
+ .4byte gFieldEffectObjectImageAnim_850CAE0
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Ripple: ; 850CB08
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Ripple
+ .4byte gFieldEffectObjectPicTable_Ripple
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81561D0
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Ash: ; 850CB20
+ obj_tiles gFieldEffectObjectPic_Ash_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Ash_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Ash_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Ash_3, 0x80
+ obj_tiles gFieldEffectObjectPic_Ash_4, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CB48: ; 850CB48
+ obj_image_anim_frame 0, 12
+ obj_image_anim_frame 1, 12
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 12
+ obj_image_anim_frame 4, 12
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Ash: ; 850CB60
+ .4byte gFieldEffectObjectImageAnim_850CB48
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Ash: ; 850CB64
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Ash
+ .4byte gFieldEffectObjectPicTable_Ash
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155460
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_SurfBlob: ; 850CB7C
+ obj_tiles gFieldEffectObjectPic_SurfBlob_0, 0x200
+ obj_tiles gFieldEffectObjectPic_SurfBlob_1, 0x200
+ obj_tiles gFieldEffectObjectPic_SurfBlob_2, 0x200
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CB94: ; 850CB94
+ obj_image_anim_frame 0, 1
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CB9C: ; 850CB9C
+ obj_image_anim_frame 1, 1
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CBA4: ; 850CBA4
+ obj_image_anim_frame 2, 1
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CBAC: ; 850CBAC
+ obj_image_anim_frame 2, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_SurfBlob: ; 850CBB4
+ .4byte gFieldEffectObjectImageAnim_850CB94
+ .4byte gFieldEffectObjectImageAnim_850CB9C
+ .4byte gFieldEffectObjectImageAnim_850CBA4
+ .4byte gFieldEffectObjectImageAnim_850CBAC
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_SurfBlob: ; 850CBC4
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_32x32
+ .4byte gFieldEffectObjectImageAnimTable_SurfBlob
+ .4byte gFieldEffectObjectPicTable_SurfBlob
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155658
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Arrow: ; 850CBDC
+ obj_tiles gFieldEffectObjectPic_Arrow_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_3, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_4, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_5, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_6, 0x80
+ obj_tiles gFieldEffectObjectPic_Arrow_7, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CC1C: ; 850CC1C
+ obj_image_anim_frame 3, 32
+ obj_image_anim_frame 7, 32
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CC28: ; 850CC28
+ obj_image_anim_frame 0, 32
+ obj_image_anim_frame 4, 32
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CC34: ; 850CC34
+ obj_image_anim_frame 1, 32
+ obj_image_anim_frame 5, 32
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CC40: ; 850CC40
+ obj_image_anim_frame 2, 32
+ obj_image_anim_frame 6, 32
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Arrow: ; 850CC4C
+ .4byte gFieldEffectObjectImageAnim_850CC1C
+ .4byte gFieldEffectObjectImageAnim_850CC28
+ .4byte gFieldEffectObjectImageAnim_850CC34
+ .4byte gFieldEffectObjectImageAnim_850CC40
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Arrow: ; 850CC5C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Arrow
+ .4byte gFieldEffectObjectPicTable_Arrow
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte nullsub_12
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_GroundImpactDust: ; 850CC74
+ obj_tiles gFieldEffectObjectPic_GroundImpactDust_0, 0x40
+ obj_tiles gFieldEffectObjectPic_GroundImpactDust_1, 0x40
+ obj_tiles gFieldEffectObjectPic_GroundImpactDust_2, 0x40
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CC8C: ; 850CC8C
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_GroundImpactDust: ; 850CC9C
+ .4byte gFieldEffectObjectImageAnim_850CC8C
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_GroundImpactDust: ; 850CCA0
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x8
+ .4byte gFieldEffectObjectImageAnimTable_GroundImpactDust
+ .4byte gFieldEffectObjectPicTable_GroundImpactDust
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8156194
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_BikeHopTallGrass: ; 850CCB8
+ obj_tiles gFieldEffectObjectPic_BikeHopTallGrass_0, 0x40
+ obj_tiles gFieldEffectObjectPic_BikeHopTallGrass_1, 0x40
+ obj_tiles gFieldEffectObjectPic_BikeHopTallGrass_2, 0x40
+ obj_tiles gFieldEffectObjectPic_BikeHopTallGrass_3, 0x40
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CCD8: ; 850CCD8
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_BikeHopTallGrass: ; 850CCEC
+ .4byte gFieldEffectObjectImageAnim_850CCD8
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_BikeHopTallGrass: ; 850CCF0
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x8
+ .4byte gFieldEffectObjectImageAnimTable_BikeHopTallGrass
+ .4byte gFieldEffectObjectPicTable_BikeHopTallGrass
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8156194
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_SandFootprints: ; 850CD08
+ obj_tiles gFieldEffectObjectPic_SandFootprints_0, 0x80
+ obj_tiles gFieldEffectObjectPic_SandFootprints_1, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD18: ; 850CD18
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD20: ; 850CD20
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD28: ; 850CD28
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD30: ; 850CD30
+ obj_image_anim_frame 1, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_SandFootprints: ; 850CD38
+ .4byte gFieldEffectObjectImageAnim_850CD18
+ .4byte gFieldEffectObjectImageAnim_850CD18
+ .4byte gFieldEffectObjectImageAnim_850CD20
+ .4byte gFieldEffectObjectImageAnim_850CD28
+ .4byte gFieldEffectObjectImageAnim_850CD30
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_SandFootprints: ; 850CD4C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_SandFootprints
+ .4byte gFieldEffectObjectPicTable_SandFootprints
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8154C60
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_DeepSandFootprints: ; 850CD64
+ obj_tiles gFieldEffectObjectPic_DeepSandFootprints_0, 0x80
+ obj_tiles gFieldEffectObjectPic_DeepSandFootprints_1, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD74: ; 850CD74
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_V_FLIP
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD7C: ; 850CD7C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD84: ; 850CD84
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CD8C: ; 850CD8C
+ obj_image_anim_frame 1, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_DeepSandFootprints: ; 850CD94
+ .4byte gFieldEffectObjectImageAnim_850CD74
+ .4byte gFieldEffectObjectImageAnim_850CD74
+ .4byte gFieldEffectObjectImageAnim_850CD7C
+ .4byte gFieldEffectObjectImageAnim_850CD84
+ .4byte gFieldEffectObjectImageAnim_850CD8C
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_DeepSandFootprints: ; 850CDA8
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_DeepSandFootprints
+ .4byte gFieldEffectObjectPicTable_DeepSandFootprints
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8154C60
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_BikeTireTracks: ; 850CDC0
+ obj_tiles gFieldEffectObjectPic_BikeTireTracks_0, 0x80
+ obj_tiles gFieldEffectObjectPic_BikeTireTracks_1, 0x80
+ obj_tiles gFieldEffectObjectPic_BikeTireTracks_2, 0x80
+ obj_tiles gFieldEffectObjectPic_BikeTireTracks_3, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CDE0: ; 850CDE0
+ obj_image_anim_frame 2, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CDE8: ; 850CDE8
+ obj_image_anim_frame 2, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CDF0: ; 850CDF0
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CDF8: ; 850CDF8
+ obj_image_anim_frame 1, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CE00: ; 850CE00
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CE08: ; 850CE08
+ obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CE10: ; 850CE10
+ obj_image_anim_frame 3, 1, OBJ_IMAGE_ANIM_H_FLIP
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CE18: ; 850CE18
+ obj_image_anim_frame 3, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_BikeTireTracks: ; 850CE20
+ .4byte gFieldEffectObjectImageAnim_850CDE0
+ .4byte gFieldEffectObjectImageAnim_850CDE0
+ .4byte gFieldEffectObjectImageAnim_850CDE8
+ .4byte gFieldEffectObjectImageAnim_850CDF0
+ .4byte gFieldEffectObjectImageAnim_850CDF8
+ .4byte gFieldEffectObjectImageAnim_850CE00
+ .4byte gFieldEffectObjectImageAnim_850CE08
+ .4byte gFieldEffectObjectImageAnim_850CE10
+ .4byte gFieldEffectObjectImageAnim_850CE18
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_BikeTireTracks: ; 850CE44
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_BikeTireTracks
+ .4byte gFieldEffectObjectPicTable_BikeTireTracks
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8154C60
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_BikeHopBigSplash: ; 850CE5C
+ obj_tiles gFieldEffectObjectPic_BikeHopBigSplash_0, 0x80
+ obj_tiles gFieldEffectObjectPic_BikeHopBigSplash_1, 0x80
+ obj_tiles gFieldEffectObjectPic_BikeHopBigSplash_2, 0x80
+ obj_tiles gFieldEffectObjectPic_BikeHopBigSplash_3, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CE7C: ; 850CE7C
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_BikeHopBigSplash: ; 850CE90
+ .4byte gFieldEffectObjectImageAnim_850CE7C
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_BikeHopBigSplash: ; 850CE94
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_BikeHopBigSplash
+ .4byte gFieldEffectObjectPicTable_BikeHopBigSplash
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8156194
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Splash: ; 850CEAC
+ obj_tiles gFieldEffectObjectPic_Splash_0, 0x40
+ obj_tiles gFieldEffectObjectPic_Splash_1, 0x40
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CEBC: ; 850CEBC
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CEC8: ; 850CEC8
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Splash: ; 850CEEC
+ .4byte gFieldEffectObjectImageAnim_850CEBC
+ .4byte gFieldEffectObjectImageAnim_850CEC8
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Splash: ; 850CEF4
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x8
+ .4byte gFieldEffectObjectImageAnimTable_Splash
+ .4byte gFieldEffectObjectPicTable_Splash
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8154D90
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_BikeHopSmallSplash: ; 850CF0C
+ obj_tiles gFieldEffectObjectPic_BikeHopSmallSplash_0, 0x40
+ obj_tiles gFieldEffectObjectPic_BikeHopSmallSplash_1, 0x40
+ obj_tiles gFieldEffectObjectPic_BikeHopSmallSplash_2, 0x40
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CF24: ; 850CF24
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 2, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_BikeHopSmallSplash: ; 850CF34
+ .4byte gFieldEffectObjectImageAnim_850CF24
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_BikeHopSmallSplash: ; 850CF38
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x8
+ .4byte gFieldEffectObjectImageAnimTable_BikeHopSmallSplash
+ .4byte gFieldEffectObjectPicTable_BikeHopSmallSplash
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8156194
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_LongGrass: ; 850CF50
+ obj_tiles gFieldEffectObjectPic_LongGrass_0, 0x80
+ obj_tiles gFieldEffectObjectPic_LongGrass_1, 0x80
+ obj_tiles gFieldEffectObjectPic_LongGrass_2, 0x80
+ obj_tiles gFieldEffectObjectPic_LongGrass_3, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CF70: ; 850CF70
+ obj_image_anim_frame 1, 3
+ obj_image_anim_frame 2, 3
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 3, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 3, 4
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_LongGrass: ; 850CF90
+ .4byte gFieldEffectObjectImageAnim_850CF70
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_LongGrass: ; 850CF94
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_LongGrass
+ .4byte gFieldEffectObjectPicTable_LongGrass
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte unc_grass_tall
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown16: ; 850CFAC
+ obj_tiles gFieldEffectObjectPic_Unknown16_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown16_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown16_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown16_3, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown16_4, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown16_5, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850CFDC: ; 850CFDC
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 5, 8
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown16: ; 850CFF8
+ .4byte gFieldEffectObjectImageAnim_850CFDC
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown16: ; 850CFFC
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown16
+ .4byte gFieldEffectObjectPicTable_Unknown16
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8156194
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown17: ; 850D014
+ obj_tiles gFieldEffectObjectPic_Unknown16_5, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_3, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_4, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_5, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_6, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown17_7, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D05C: ; 850D05C
+ obj_image_anim_frame 0, 10
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 3, 4
+ obj_image_anim_frame 4, 4
+ obj_image_anim_frame 5, 4
+ obj_image_anim_frame 6, 4
+ obj_image_anim_frame 7, 4
+ obj_image_anim_frame 8, 4
+ obj_image_anim_jump 7
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown17: ; 850D084
+ .4byte gFieldEffectObjectImageAnim_850D05C
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown17: ; 850D088
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown17
+ .4byte gFieldEffectObjectPicTable_Unknown17
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81561D0
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown18: ; 850D0A0
+ obj_tiles gFieldEffectObjectPic_Unknown18_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown18_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown18_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown18_3, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D0C0: ; 850D0C0
+ 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_frame 2, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown18: ; 850D0DC
+ .4byte gFieldEffectObjectImageAnim_850D0C0
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown18: ; 850D0E0
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown18
+ .4byte gFieldEffectObjectPicTable_Unknown18
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81561D0
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown19: ; 850D0F8
+ obj_tiles gFieldEffectObjectPic_Unknown19_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown19_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown19_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown19_3, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D118: ; 850D118
+ 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_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown19: ; 850D12C
+ .4byte gFieldEffectObjectImageAnim_850D118
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown19: ; 850D130
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown19
+ .4byte gFieldEffectObjectPicTable_Unknown19
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81561D0
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown29: ; 850D148
+ obj_tiles gFieldEffectObjectPic_Unknown29_0, 0x40
+ obj_tiles gFieldEffectObjectPic_Unknown29_1, 0x40
+ obj_tiles gFieldEffectObjectPic_Unknown29_2, 0x40
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D160: ; 850D160
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 2, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown29: ; 850D170
+ .4byte gFieldEffectObjectImageAnim_850D160
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown29: ; 850D174
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x8
+ .4byte gFieldEffectObjectImageAnimTable_Unknown29
+ .4byte gFieldEffectObjectPicTable_Unknown29
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81559BC
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown20: ; 850D18C
+ obj_tiles gFieldEffectObjectPic_Unknown20_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown20_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown20_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown20_3, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D1AC: ; 850D1AC
+ 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_frame 2, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_jump 0
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown20: ; 850D1C8
+ .4byte gFieldEffectObjectImageAnim_850D1AC
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown20: ; 850D1CC
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown20
+ .4byte gFieldEffectObjectPicTable_Unknown20
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81561D0
+
+ .align 2, 0
+
+gFieldEffectObjectRotScalAnim_850D1E4: ; 850D1E4
+ obj_rot_scal_anim_frame 0xFF00, 0x100, -128, 0
+ obj_rot_scal_anim_frame 0x1, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0xFFFF, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0xFFFF, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0x1, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_jump 1
+
+ .align 2, 0
+
+gFieldEffectObjectRotScalAnim_850D234: ; 850D234
+ obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
+ obj_rot_scal_anim_frame 0xFFFF, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0x1, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0x1, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_frame 0xFFFF, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 8
+ obj_rot_scal_anim_jump 1
+
+ .align 2, 0
+
+gFieldEffectObjectRotScalAnimTable_Unknown21: ; 850D284
+ .4byte gFieldEffectObjectRotScalAnim_850D1E4
+ .4byte gFieldEffectObjectRotScalAnim_850D234
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown21: ; 850D28C
+ .2byte 0x0 ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gDefaultOamAttributes
+ .4byte gDummyObjectImageAnimTable
+ .4byte NULL
+ .4byte gFieldEffectObjectRotScalAnimTable_Unknown21
+ .4byte nullsub_12
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_BerryTreeGrowthSparkle: ; 850D2A4
+ obj_tiles gFieldEffectObjectPic_BerryTreeGrowthSparkle_0, 0x80
+ obj_tiles gFieldEffectObjectPic_BerryTreeGrowthSparkle_1, 0x80
+ obj_tiles gFieldEffectObjectPic_BerryTreeGrowthSparkle_2, 0x80
+ obj_tiles gFieldEffectObjectPic_BerryTreeGrowthSparkle_3, 0x80
+ obj_tiles gFieldEffectObjectPic_BerryTreeGrowthSparkle_4, 0x80
+ obj_tiles gFieldEffectObjectPic_BerryTreeGrowthSparkle_5, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D2D4: ; 850D2D4
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 5, 8
+ obj_image_anim_loop 0
+ 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_frame 4, 4
+ obj_image_anim_frame 5, 4
+ obj_image_anim_loop 3
+ obj_image_anim_frame 0, 8
+ obj_image_anim_frame 1, 8
+ obj_image_anim_frame 2, 8
+ obj_image_anim_frame 3, 8
+ obj_image_anim_frame 4, 8
+ obj_image_anim_frame 5, 8
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle: ; 850D328
+ .4byte gFieldEffectObjectImageAnim_850D2D4
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_BerryTreeGrowthSparkle: ; 850D32C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_BerryTreeGrowthSparkle
+ .4byte gFieldEffectObjectPicTable_BerryTreeGrowthSparkle
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_81561D0
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_TreeDisguise: ; 850D344
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_0, 0x100
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_1, 0x100
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_2, 0x100
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_3, 0x100
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_4, 0x100
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_5, 0x100
+ obj_tiles gFieldEffectObjectPic_TreeDisguise_6, 0x100
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D37C: ; 850D37C
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D384: ; 850D384
+ 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_frame 4, 4
+ obj_image_anim_frame 5, 4
+ obj_image_anim_frame 6, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_TreeDisguise: ; 850D3A4
+ .4byte gFieldEffectObjectImageAnim_850D37C
+ .4byte gFieldEffectObjectImageAnim_850D384
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_TreeDisguise: ; 850D3AC
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_16x32
+ .4byte gFieldEffectObjectImageAnimTable_TreeDisguise
+ .4byte gFieldEffectObjectPicTable_TreeDisguise
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155C88
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_MountainDisguise: ; 850D3C4
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_0, 0x100
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_1, 0x100
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_2, 0x100
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_3, 0x100
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_4, 0x100
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_5, 0x100
+ obj_tiles gFieldEffectObjectPic_MountainDisguise_6, 0x100
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D3FC: ; 850D3FC
+ obj_image_anim_frame 0, 16
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D404: ; 850D404
+ 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_frame 4, 4
+ obj_image_anim_frame 5, 4
+ obj_image_anim_frame 6, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_MountainDisguise: ; 850D424
+ .4byte gFieldEffectObjectImageAnim_850D3FC
+ .4byte gFieldEffectObjectImageAnim_850D404
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_MountainDisguise: ; 850D42C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_16x32
+ .4byte gFieldEffectObjectImageAnimTable_MountainDisguise
+ .4byte gFieldEffectObjectPicTable_MountainDisguise
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155C88
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_SandDisguisePlaceholder: ; 850D444
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_0, 0x100
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_1, 0x100
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_2, 0x100
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_3, 0x100
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_4, 0x100
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_5, 0x100
+ obj_tiles gFieldEffectObjectPic_SandDisguisePlaceholder_6, 0x100
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_SandDisguisePlaceholder: ; 850D47C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_16x32
+ .4byte gFieldEffectObjectImageAnimTable_TreeDisguise
+ .4byte gFieldEffectObjectPicTable_SandDisguisePlaceholder
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155C88
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Bird: ; 850D494
+ obj_tiles gFieldEffectObjectPic_Bird, 0x200
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D49C: ; 850D49C
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Bird: ; 850D4A4
+ .4byte gFieldEffectObjectImageAnim_850D49C
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Bird: ; 850D4A8
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_32x32
+ .4byte gFieldEffectObjectImageAnimTable_Bird
+ .4byte gFieldEffectObjectPicTable_Bird
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte nullsub_12
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_ShortGrass: ; 850D4C0
+ obj_tiles gFieldEffectObjectPic_ShortGrass_0, 0x80
+ obj_tiles gFieldEffectObjectPic_ShortGrass_1, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D4D0: ; 850D4D0
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_ShortGrass: ; 850D4DC
+ .4byte gFieldEffectObjectImageAnim_850D4D0
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_ShortGrass: ; 850D4E0
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_ShortGrass
+ .4byte gFieldEffectObjectPicTable_ShortGrass
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8154A10
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_HotSpringsWater: ; 850D4F8
+ obj_tiles gFieldEffectObjectPic_HotSpringsWater, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D500: ; 850D500
+ obj_image_anim_frame 0, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_HotSpringsWater: ; 850D508
+ .4byte gFieldEffectObjectImageAnim_850D500
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_HotSpringsWater: ; 850D50C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1005 ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_HotSpringsWater
+ .4byte gFieldEffectObjectPicTable_HotSpringsWater
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155158
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_JumpOutOfAsh: ; 850D524
+ obj_tiles gFieldEffectObjectPic_JumpOutOfAsh_0, 0x80
+ obj_tiles gFieldEffectObjectPic_JumpOutOfAsh_1, 0x80
+ obj_tiles gFieldEffectObjectPic_JumpOutOfAsh_2, 0x80
+ obj_tiles gFieldEffectObjectPic_JumpOutOfAsh_3, 0x80
+ obj_tiles gFieldEffectObjectPic_JumpOutOfAsh_4, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D54C: ; 850D54C
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_frame 2, 6
+ obj_image_anim_frame 3, 6
+ obj_image_anim_frame 4, 6
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_JumpOutOfAsh: ; 850D564
+ .4byte gFieldEffectObjectImageAnim_850D54C
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_JumpOutOfAsh: ; 850D568
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x100D ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_JumpOutOfAsh
+ .4byte gFieldEffectObjectPicTable_JumpOutOfAsh
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_80B7CAC
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo2: ; 850D580
+ obj_pal gFieldEffectObjectPalette2, 0x100D
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown33: ; 850D588
+ obj_tiles gFieldEffectObjectPic_Unknown33_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown33_1, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown33_2, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown33_3, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown33_4, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D5B0: ; 850D5B0
+ obj_image_anim_frame 0, 6
+ obj_image_anim_frame 1, 6
+ obj_image_anim_frame 2, 6
+ obj_image_anim_frame 3, 6
+ obj_image_anim_frame 4, 6
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown33: ; 850D5C8
+ .4byte gFieldEffectObjectImageAnim_850D5B0
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown33: ; 850D5CC
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x100D ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown33
+ .4byte gFieldEffectObjectPicTable_Unknown33
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_80B7A58
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Bubbles: ; 850D5E4
+ obj_tiles gFieldEffectObjectPic_Bubbles_0, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_1, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_2, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_3, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_4, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_5, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_6, 0x100
+ obj_tiles gFieldEffectObjectPic_Bubbles_7, 0x100
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D624: ; 850D624
+ obj_image_anim_frame 0, 4
+ obj_image_anim_frame 1, 4
+ obj_image_anim_frame 2, 4
+ obj_image_anim_frame 3, 6
+ obj_image_anim_frame 4, 6
+ obj_image_anim_frame 5, 4
+ obj_image_anim_frame 6, 4
+ obj_image_anim_frame 7, 4
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Bubbles: ; 850D648
+ .4byte gFieldEffectObjectImageAnim_850D624
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Bubbles: ; 850D64C
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x1004 ; palette tag
+ .4byte gFieldObjectBaseOam_16x32
+ .4byte gFieldEffectObjectImageAnimTable_Bubbles
+ .4byte gFieldEffectObjectPicTable_Bubbles
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155AEC
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Unknown35: ; 850D664
+ obj_tiles gFieldEffectObjectPic_Unknown35_0, 0x80
+ obj_tiles gFieldEffectObjectPic_Unknown35_1, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D674: ; 850D674
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 1, 5
+ obj_image_anim_frame 0, 5
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Unknown35: ; 850D684
+ .4byte gFieldEffectObjectImageAnim_850D674
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Unknown35: ; 850D688
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0x100F ; palette tag
+ .4byte gFieldObjectBaseOam_16x16
+ .4byte gFieldEffectObjectImageAnimTable_Unknown35
+ .4byte gFieldEffectObjectPicTable_Unknown35
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155E50
+
+ .align 2, 0
+
+gFieldEffectObjectPaletteInfo3: ; 850D6A0
+ obj_pal gFieldEffectObjectPalette3, 0x100F
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnim_850D6A8: ; 850D6A8
+ obj_image_anim_frame 0, 1
+ obj_image_anim_end
+
+ .align 2, 0
+
+gFieldEffectObjectImageAnimTable_Rayquaza: ; 850D6B0
+ .4byte gFieldEffectObjectImageAnim_850D6A8
+
+ .align 2, 0
+
+gFieldEffectObjectPicTable_Rayquaza: ; 850D6B4
+ obj_tiles gFieldObjectPic_Rayquaza_0, 0x200
+
+ .align 2, 0
+
+gFieldEffectObjectTemplate_Rayquaza: ; 850D6BC
+ .2byte 0xFFFF ; tiles tag
+ .2byte 0xFFFF ; palette tag
+ .4byte gFieldObjectBaseOam_32x32
+ .4byte gFieldEffectObjectImageAnimTable_Rayquaza
+ .4byte gFieldEffectObjectPicTable_Rayquaza
+ .4byte gDummyObjectRotScalAnimTable
+ .4byte sub_8155F80
diff --git a/data/graphics/field_objects/field_object_graphics.s b/data/graphics/field_objects/field_object_graphics.s
index 495880e4b..981ec2675 100644
--- a/data/graphics/field_objects/field_object_graphics.s
+++ b/data/graphics/field_objects/field_object_graphics.s
@@ -5707,7 +5707,35 @@ gFieldObjectPic_SSTidal: ; 84E93F8
gFieldObjectPalette21: ; 84E9B78
.incbin "data/graphics/field_objects/palettes/field_object_palette_21.gbapal"
- .incbin "base_emerald.gba", 0x4e9b98, 0x300
+ .align 2, 0
+
+gFieldEffectObjectPic_BerryTreeGrowthSparkle_0: ; 84E9B98
+ .incbin "data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BerryTreeGrowthSparkle_1: ; 84E9C18
+ .incbin "data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BerryTreeGrowthSparkle_2: ; 84E9C98
+ .incbin "data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BerryTreeGrowthSparkle_3: ; 84E9D18
+ .incbin "data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BerryTreeGrowthSparkle_4: ; 84E9D98
+ .incbin "data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BerryTreeGrowthSparkle_5: ; 84E9E18
+ .incbin "data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/5.4bpp"
.align 2, 0
@@ -6624,7 +6652,20 @@ gFieldObjectPic_TamatoBerryTree_4: ; 84F5218
gFieldObjectPic_TamatoBerryTree_5: ; 84F5318
.incbin "data/graphics/field_objects/pics/berry_trees/tamato/5.4bpp"
- .incbin "base_emerald.gba", 0x4f5418, 0x600
+ .align 2, 0
+
+gFieldEffectObjectPic_SurfBlob_0: ; 84F5418
+ .incbin "data/graphics/field_objects/pics/effects/surf_blob/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SurfBlob_1: ; 84F5618
+ .incbin "data/graphics/field_objects/pics/effects/surf_blob/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SurfBlob_2: ; 84F5818
+ .incbin "data/graphics/field_objects/pics/effects/surf_blob/2.4bpp"
.align 2, 0
@@ -6671,7 +6712,687 @@ gFieldObjectPalette12: ; 84F6818
gFieldObjectPalette13: ; 84F6838
.incbin "data/graphics/field_objects/palettes/field_object_palette_13.gbapal"
- .incbin "base_emerald.gba", 0x4f6858, 0x54a0
+ .align 2, 0
+
+gFieldEffectObjectPic_ShadowSmall: ; 84F6858
+ .incbin "data/graphics/field_objects/pics/effects/shadow_small.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_ShadowMedium: ; 84F6878
+ .incbin "data/graphics/field_objects/pics/effects/shadow_medium.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_ShadowLarge: ; 84F68B8
+ .incbin "data/graphics/field_objects/pics/effects/shadow_large.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_ShadowExtraLarge: ; 84F6938
+ .incbin "data/graphics/field_objects/pics/effects/shadow_extra_large.4bpp"
+
+ .incbin "base_emerald.gba", 0x4f6d38, 0x160
+
+ .align 2, 0
+
+gFieldEffectObjectPalette6: ; 84F6E98
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_06.gbapal"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ripple_0: ; 84F6EB8
+ .incbin "data/graphics/field_objects/pics/effects/ripple/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ripple_1: ; 84F6F38
+ .incbin "data/graphics/field_objects/pics/effects/ripple/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ripple_2: ; 84F6FB8
+ .incbin "data/graphics/field_objects/pics/effects/ripple/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ripple_3: ; 84F7038
+ .incbin "data/graphics/field_objects/pics/effects/ripple/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ripple_4: ; 84F70B8
+ .incbin "data/graphics/field_objects/pics/effects/ripple/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ash_0: ; 84F7138
+ .incbin "data/graphics/field_objects/pics/effects/ash/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ash_1: ; 84F71B8
+ .incbin "data/graphics/field_objects/pics/effects/ash/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ash_2: ; 84F7238
+ .incbin "data/graphics/field_objects/pics/effects/ash/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ash_3: ; 84F72B8
+ .incbin "data/graphics/field_objects/pics/effects/ash/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Ash_4: ; 84F7338
+ .incbin "data/graphics/field_objects/pics/effects/ash/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_0: ; 84F73B8
+ .incbin "data/graphics/field_objects/pics/effects/arrow/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_1: ; 84F7438
+ .incbin "data/graphics/field_objects/pics/effects/arrow/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_2: ; 84F74B8
+ .incbin "data/graphics/field_objects/pics/effects/arrow/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_3: ; 84F7538
+ .incbin "data/graphics/field_objects/pics/effects/arrow/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_4: ; 84F75B8
+ .incbin "data/graphics/field_objects/pics/effects/arrow/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_5: ; 84F7638
+ .incbin "data/graphics/field_objects/pics/effects/arrow/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_6: ; 84F76B8
+ .incbin "data/graphics/field_objects/pics/effects/arrow/6.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Arrow_7: ; 84F7738
+ .incbin "data/graphics/field_objects/pics/effects/arrow/7.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPalette0: ; 84F77B8
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_00.gbapal"
+
+ .align 2, 0
+
+gFieldEffectObjectPalette1: ; 84F77D8
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_01.gbapal"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_GroundImpactDust_0: ; 84F77F8
+ .incbin "data/graphics/field_objects/pics/effects/ground_impact_dust/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_GroundImpactDust_1: ; 84F7838
+ .incbin "data/graphics/field_objects/pics/effects/ground_impact_dust/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_GroundImpactDust_2: ; 84F7878
+ .incbin "data/graphics/field_objects/pics/effects/ground_impact_dust/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopTallGrass_0: ; 84F78B8
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_tall_grass/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopTallGrass_1: ; 84F78F8
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_tall_grass/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopTallGrass_2: ; 84F7938
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_tall_grass/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopTallGrass_3: ; 84F7978
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_tall_grass/3.4bpp"
+
+ .incbin "base_emerald.gba", 0x4f79b8, 0x200
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown16_0: ; 84F7BB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_16/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown16_1: ; 84F7C38
+ .incbin "data/graphics/field_objects/pics/effects/unknown_16/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown16_2: ; 84F7CB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_16/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown16_3: ; 84F7D38
+ .incbin "data/graphics/field_objects/pics/effects/unknown_16/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown16_4: ; 84F7DB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_16/4.4bpp"
+
+ .incbin "base_emerald.gba", 0x4f7e38, 0x80
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown16_5: ; 84F7EB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_16/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_0: ; 84F7F38
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_1: ; 84F7FB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_2: ; 84F8038
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_3: ; 84F80B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_4: ; 84F8138
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_5: ; 84F81B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_6: ; 84F8238
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/6.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown17_7: ; 84F82B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_17/7.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown18_0: ; 84F8338
+ .incbin "data/graphics/field_objects/pics/effects/unknown_18/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown18_1: ; 84F83B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_18/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown18_2: ; 84F8438
+ .incbin "data/graphics/field_objects/pics/effects/unknown_18/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown18_3: ; 84F84B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_18/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_LongGrass_0: ; 84F8538
+ .incbin "data/graphics/field_objects/pics/effects/long_grass/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_LongGrass_1: ; 84F85B8
+ .incbin "data/graphics/field_objects/pics/effects/long_grass/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_LongGrass_2: ; 84F8638
+ .incbin "data/graphics/field_objects/pics/effects/long_grass/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_LongGrass_3: ; 84F86B8
+ .incbin "data/graphics/field_objects/pics/effects/long_grass/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TallGrass_0: ; 84F8738
+ .incbin "data/graphics/field_objects/pics/effects/tall_grass/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TallGrass_1: ; 84F87B8
+ .incbin "data/graphics/field_objects/pics/effects/tall_grass/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TallGrass_2: ; 84F8838
+ .incbin "data/graphics/field_objects/pics/effects/tall_grass/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TallGrass_3: ; 84F88B8
+ .incbin "data/graphics/field_objects/pics/effects/tall_grass/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TallGrass_4: ; 84F8938
+ .incbin "data/graphics/field_objects/pics/effects/tall_grass/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_ShortGrass_0: ; 84F89B8
+ .incbin "data/graphics/field_objects/pics/effects/short_grass/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_ShortGrass_1: ; 84F8A38
+ .incbin "data/graphics/field_objects/pics/effects/short_grass/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandFootprints_0: ; 84F8AB8
+ .incbin "data/graphics/field_objects/pics/effects/sand_footprints/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandFootprints_1: ; 84F8B38
+ .incbin "data/graphics/field_objects/pics/effects/sand_footprints/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_DeepSandFootprints_0: ; 84F8BB8
+ .incbin "data/graphics/field_objects/pics/effects/deep_sand_footprints/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_DeepSandFootprints_1: ; 84F8C38
+ .incbin "data/graphics/field_objects/pics/effects/deep_sand_footprints/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeTireTracks_0: ; 84F8CB8
+ .incbin "data/graphics/field_objects/pics/effects/bike_tire_tracks/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeTireTracks_1: ; 84F8D38
+ .incbin "data/graphics/field_objects/pics/effects/bike_tire_tracks/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeTireTracks_2: ; 84F8DB8
+ .incbin "data/graphics/field_objects/pics/effects/bike_tire_tracks/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeTireTracks_3: ; 84F8E38
+ .incbin "data/graphics/field_objects/pics/effects/bike_tire_tracks/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown19_0: ; 84F8EB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_19/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown19_1: ; 84F8F38
+ .incbin "data/graphics/field_objects/pics/effects/unknown_19/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown19_2: ; 84F8FB8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_19/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown19_3: ; 84F9038
+ .incbin "data/graphics/field_objects/pics/effects/unknown_19/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown29_0: ; 84F90B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_29/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown29_1: ; 84F90F8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_29/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown29_2: ; 84F9138
+ .incbin "data/graphics/field_objects/pics/effects/unknown_29/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopBigSplash_0: ; 84F9178
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_big_splash/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopBigSplash_1: ; 84F91F8
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_big_splash/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopBigSplash_2: ; 84F9278
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_big_splash/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopBigSplash_3: ; 84F92F8
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_big_splash/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Splash_0: ; 84F9378
+ .incbin "data/graphics/field_objects/pics/effects/splash/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Splash_1: ; 84F93B8
+ .incbin "data/graphics/field_objects/pics/effects/splash/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopSmallSplash_0: ; 84F93F8
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_small_splash/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopSmallSplash_1: ; 84F9438
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_small_splash/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_BikeHopSmallSplash_2: ; 84F9478
+ .incbin "data/graphics/field_objects/pics/effects/bike_hop_small_splash/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown20_0: ; 84F94B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_20/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown20_1: ; 84F9538
+ .incbin "data/graphics/field_objects/pics/effects/unknown_20/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown20_2: ; 84F95B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_20/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown20_3: ; 84F9638
+ .incbin "data/graphics/field_objects/pics/effects/unknown_20/3.4bpp"
+
+ .align 2, 0
+
+; unreferenced
+gFieldEffectObjectPic_Unknown20_4: ; 84F96B8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_20/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_0: ; 84F9738
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_1: ; 84F9838
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_2: ; 84F9938
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_3: ; 84F9A38
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_4: ; 84F9B38
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_5: ; 84F9C38
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_TreeDisguise_6: ; 84F9D38
+ .incbin "data/graphics/field_objects/pics/effects/tree_disguise/6.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_0: ; 84F9E38
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_1: ; 84F9F38
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_2: ; 84FA038
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_3: ; 84FA138
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_4: ; 84FA238
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_5: ; 84FA338
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_MountainDisguise_6: ; 84FA438
+ .incbin "data/graphics/field_objects/pics/effects/mountain_disguise/6.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_0: ; 84FA538
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_1: ; 84FA638
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_2: ; 84FA738
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_3: ; 84FA838
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_4: ; 84FA938
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_5: ; 84FAA38
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_SandDisguisePlaceholder_6: ; 84FAB38
+ .incbin "data/graphics/field_objects/pics/effects/sand_disguise_placeholder/6.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_HotSpringsWater: ; 84FAC38
+ .incbin "data/graphics/field_objects/pics/effects/hot_springs_water.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPalette2: ; 84FACB8
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_02.gbapal"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_JumpOutOfAsh_0: ; 84FACD8
+ .incbin "data/graphics/field_objects/pics/effects/jump_out_of_ash/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_JumpOutOfAsh_1: ; 84FAD58
+ .incbin "data/graphics/field_objects/pics/effects/jump_out_of_ash/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_JumpOutOfAsh_2: ; 84FADD8
+ .incbin "data/graphics/field_objects/pics/effects/jump_out_of_ash/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_JumpOutOfAsh_3: ; 84FAE58
+ .incbin "data/graphics/field_objects/pics/effects/jump_out_of_ash/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_JumpOutOfAsh_4: ; 84FAED8
+ .incbin "data/graphics/field_objects/pics/effects/jump_out_of_ash/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown33_0: ; 84FAF58
+ .incbin "data/graphics/field_objects/pics/effects/unknown_33/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown33_1: ; 84FAFD8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_33/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown33_2: ; 84FB058
+ .incbin "data/graphics/field_objects/pics/effects/unknown_33/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown33_3: ; 84FB0D8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_33/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown33_4: ; 84FB158
+ .incbin "data/graphics/field_objects/pics/effects/unknown_33/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_0: ; 84FB1D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_1: ; 84FB2D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_2: ; 84FB3D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/2.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_3: ; 84FB4D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/3.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_4: ; 84FB5D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/4.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_5: ; 84FB6D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/5.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_6: ; 84FB7D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/6.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bubbles_7: ; 84FB8D8
+ .incbin "data/graphics/field_objects/pics/effects/bubbles/7.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown35_0: ; 84FB9D8
+ .incbin "data/graphics/field_objects/pics/effects/unknown_35/0.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Unknown35_1: ; 84FBA58
+ .incbin "data/graphics/field_objects/pics/effects/unknown_35/1.4bpp"
+
+ .align 2, 0
+
+gFieldEffectObjectPalette3: ; 84FBAD8
+ .incbin "data/graphics/field_objects/palettes/field_effect_object_palette_03.gbapal"
+
+ .align 2, 0
+
+gFieldEffectObjectPic_Bird: ; 84FBAF8
+ .incbin "data/graphics/field_objects/pics/effects/bird.4bpp"
.align 2, 0
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_00.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_00.pal
new file mode 100644
index 000000000..bbc9c778b
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_00.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 172 238
+246 230 197
+238 213 180
+222 180 148
+255 255 255
+222 230 238
+189 205 230
+156 180 222
+98 156 180
+255 189 230
+0 0 0
+238 230 164
+222 205 131
+213 180 106
+205 156 82
+0 0 0
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_01.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_01.pal
new file mode 100644
index 000000000..044e1c987
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_01.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 189 238
+180 255 131
+131 197 98
+57 139 49
+74 90 8
+49 65 0
+98 172 238
+98 172 197
+139 205 246
+148 230 255
+148 131 98
+180 172 148
+164 213 197
+115 197 164
+65 180 131
+24 164 106
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_02.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_02.pal
new file mode 100644
index 000000000..e3a76c035
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_02.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+98 98 98
+213 213 139
+172 172 90
+139 139 65
+230 246 205
+189 238 180
+131 222 180
+98 172 139
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_03.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_03.pal
new file mode 100644
index 000000000..b170eb1f5
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_03.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+131 172 74
+255 255 255
+205 246 255
+156 213 255
+74 197 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
+255 0 255
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_04.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_04.pal
new file mode 100644
index 000000000..2dddefa5f
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_04.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+156 180 172
+106 115 115
+57 57 57
+156 24 24
+255 0 0
+255 123 123
+255 255 255
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_05.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_05.pal
new file mode 100644
index 000000000..468d7212c
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_05.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+49 57 74
+172 164 255
+131 123 230
+106 98 172
+82 74 180
+82 74 98
+246 255 255
+115 172 65
+123 189 74
+148 205 90
+98 90 148
+139 156 213
+57 57 106
+148 205 90
+0 255 0
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_06.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_06.pal
new file mode 100644
index 000000000..e4a49a4b9
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_06.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+180 255 82
+98 205 8
+41 115 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
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_07.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_07.pal
new file mode 100644
index 000000000..6d9e03c67
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_07.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+0 0 0
+255 255 255
+213 213 213
+189 189 189
+164 164 164
+131 131 139
+0 0 0
+0 0 0
+0 0 0
+238 213 205
+222 180 164
+189 148 139
+156 115 115
+131 90 90
+98 65 82
+0 0 0
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_08.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_08.pal
new file mode 100644
index 000000000..4c41030f6
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_08.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+24 41 82
+180 255 131
+131 197 98
+57 139 49
+57 82 0
+222 148 115
+106 90 90
+164 98 90
+65 57 49
+255 197 148
+222 106 98
+205 65 82
+164 213 197
+115 197 164
+65 180 131
+24 164 106
diff --git a/data/graphics/field_objects/palettes/field_effect_object_palette_10.pal b/data/graphics/field_objects/palettes/field_effect_object_palette_10.pal
new file mode 100644
index 000000000..6190709ed
--- /dev/null
+++ b/data/graphics/field_objects/palettes/field_effect_object_palette_10.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 172 238
+246 8 0
+238 213 180
+222 180 148
+255 255 255
+222 230 238
+189 205 230
+156 180 222
+98 156 180
+148 0 0
+197 197 197
+238 230 164
+222 205 131
+213 180 106
+205 156 82
+0 0 0
diff --git a/data/graphics/field_objects/pics/effects/arrow/0.png b/data/graphics/field_objects/pics/effects/arrow/0.png
new file mode 100644
index 000000000..3f06be064
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/1.png b/data/graphics/field_objects/pics/effects/arrow/1.png
new file mode 100644
index 000000000..87bbd99ff
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/2.png b/data/graphics/field_objects/pics/effects/arrow/2.png
new file mode 100644
index 000000000..f9abae71d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/3.png b/data/graphics/field_objects/pics/effects/arrow/3.png
new file mode 100644
index 000000000..58d43a6d8
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/4.png b/data/graphics/field_objects/pics/effects/arrow/4.png
new file mode 100644
index 000000000..ef95afd9e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/5.png b/data/graphics/field_objects/pics/effects/arrow/5.png
new file mode 100644
index 000000000..71b7e0c27
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/6.png b/data/graphics/field_objects/pics/effects/arrow/6.png
new file mode 100644
index 000000000..53c33f44c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/6.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/arrow/7.png b/data/graphics/field_objects/pics/effects/arrow/7.png
new file mode 100644
index 000000000..bda7862da
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/arrow/7.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ash/0.png b/data/graphics/field_objects/pics/effects/ash/0.png
new file mode 100644
index 000000000..96a4b8f2a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ash/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ash/1.png b/data/graphics/field_objects/pics/effects/ash/1.png
new file mode 100644
index 000000000..8d973518d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ash/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ash/2.png b/data/graphics/field_objects/pics/effects/ash/2.png
new file mode 100644
index 000000000..eccd2e02d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ash/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ash/3.png b/data/graphics/field_objects/pics/effects/ash/3.png
new file mode 100644
index 000000000..5ad0b8e5a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ash/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ash/4.png b/data/graphics/field_objects/pics/effects/ash/4.png
new file mode 100644
index 000000000..7208f6a5b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ash/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/0.png b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/0.png
new file mode 100644
index 000000000..f3e751d3a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/1.png b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/1.png
new file mode 100644
index 000000000..d48fd1234
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/2.png b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/2.png
new file mode 100644
index 000000000..9a9abf73e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/3.png b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/3.png
new file mode 100644
index 000000000..857abfb0b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/4.png b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/4.png
new file mode 100644
index 000000000..bce9df4c7
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/5.png b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/5.png
new file mode 100644
index 000000000..4c757bf6b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/berry_tree_growth_sparkle/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_big_splash/0.png b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/0.png
new file mode 100644
index 000000000..420663da8
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_big_splash/1.png b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/1.png
new file mode 100644
index 000000000..72ca8fa1c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_big_splash/2.png b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/2.png
new file mode 100644
index 000000000..96c224cdf
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_big_splash/3.png b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/3.png
new file mode 100644
index 000000000..b549ea78c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_big_splash/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_small_splash/0.png b/data/graphics/field_objects/pics/effects/bike_hop_small_splash/0.png
new file mode 100644
index 000000000..b5cccb306
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_small_splash/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_small_splash/1.png b/data/graphics/field_objects/pics/effects/bike_hop_small_splash/1.png
new file mode 100644
index 000000000..548198c09
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_small_splash/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_small_splash/2.png b/data/graphics/field_objects/pics/effects/bike_hop_small_splash/2.png
new file mode 100644
index 000000000..e8b86dfcb
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_small_splash/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/0.png b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/0.png
new file mode 100644
index 000000000..d2768ec0c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/1.png b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/1.png
new file mode 100644
index 000000000..7816f4d00
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/2.png b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/2.png
new file mode 100644
index 000000000..00c51d276
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/3.png b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/3.png
new file mode 100644
index 000000000..210382b93
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_hop_tall_grass/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_tire_tracks/0.png b/data/graphics/field_objects/pics/effects/bike_tire_tracks/0.png
new file mode 100644
index 000000000..d4fd46f9b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_tire_tracks/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_tire_tracks/1.png b/data/graphics/field_objects/pics/effects/bike_tire_tracks/1.png
new file mode 100644
index 000000000..9095cdd74
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_tire_tracks/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_tire_tracks/2.png b/data/graphics/field_objects/pics/effects/bike_tire_tracks/2.png
new file mode 100644
index 000000000..56907c153
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_tire_tracks/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bike_tire_tracks/3.png b/data/graphics/field_objects/pics/effects/bike_tire_tracks/3.png
new file mode 100644
index 000000000..397bfb418
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bike_tire_tracks/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bird.png b/data/graphics/field_objects/pics/effects/bird.png
new file mode 100644
index 000000000..3147f98f5
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bird.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/0.png b/data/graphics/field_objects/pics/effects/bubbles/0.png
new file mode 100644
index 000000000..b71b193ae
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/1.png b/data/graphics/field_objects/pics/effects/bubbles/1.png
new file mode 100644
index 000000000..0bd744ef2
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/2.png b/data/graphics/field_objects/pics/effects/bubbles/2.png
new file mode 100644
index 000000000..4241e8f24
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/3.png b/data/graphics/field_objects/pics/effects/bubbles/3.png
new file mode 100644
index 000000000..3b440d9a7
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/4.png b/data/graphics/field_objects/pics/effects/bubbles/4.png
new file mode 100644
index 000000000..de9e66a25
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/5.png b/data/graphics/field_objects/pics/effects/bubbles/5.png
new file mode 100644
index 000000000..54b9d768b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/6.png b/data/graphics/field_objects/pics/effects/bubbles/6.png
new file mode 100644
index 000000000..35c26e633
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/6.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/bubbles/7.png b/data/graphics/field_objects/pics/effects/bubbles/7.png
new file mode 100644
index 000000000..6323e0cc5
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/bubbles/7.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/deep_sand_footprints/0.png b/data/graphics/field_objects/pics/effects/deep_sand_footprints/0.png
new file mode 100644
index 000000000..c449b223e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/deep_sand_footprints/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/deep_sand_footprints/1.png b/data/graphics/field_objects/pics/effects/deep_sand_footprints/1.png
new file mode 100644
index 000000000..2a1d5cce5
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/deep_sand_footprints/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ground_impact_dust/0.png b/data/graphics/field_objects/pics/effects/ground_impact_dust/0.png
new file mode 100644
index 000000000..57e2e8898
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ground_impact_dust/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ground_impact_dust/1.png b/data/graphics/field_objects/pics/effects/ground_impact_dust/1.png
new file mode 100644
index 000000000..d91554b6e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ground_impact_dust/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ground_impact_dust/2.png b/data/graphics/field_objects/pics/effects/ground_impact_dust/2.png
new file mode 100644
index 000000000..8d0235141
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ground_impact_dust/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/hot_springs_water.png b/data/graphics/field_objects/pics/effects/hot_springs_water.png
new file mode 100644
index 000000000..1b6550b19
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/hot_springs_water.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/jump_out_of_ash/0.png b/data/graphics/field_objects/pics/effects/jump_out_of_ash/0.png
new file mode 100644
index 000000000..50f9796b2
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/jump_out_of_ash/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/jump_out_of_ash/1.png b/data/graphics/field_objects/pics/effects/jump_out_of_ash/1.png
new file mode 100644
index 000000000..685d31fac
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/jump_out_of_ash/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/jump_out_of_ash/2.png b/data/graphics/field_objects/pics/effects/jump_out_of_ash/2.png
new file mode 100644
index 000000000..9f11f176f
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/jump_out_of_ash/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/jump_out_of_ash/3.png b/data/graphics/field_objects/pics/effects/jump_out_of_ash/3.png
new file mode 100644
index 000000000..124581f75
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/jump_out_of_ash/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/jump_out_of_ash/4.png b/data/graphics/field_objects/pics/effects/jump_out_of_ash/4.png
new file mode 100644
index 000000000..6e584a4dc
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/jump_out_of_ash/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/long_grass/0.png b/data/graphics/field_objects/pics/effects/long_grass/0.png
new file mode 100644
index 000000000..4a02b3d17
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/long_grass/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/long_grass/1.png b/data/graphics/field_objects/pics/effects/long_grass/1.png
new file mode 100644
index 000000000..97f652c6d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/long_grass/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/long_grass/2.png b/data/graphics/field_objects/pics/effects/long_grass/2.png
new file mode 100644
index 000000000..313226f8b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/long_grass/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/long_grass/3.png b/data/graphics/field_objects/pics/effects/long_grass/3.png
new file mode 100644
index 000000000..0565b4069
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/long_grass/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/0.png b/data/graphics/field_objects/pics/effects/mountain_disguise/0.png
new file mode 100644
index 000000000..104056e46
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/1.png b/data/graphics/field_objects/pics/effects/mountain_disguise/1.png
new file mode 100644
index 000000000..4b2d35963
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/2.png b/data/graphics/field_objects/pics/effects/mountain_disguise/2.png
new file mode 100644
index 000000000..e2ea3b855
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/3.png b/data/graphics/field_objects/pics/effects/mountain_disguise/3.png
new file mode 100644
index 000000000..8f0a1be2c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/4.png b/data/graphics/field_objects/pics/effects/mountain_disguise/4.png
new file mode 100644
index 000000000..8fd4df410
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/5.png b/data/graphics/field_objects/pics/effects/mountain_disguise/5.png
new file mode 100644
index 000000000..a364b234d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/mountain_disguise/6.png b/data/graphics/field_objects/pics/effects/mountain_disguise/6.png
new file mode 100644
index 000000000..2644aa9f1
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/mountain_disguise/6.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ripple/0.png b/data/graphics/field_objects/pics/effects/ripple/0.png
new file mode 100644
index 000000000..24055c7d2
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ripple/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ripple/1.png b/data/graphics/field_objects/pics/effects/ripple/1.png
new file mode 100644
index 000000000..a47853925
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ripple/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ripple/2.png b/data/graphics/field_objects/pics/effects/ripple/2.png
new file mode 100644
index 000000000..6670cb779
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ripple/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ripple/3.png b/data/graphics/field_objects/pics/effects/ripple/3.png
new file mode 100644
index 000000000..122df1940
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ripple/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/ripple/4.png b/data/graphics/field_objects/pics/effects/ripple/4.png
new file mode 100644
index 000000000..f4f79afe2
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/ripple/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/0.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/0.png
new file mode 100644
index 000000000..df242de2f
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/1.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/1.png
new file mode 100644
index 000000000..2e993b30e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/2.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/2.png
new file mode 100644
index 000000000..3d6864e41
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/3.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/3.png
new file mode 100644
index 000000000..690110a8c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/4.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/4.png
new file mode 100644
index 000000000..caa568eac
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/5.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/5.png
new file mode 100644
index 000000000..0d0bd9886
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/6.png b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/6.png
new file mode 100644
index 000000000..ed40527d0
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_disguise_placeholder/6.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_footprints/0.png b/data/graphics/field_objects/pics/effects/sand_footprints/0.png
new file mode 100644
index 000000000..3cc79aa18
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_footprints/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/sand_footprints/1.png b/data/graphics/field_objects/pics/effects/sand_footprints/1.png
new file mode 100644
index 000000000..80d33783b
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/sand_footprints/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/shadow_extra_large.png b/data/graphics/field_objects/pics/effects/shadow_extra_large.png
new file mode 100644
index 000000000..41b37d8fb
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/shadow_extra_large.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/shadow_large.png b/data/graphics/field_objects/pics/effects/shadow_large.png
new file mode 100644
index 000000000..f0e76cd7f
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/shadow_large.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/shadow_medium.png b/data/graphics/field_objects/pics/effects/shadow_medium.png
new file mode 100644
index 000000000..7bf9afef7
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/shadow_medium.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/shadow_small.png b/data/graphics/field_objects/pics/effects/shadow_small.png
new file mode 100644
index 000000000..6c13c1b86
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/shadow_small.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/short_grass/0.png b/data/graphics/field_objects/pics/effects/short_grass/0.png
new file mode 100644
index 000000000..a5d5181db
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/short_grass/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/short_grass/1.png b/data/graphics/field_objects/pics/effects/short_grass/1.png
new file mode 100644
index 000000000..17a62968a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/short_grass/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/splash/0.png b/data/graphics/field_objects/pics/effects/splash/0.png
new file mode 100644
index 000000000..2b29c76ae
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/splash/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/splash/1.png b/data/graphics/field_objects/pics/effects/splash/1.png
new file mode 100644
index 000000000..180721342
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/splash/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/surf_blob/0.png b/data/graphics/field_objects/pics/effects/surf_blob/0.png
new file mode 100644
index 000000000..c4a14e052
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/surf_blob/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/surf_blob/1.png b/data/graphics/field_objects/pics/effects/surf_blob/1.png
new file mode 100644
index 000000000..25fd5ad92
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/surf_blob/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/surf_blob/2.png b/data/graphics/field_objects/pics/effects/surf_blob/2.png
new file mode 100644
index 000000000..532da2611
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/surf_blob/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tall_grass/0.png b/data/graphics/field_objects/pics/effects/tall_grass/0.png
new file mode 100644
index 000000000..00d596b4c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tall_grass/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tall_grass/1.png b/data/graphics/field_objects/pics/effects/tall_grass/1.png
new file mode 100644
index 000000000..0c8bdd84e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tall_grass/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tall_grass/2.png b/data/graphics/field_objects/pics/effects/tall_grass/2.png
new file mode 100644
index 000000000..55d971758
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tall_grass/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tall_grass/3.png b/data/graphics/field_objects/pics/effects/tall_grass/3.png
new file mode 100644
index 000000000..0add11083
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tall_grass/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tall_grass/4.png b/data/graphics/field_objects/pics/effects/tall_grass/4.png
new file mode 100644
index 000000000..ca164d3cc
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tall_grass/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/0.png b/data/graphics/field_objects/pics/effects/tree_disguise/0.png
new file mode 100644
index 000000000..2bce7f9ed
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/1.png b/data/graphics/field_objects/pics/effects/tree_disguise/1.png
new file mode 100644
index 000000000..e29336cd4
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/2.png b/data/graphics/field_objects/pics/effects/tree_disguise/2.png
new file mode 100644
index 000000000..2cca165c5
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/3.png b/data/graphics/field_objects/pics/effects/tree_disguise/3.png
new file mode 100644
index 000000000..85dd30cfd
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/4.png b/data/graphics/field_objects/pics/effects/tree_disguise/4.png
new file mode 100644
index 000000000..8c7821634
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/5.png b/data/graphics/field_objects/pics/effects/tree_disguise/5.png
new file mode 100644
index 000000000..2ffd56fcc
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/tree_disguise/6.png b/data/graphics/field_objects/pics/effects/tree_disguise/6.png
new file mode 100644
index 000000000..bc9333162
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/tree_disguise/6.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_16/0.png b/data/graphics/field_objects/pics/effects/unknown_16/0.png
new file mode 100644
index 000000000..491801c32
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_16/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_16/1.png b/data/graphics/field_objects/pics/effects/unknown_16/1.png
new file mode 100644
index 000000000..f83ca15da
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_16/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_16/2.png b/data/graphics/field_objects/pics/effects/unknown_16/2.png
new file mode 100644
index 000000000..073aa9b7e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_16/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_16/3.png b/data/graphics/field_objects/pics/effects/unknown_16/3.png
new file mode 100644
index 000000000..e7b5c96cf
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_16/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_16/4.png b/data/graphics/field_objects/pics/effects/unknown_16/4.png
new file mode 100644
index 000000000..8972d5d81
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_16/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_16/5.png b/data/graphics/field_objects/pics/effects/unknown_16/5.png
new file mode 100644
index 000000000..d570a9a8d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_16/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/0.png b/data/graphics/field_objects/pics/effects/unknown_17/0.png
new file mode 100644
index 000000000..9c804844e
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/1.png b/data/graphics/field_objects/pics/effects/unknown_17/1.png
new file mode 100644
index 000000000..6628b5820
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/2.png b/data/graphics/field_objects/pics/effects/unknown_17/2.png
new file mode 100644
index 000000000..a5cdcca57
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/3.png b/data/graphics/field_objects/pics/effects/unknown_17/3.png
new file mode 100644
index 000000000..2f9a20019
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/4.png b/data/graphics/field_objects/pics/effects/unknown_17/4.png
new file mode 100644
index 000000000..ce0bc29aa
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/5.png b/data/graphics/field_objects/pics/effects/unknown_17/5.png
new file mode 100644
index 000000000..f92888a3a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/5.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/6.png b/data/graphics/field_objects/pics/effects/unknown_17/6.png
new file mode 100644
index 000000000..7e740a956
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/6.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_17/7.png b/data/graphics/field_objects/pics/effects/unknown_17/7.png
new file mode 100644
index 000000000..25d90e16c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_17/7.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_18/0.png b/data/graphics/field_objects/pics/effects/unknown_18/0.png
new file mode 100644
index 000000000..70b39df59
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_18/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_18/1.png b/data/graphics/field_objects/pics/effects/unknown_18/1.png
new file mode 100644
index 000000000..392298f5a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_18/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_18/2.png b/data/graphics/field_objects/pics/effects/unknown_18/2.png
new file mode 100644
index 000000000..ff418e940
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_18/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_18/3.png b/data/graphics/field_objects/pics/effects/unknown_18/3.png
new file mode 100644
index 000000000..0e1e13438
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_18/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_19/0.png b/data/graphics/field_objects/pics/effects/unknown_19/0.png
new file mode 100644
index 000000000..ef8005066
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_19/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_19/1.png b/data/graphics/field_objects/pics/effects/unknown_19/1.png
new file mode 100644
index 000000000..6fde1a291
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_19/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_19/2.png b/data/graphics/field_objects/pics/effects/unknown_19/2.png
new file mode 100644
index 000000000..c385fd84c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_19/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_19/3.png b/data/graphics/field_objects/pics/effects/unknown_19/3.png
new file mode 100644
index 000000000..084c20314
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_19/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_20/0.png b/data/graphics/field_objects/pics/effects/unknown_20/0.png
new file mode 100644
index 000000000..eec853d53
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_20/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_20/1.png b/data/graphics/field_objects/pics/effects/unknown_20/1.png
new file mode 100644
index 000000000..f4782fc67
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_20/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_20/2.png b/data/graphics/field_objects/pics/effects/unknown_20/2.png
new file mode 100644
index 000000000..416dae69d
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_20/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_20/3.png b/data/graphics/field_objects/pics/effects/unknown_20/3.png
new file mode 100644
index 000000000..3d966e81c
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_20/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_20/4.png b/data/graphics/field_objects/pics/effects/unknown_20/4.png
new file mode 100644
index 000000000..6bbfbca12
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_20/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_29/0.png b/data/graphics/field_objects/pics/effects/unknown_29/0.png
new file mode 100644
index 000000000..87fe91c97
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_29/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_29/1.png b/data/graphics/field_objects/pics/effects/unknown_29/1.png
new file mode 100644
index 000000000..c20fb34bb
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_29/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_29/2.png b/data/graphics/field_objects/pics/effects/unknown_29/2.png
new file mode 100644
index 000000000..def972b20
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_29/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_33/0.png b/data/graphics/field_objects/pics/effects/unknown_33/0.png
new file mode 100644
index 000000000..2241eabd3
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_33/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_33/1.png b/data/graphics/field_objects/pics/effects/unknown_33/1.png
new file mode 100644
index 000000000..5f90405d8
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_33/1.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_33/2.png b/data/graphics/field_objects/pics/effects/unknown_33/2.png
new file mode 100644
index 000000000..3f1c3a76a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_33/2.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_33/3.png b/data/graphics/field_objects/pics/effects/unknown_33/3.png
new file mode 100644
index 000000000..2696f4a5a
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_33/3.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_33/4.png b/data/graphics/field_objects/pics/effects/unknown_33/4.png
new file mode 100644
index 000000000..c2d1785bf
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_33/4.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_35/0.png b/data/graphics/field_objects/pics/effects/unknown_35/0.png
new file mode 100644
index 000000000..c2ae128f7
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_35/0.png
Binary files differ
diff --git a/data/graphics/field_objects/pics/effects/unknown_35/1.png b/data/graphics/field_objects/pics/effects/unknown_35/1.png
new file mode 100644
index 000000000..fe68b19fd
--- /dev/null
+++ b/data/graphics/field_objects/pics/effects/unknown_35/1.png
Binary files differ