summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/rom_800D42C.s6
-rw-r--r--asm/rom_804373C.s231
-rw-r--r--asm/rom_806D7F8.s6
-rw-r--r--asm/smokescreen.s226
-rw-r--r--asm/trade.s4
-rw-r--r--ld_script.txt1
6 files changed, 242 insertions, 232 deletions
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
index fdb390563..bd9b8d666 100644
--- a/asm/rom_800D42C.s
+++ b/asm/rom_800D42C.s
@@ -53325,7 +53325,7 @@ atkAC_remaininghptopower: @ 8028600
movs r2, 0x2C
ldrsh r1, [r1, r2]
movs r2, 0x30
- bl sub_80461D4
+ bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r3, 0
@@ -72968,7 +72968,7 @@ sub_80324F8: @ 80324F8
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -73098,7 +73098,7 @@ unref_sub_8032604: @ 8032604
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s
index 45f358c09..ab3a81e18 100644
--- a/asm/rom_804373C.s
+++ b/asm/rom_804373C.s
@@ -5442,8 +5442,8 @@ _080461C8:
bx r1
thumb_func_end sub_8046188
- thumb_func_start sub_80461D4
-sub_80461D4: @ 80461D4
+ thumb_func_start GetScaledHPFraction
+GetScaledHPFraction: @ 80461D4
push {r4,lr}
lsls r2, 24
lsrs r2, 24
@@ -5465,10 +5465,10 @@ _080461F8:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_80461D4
+ thumb_func_end GetScaledHPFraction
- thumb_func_start sub_8046200
-sub_8046200: @ 8046200
+ thumb_func_start GetHPBarLevel
+GetHPBarLevel: @ 8046200
push {lr}
lsls r0, 16
asrs r0, 16
@@ -5480,7 +5480,7 @@ sub_8046200: @ 8046200
b _0804622E
_08046212:
movs r2, 0x30
- bl sub_80461D4
+ bl GetScaledHPFraction
lsls r0, 24
lsrs r1, r0, 24
movs r0, 0x3
@@ -5495,223 +5495,6 @@ _08046212:
_0804622E:
pop {r1}
bx r1
- thumb_func_end sub_8046200
-
- thumb_func_start sub_8046234
-sub_8046234: @ 8046234
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r5, _0804636C @ =gUnknown_081FAEA4
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08046370 @ =0xffff0000
- cmp r0, r1
- bne _08046266
- adds r0, r5, 0
- bl LoadCompressedObjectPic
- ldr r0, _08046374 @ =gUnknown_081FAEAC
- bl LoadCompressedObjectPalette
-_08046266:
- ldr r0, _08046378 @ =sub_8046388
- bl object_new_hidden_with_callback
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r0, _0804637C @ =gSprites
- adds r5, r0
- strh r4, [r5, 0x30]
- ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
- mov r9, r0
- lsls r6, 16
- asrs r0, r6, 16
- mov r10, r0
- ldr r0, _08046384 @ =0xfff00000
- adds r6, r0
- asrs r6, 16
- lsls r4, r7, 16
- asrs r7, r4, 16
- adds r4, r0
- asrs r4, 16
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0804637C @ =gSprites
- adds r1, r0
- mov r0, r8
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r1, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r4, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r9
- mov r1, r10
- adds r2, r7, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0804637C @ =gSprites
- adds r4, r0
- mov r0, r8
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- adds r0, r4, 0
- bl AnimateSprite
- mov r0, r8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804636C: .4byte gUnknown_081FAEA4
-_08046370: .4byte 0xffff0000
-_08046374: .4byte gUnknown_081FAEAC
-_08046378: .4byte sub_8046388
-_0804637C: .4byte gSprites
-_08046380: .4byte gSpriteTemplate_81FAF0C
-_08046384: .4byte 0xfff00000
- thumb_func_end sub_8046234
-
- thumb_func_start sub_8046388
-sub_8046388: @ 8046388
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463C0
- ldr r0, _080463B4 @ =gUnknown_081FAEA4
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldr r0, _080463B8 @ =gUnknown_081FAEAC
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080463BC
- adds r0, r4, 0
- bl DestroySprite
- b _080463C0
- .align 2, 0
-_080463B4: .4byte gUnknown_081FAEA4
-_080463B8: .4byte gUnknown_081FAEAC
-_080463BC:
- ldr r0, _080463C8 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080463C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080463C8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8046388
-
- thumb_func_start sub_80463CC
-sub_80463CC: @ 80463CC
- push {lr}
- adds r3, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080463F6
- ldr r2, _080463FC @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- subs r1, 0x1
- strh r1, [r0, 0x2E]
- adds r0, r3, 0
- bl DestroySprite
-_080463F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080463FC: .4byte gSprites
- thumb_func_end sub_80463CC
+ thumb_func_end GetHPBarLevel
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s
index 8f95428c3..d28aea9a8 100644
--- a/asm/rom_806D7F8.s
+++ b/asm/rom_806D7F8.s
@@ -19,7 +19,7 @@ sub_806D7F8: @ 806D7F8
asrs r2, 16
adds r0, r1, 0
adds r1, r2, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
movs r2, 0
@@ -1812,7 +1812,7 @@ sub_806E574: @ 806E574
asrs r3, 16
adds r0, r2, 0
adds r1, r3, 0
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r3, r0, 24
adds r4, r3, 0
@@ -4082,7 +4082,7 @@ sub_806F7E8: @ 806F7E8
adds r0, r6, r2
movs r4, 0
ldrsh r0, [r0, r4]
- bl sub_8046200
+ bl GetHPBarLevel
lsls r0, 24
lsrs r2, r0, 24
adds r3, r2, 0
diff --git a/asm/smokescreen.s b/asm/smokescreen.s
new file mode 100644
index 000000000..1c5d9f2e9
--- /dev/null
+++ b/asm/smokescreen.s
@@ -0,0 +1,226 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8046234
+sub_8046234: @ 8046234
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r4, r2, 24
+ ldr r5, _0804636C @ =gUnknown_081FAEA4
+ ldrh r0, [r5, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08046370 @ =0xffff0000
+ cmp r0, r1
+ bne _08046266
+ adds r0, r5, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08046374 @ =gUnknown_081FAEAC
+ bl LoadCompressedObjectPalette
+_08046266:
+ ldr r0, _08046378 @ =sub_8046388
+ bl object_new_hidden_with_callback
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r5, r0
+ strh r4, [r5, 0x30]
+ ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C
+ mov r9, r0
+ lsls r6, 16
+ asrs r0, r6, 16
+ mov r10, r0
+ ldr r0, _08046384 @ =0xfff00000
+ adds r6, r0
+ asrs r6, 16
+ lsls r4, r7, 16
+ asrs r7, r4, 16
+ adds r4, r0
+ asrs r4, 16
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r1, r0
+ mov r0, r8
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r9
+ mov r1, r10
+ adds r2, r7, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0804637C @ =gSprites
+ adds r4, r0
+ mov r0, r8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl AnimateSprite
+ mov r0, r8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804636C: .4byte gUnknown_081FAEA4
+_08046370: .4byte 0xffff0000
+_08046374: .4byte gUnknown_081FAEAC
+_08046378: .4byte sub_8046388
+_0804637C: .4byte gSprites
+_08046380: .4byte gSpriteTemplate_81FAF0C
+_08046384: .4byte 0xfff00000
+ thumb_func_end sub_8046234
+
+ thumb_func_start sub_8046388
+sub_8046388: @ 8046388
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463C0
+ ldr r0, _080463B4 @ =gUnknown_081FAEA4
+ ldrh r0, [r0, 0x6]
+ bl FreeSpriteTilesByTag
+ ldr r0, _080463B8 @ =gUnknown_081FAEAC
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080463BC
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080463C0
+ .align 2, 0
+_080463B4: .4byte gUnknown_081FAEA4
+_080463B8: .4byte gUnknown_081FAEAC
+_080463BC:
+ ldr r0, _080463C8 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_080463C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463C8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8046388
+
+ thumb_func_start sub_80463CC
+sub_80463CC: @ 80463CC
+ push {lr}
+ adds r3, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080463F6
+ ldr r2, _080463FC @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ subs r1, 0x1
+ strh r1, [r0, 0x2E]
+ adds r0, r3, 0
+ bl DestroySprite
+_080463F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080463FC: .4byte gSprites
+ thumb_func_end sub_80463CC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 6a6b6ae30..87ee96d21 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -6137,7 +6137,7 @@ _0804AE5C:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x69
adds r1, r6
@@ -6182,7 +6182,7 @@ _0804AEBC:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8046200
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x6F
adds r1, r6
diff --git a/ld_script.txt b/ld_script.txt
index 9238cfc02..462418395 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -60,6 +60,7 @@ SECTIONS {
asm/daycare.o(.text);
asm/egg_hatch.o(.text);
asm/rom_804373C.o(.text);
+ asm/smokescreen.o(.text);
asm/pokeball.o(.text);
src/load_save.o(.text);
asm/trade.o(.text);