diff options
-rw-r--r-- | asm/rom_800D42C.s | 6 | ||||
-rw-r--r-- | asm/rom_804373C.s | 231 | ||||
-rw-r--r-- | asm/rom_806D7F8.s | 6 | ||||
-rw-r--r-- | asm/smokescreen.s | 226 | ||||
-rw-r--r-- | asm/trade.s | 4 | ||||
-rw-r--r-- | ld_script.txt | 1 |
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); |