diff options
author | YamaArashi <shadow962@live.com> | 2016-06-10 03:32:55 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-06-10 18:37:25 -0700 |
commit | a27cec41b55f1c780ee2be3041701b1f0e31e047 (patch) | |
tree | 75c99e8ba39a9e3ea7b3965fbb33bdda76fd9b15 | |
parent | a37de9f76364f3ed95c49ca1417ee01cd4d617b1 (diff) |
decompile palette.c
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | asm/rom3.s | 200 | ||||
-rw-r--r-- | asm/rom4.s | 14876 | ||||
-rw-r--r-- | asm/rom5.s | 972 | ||||
-rw-r--r-- | asm/rom_8074BAC.s | 12466 | ||||
-rw-r--r-- | data/data2.s | 4 | ||||
-rw-r--r-- | ewram_syms.txt | 7 | ||||
-rw-r--r-- | include/gba/defines.h | 5 | ||||
-rw-r--r-- | include/gba/syscall.h | 4 | ||||
-rw-r--r-- | include/gba/types.h | 8 | ||||
-rw-r--r-- | include/palette.h | 68 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/link.c | 16 | ||||
-rw-r--r-- | src/palette.c | 819 | ||||
-rw-r--r-- | src/text.c | 2 |
15 files changed, 13991 insertions, 15460 deletions
@@ -35,7 +35,7 @@ PREPROC := tools/preproc/preproc C_SRCS := $(wildcard src/*.c) C_OBJS := $(C_SRCS:%.c=%.o) -ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom4.o asm/rom5.o \ +ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \ asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o asm/libc.o DATA_ASM_OBJS := data/data1.o data/data2.o data/graphics.o data/sound_data.o diff --git a/asm/rom3.s b/asm/rom3.s index bdc94367b..f2ed5b6ae 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -10,7 +10,7 @@ CB2_MainMenu: @ 80096C4 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end CB2_MainMenu @@ -20,7 +20,7 @@ VBlankCB_MainMenu: @ 80096DC push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end VBlankCB_MainMenu @@ -102,7 +102,7 @@ InitMainMenu: @ 8009708 ldr r0, _080097CC str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _080097D0 movs r1, 0 movs r2, 0x20 @@ -123,7 +123,7 @@ InitMainMenu: @ 8009708 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080097EE .align 2, 0 _080097BC: .4byte 0x040000d4 @@ -142,7 +142,7 @@ _080097DC: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080097EE: ldr r0, _0800985C movs r1, 0 @@ -817,7 +817,7 @@ MainMenuProcessKeyInput: @ 8009D6C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08009DAC lsls r0, r4, 2 adds r0, r4 @@ -844,7 +844,7 @@ _08009DB4: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08009DF4 movs r0, 0xF0 strh r0, [r1] @@ -1443,7 +1443,7 @@ Task_Birch1: @ 800A1F4 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0800A2D0 ldr r2, _0800A2D4 adds r0, r2, 0 @@ -2463,7 +2463,7 @@ _0800AA48: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0800AA70 lsls r0, r5, 2 adds r0, r5 @@ -3094,7 +3094,7 @@ task_new_game_prof_birch_speech_part2_9: @ 800AED4 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0x4 bl play_sound_effect ldr r0, _0800AF80 @@ -3183,7 +3183,7 @@ sub_800AFC0: @ 800AFC0 movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0800B030 str r0, [r4] _0800B010: @@ -3282,7 +3282,7 @@ new_game_prof_birch_speech_part2_start: @ 800B060 ldr r0, _0800B148 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _0800B14C adds r1, r4, 0 bl LZ77UnCompVram @@ -3373,7 +3373,7 @@ _0800B178: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0800B220 strh r4, [r0] adds r0, 0x4 @@ -10384,7 +10384,7 @@ _0800E868: ldr r4, _0800E92C adds r0, r4, 0 bl SetUpWindowConfig - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _0800E930 movs r1, 0 strh r1, [r0] @@ -12263,7 +12263,7 @@ sub_800F808: @ 800F808 bl BuildOamBuffer ldr r0, _0800F824 bl sub_800374C - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 @@ -12966,7 +12966,7 @@ sub_800FCFC: @ 800FCFC strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 @@ -13370,7 +13370,7 @@ _08010084: ble _08010084 adds r0, r5, 0 bl SetUpWindowConfig - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _08010164 movs r4, 0 strh r4, [r0] @@ -13479,7 +13479,7 @@ sub_80101B8: @ 80101B8 bl c2_081284E0 bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 @@ -13522,7 +13522,7 @@ _080101FC: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0801021A: ldrb r0, [r4] adds r0, 0x1 @@ -13563,7 +13563,7 @@ oac_poke_opponent: @ 8010248 movs r1, 0 movs r2, 0xA movs r3, 0xA - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -13634,7 +13634,7 @@ sub_80102AC: @ 80102AC movs r1, 0 movs r2, 0xA movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080102F4: add sp, 0x4 pop {r4} @@ -20813,7 +20813,7 @@ _08013D48: bl sub_80BDEC8 _08013D4C: movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade movs r0, 0x5 bl sub_8074D28 ldr r1, _08013D6C @@ -51939,7 +51939,7 @@ _08023BC0: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08023C04 ldr r2, _08023C08 adds r1, r2 @@ -67952,7 +67952,7 @@ _0802BB10: movs r2, 0x10 movs r3, 0 _0802BB6E: - bl pal_fade_maybe + bl BeginNormalPaletteFade _0802BB72: ldrb r0, [r7] adds r0, 0x1 @@ -68195,7 +68195,7 @@ _0802BD36: adds r0, 0x1 strb r0, [r1] movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade b _0802BEDA .align 2, 0 _0802BD60: .4byte 0x03001770 @@ -76205,7 +76205,7 @@ sub_802FF60: @ 802FF60 movs r1, 0x2 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl dp01_tbl1_exec_completed add sp, 0x4 pop {r0} @@ -76909,7 +76909,7 @@ sub_8030530: @ 8030530 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0803057C ldr r2, _08030580 ldrb r0, [r2] @@ -77021,7 +77021,7 @@ _08030600: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08030668 ldr r2, _0803064C ldrb r0, [r2] @@ -77063,7 +77063,7 @@ sub_8030674: @ 8030674 movs r1, 0x2 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl dp01_tbl1_exec_completed add sp, 0x4 pop {r0} @@ -78587,7 +78587,7 @@ sub_80312A0: @ 80312A0 movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade bl dp01_tbl1_exec_completed ldr r1, _080312E4 ldrb r0, [r4] @@ -79358,7 +79358,7 @@ _080318A2: adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 - bl pal_fade_1 + bl BlendPalette lsls r1, r7, 1 ldr r0, _080318F0 adds r0, r1, r0 @@ -79522,7 +79522,7 @@ _08031A0A: adds r0, r7, 0 movs r1, 0x10 movs r2, 0x6 - bl pal_fade_1 + bl BlendPalette lsls r1, r7, 1 ldr r0, _08031A58 adds r0, r1, r0 @@ -80295,7 +80295,7 @@ sub_8031FC4: @ 8031FC4 adds r0, r5, 0 movs r1, 0x10 movs r2, 0x6 - bl pal_fade_1 + bl BlendPalette lsls r1, r5, 1 ldr r0, _0803207C adds r0, r1, r0 @@ -80568,7 +80568,7 @@ _08032288: adds r0, r5, 0 movs r1, 0x10 movs r2, 0x6 - bl pal_fade_1 + bl BlendPalette lsls r1, r5, 1 ldr r0, _08032344 adds r0, r1, r0 @@ -96819,7 +96819,7 @@ _0803A688: movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade bl dp01_tbl4_exec_completed ldr r1, _0803A6B0 ldr r0, _0803A6B4 @@ -110815,8 +110815,8 @@ _08041208: .4byte 0x00001121 _0804120C: .4byte gUnknown_082087DC thumb_func_end unref_sub_80411CC - thumb_func_start pal_fade_1 -pal_fade_1: @ 8041210 + thumb_func_start BlendPalette +BlendPalette: @ 8041210 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -110897,7 +110897,7 @@ _08041296: .align 2, 0 _080412A8: .4byte 0x0202eac8 _080412AC: .4byte 0x0202eec8 - thumb_func_end pal_fade_1 + thumb_func_end BlendPalette thumb_func_start pokemon_get_nick pokemon_get_nick: @ 80412B0 @@ -114254,7 +114254,7 @@ sub_8042C6C: @ 8042C6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8042C6C @@ -114273,7 +114273,7 @@ sub_8042C80: @ 8042C80 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -114705,7 +114705,7 @@ _08043068: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r1, 0x80 lsls r1, 19 movs r2, 0xBA @@ -114955,7 +114955,7 @@ _08043288: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _08043298: ldr r0, _080432A4 ldr r1, [r0] @@ -114979,7 +114979,7 @@ _080432BA: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x8 pop {r3-r5} mov r8, r3 @@ -115220,7 +115220,7 @@ sub_8043484: @ 8043484 adds r0, r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080434A4: ldrh r0, [r5, 0x2E] cmp r0, 0x3 @@ -115313,7 +115313,7 @@ _08043540: adds r0, r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0804355A: movs r1, 0x2E ldrsh r0, [r5, r1] @@ -125355,7 +125355,7 @@ _08048448: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08048492 _0804845A: movs r1, 0x80 @@ -125414,7 +125414,7 @@ _080484C6: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x14 pop {r3} mov r8, r3 @@ -125918,7 +125918,7 @@ _08048950: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08048968 ldr r5, _0804896C adds r1, r5 @@ -125975,7 +125975,7 @@ _080489CA: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x8 pop {r3} mov r8, r3 @@ -125997,7 +125997,7 @@ sub_80489F4: @ 80489F4 bl sub_804A940 bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 @@ -126024,7 +126024,7 @@ sub_8048A14: @ 8048A14 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, [r4] adds r0, 0x7B movs r1, 0xA @@ -126122,7 +126122,7 @@ sub_8048AB4: @ 8048AB4 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r4} pop {r0} bx r0 @@ -127018,7 +127018,7 @@ _08049234: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0x4 bl sub_804AA0C ldr r0, _08049254 @@ -127059,7 +127059,7 @@ _08049288: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080492A4 ldr r0, [r0] adds r0, 0x7B @@ -127245,7 +127245,7 @@ _080493DC: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, [r6] adds r1, r0, 0 adds r1, 0x85 @@ -127675,7 +127675,7 @@ _0804975C: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, [r4] adds r0, 0x7B movs r1, 0x2 @@ -127842,7 +127842,7 @@ _0804989C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080498D8 ldr r0, [r0] adds r0, 0x7B @@ -131107,7 +131107,7 @@ sub_804B210: @ 804B210 bl sub_804B1BC bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_804B210 @@ -131710,7 +131710,7 @@ _0804B726: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0804B746: ldr r1, _0804B758 ldr r2, _0804B754 @@ -131736,7 +131736,7 @@ _0804B76E: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} @@ -131981,7 +131981,7 @@ _0804B9AA: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0804B9CA: ldr r1, _0804B9DC ldr r2, _0804B9D8 @@ -132007,7 +132007,7 @@ _0804B9F2: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x10 pop {r3} mov r8, r3 @@ -132241,7 +132241,7 @@ sub_804BBCC: @ 804BBCC bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_804BBCC @@ -133511,7 +133511,7 @@ _0804C824: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0804C844 ldr r0, [r0] adds r0, 0xC4 @@ -133819,7 +133819,7 @@ _0804CAB4: adds r0, r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0804CAD4 ldr r0, [r0] adds r0, 0xC4 @@ -133869,7 +133869,7 @@ _0804CB24: adds r0, r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r5, _0804CB68 adds r0, r5, 0 movs r1, 0x6F @@ -133989,7 +133989,7 @@ _0804CC2C: ldr r2, _0804CC3C movs r0, 0x1 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes bl _0804D538 .align 2, 0 _0804CC3C: .4byte 0x0000ffff @@ -133997,7 +133997,7 @@ _0804CC40: ldr r2, _0804CC50 movs r0, 0x1 movs r1, 0 - bl sub_8074B3C + bl BlendPalettes bl _0804D538 .align 2, 0 _0804CC50: .4byte 0x0000ffff @@ -134005,7 +134005,7 @@ _0804CC54: ldr r2, _0804CC64 movs r0, 0x1 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes bl _0804D538 .align 2, 0 _0804CC64: .4byte 0x0000ffff @@ -134248,7 +134248,7 @@ _0804CDFA: ldr r2, _0804CE60 movs r0, 0x1 movs r1, 0 - bl sub_8074B3C + bl BlendPalettes b _0804D570 .align 2, 0 _0804CE5C: .4byte 0x02020004 @@ -134295,7 +134295,7 @@ _0804CEA6: adds r0, r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, [r6] adds r2, r1, 0 adds r2, 0xC4 @@ -134654,7 +134654,7 @@ _0804D182: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0804D1A0 ldr r0, [r0] adds r0, 0xC4 @@ -134769,7 +134769,7 @@ _0804D1F4: lsls r0, r1 ldr r2, _0804D2A4 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes ldr r1, [r6] adds r2, r1, 0 adds r2, 0xC4 @@ -134807,7 +134807,7 @@ _0804D2A8: movs r1, 0x1 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, [r6] b _0804D53C .align 2, 0 @@ -135098,7 +135098,7 @@ _0804D528: movs r2, 0 movs r3, 0x10 _0804D534: - bl pal_fade_maybe + bl BeginNormalPaletteFade _0804D538: ldr r0, _0804D548 ldr r1, [r0] @@ -135218,7 +135218,7 @@ _0804D614: _0804D622: bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r3} mov r8, r3 pop {r4-r7} @@ -135404,7 +135404,7 @@ _0804D760: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0804D796: add sp, 0x4 pop {r4} @@ -135939,7 +135939,7 @@ _0804DBE6: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r4-r6} pop {r0} bx r0 @@ -135991,7 +135991,7 @@ _0804DC64: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r4} pop {r0} bx r0 @@ -136414,7 +136414,7 @@ _0804E0A0: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0804E0F4 _0804E0BC: ldr r0, _0804E0D8 @@ -136468,7 +136468,7 @@ _0804E11A: _0804E128: bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r4,r5} pop {r0} @@ -136493,7 +136493,7 @@ _0804E158: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 @@ -136515,7 +136515,7 @@ sub_804E174: @ 804E174 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -136665,7 +136665,7 @@ sub_804E2BC: @ 804E2BC bl sub_80514F0 bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_804E2BC @@ -136675,7 +136675,7 @@ sub_804E2D8: @ 804E2D8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_804E2D8 @@ -137095,7 +137095,7 @@ _0804E67C: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl sub_8051474 b _0804E6BE _0804E692: @@ -137145,7 +137145,7 @@ _0804E6D4: str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0804E71A .align 2, 0 _0804E6FC: .4byte 0x03004854 @@ -137165,7 +137165,7 @@ _0804E700: _0804E71A: bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} @@ -137802,7 +137802,7 @@ _0804ECE8: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0804F0AA _0804ECFA: bl sub_804E4FC @@ -138288,7 +138288,7 @@ _0804F0CE: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r3} mov r8, r3 @@ -138801,7 +138801,7 @@ _0804F4EC: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _0804F514 ldr r1, [r2] ldrb r0, [r1] @@ -139179,7 +139179,7 @@ _0804F7E6: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r3} mov r8, r3 @@ -140491,7 +140491,7 @@ _0805027E: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r4-r6} pop {r0} bx r0 @@ -141861,7 +141861,7 @@ _08050CB6: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r4-r7} pop {r0} bx r0 @@ -142280,7 +142280,7 @@ _08051030: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08051050 ldr r1, [r0] b _080510AC @@ -142346,7 +142346,7 @@ _080510C4: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r4,r5} pop {r0} @@ -142469,7 +142469,7 @@ _080511BC: _080511D4: .4byte 0x03004854 _080511D8: movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade ldr r0, _080511EC ldr r1, [r0] adds r1, 0x6F @@ -142505,7 +142505,7 @@ _0805121E: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 @@ -144921,7 +144921,7 @@ unref_sub_80524BC: @ 80524BC bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r1, _08052528 movs r0, 0xFA lsls r0, 5 @@ -145659,7 +145659,7 @@ sub_8052AF8: @ 8052AF8 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8052AF8 diff --git a/asm/rom4.s b/asm/rom4.s index 9c02fe0d6..4bd319a49 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -3016,7 +3016,7 @@ c2_overworld_basic: @ 8054370 bl CameraUpdate bl UpdateCameraPanning bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl sub_8072EDC pop {r0} bx r0 @@ -3545,7 +3545,7 @@ VBlankCB_Field: @ 80547F4 bl ProcessSpriteCopyRequests bl sub_8089668 bl sub_8057A58 - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8072E74 pop {r0} bx r0 @@ -4170,7 +4170,7 @@ sub_8054D4C: @ 8054D4C adds r4, r0, 0 bl ResetTasks bl ResetSpriteData - bl sub_8073B94 + bl ResetPaletteFade bl dp12_8087EA4 bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback @@ -52981,7 +52981,7 @@ _0806AB16: bl dp12_8087EA4 bl ResetSpriteData bl ResetTasks - bl sub_8073B94 + bl ResetPaletteFade ldr r4, _0806ABA0 adds r0, r4, 0 bl SetUpWindowConfig @@ -53020,7 +53020,7 @@ sub_806ABB0: @ 806ABB0 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_806ABB0 @@ -53030,7 +53030,7 @@ sub_806ABC8: @ 806ABC8 push {lr} bl ProcessSpriteCopyRequests bl LoadOam - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_806ABC8 @@ -53191,7 +53191,7 @@ _0806AD18: movs r1, 0x1 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0x1 strh r0, [r5] b _0806AEC4 @@ -53365,7 +53365,7 @@ _0806AE8C: movs r1, 0x1 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0x6 strh r0, [r5] _0806AEAE: @@ -53422,7 +53422,7 @@ _0806AEF8: cmp r6, 0x5 ble _0806AEF8 bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x4 pop {r4-r6} pop {r0} @@ -53437,7 +53437,7 @@ sub_806AF34: @ 806AF34 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_806B548 pop {r0} bx r0 @@ -54021,7 +54021,7 @@ _0806B40C: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _0806B434 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -62322,7 +62322,7 @@ sub_806F44C: @ 806F44C movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0806F488 lsls r0, r4, 2 adds r0, r4 @@ -66959,7 +66959,7 @@ _080719EA: thumb_func_start sub_80719F0 sub_80719F0: @ 80719F0 push {lr} - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80719F0 @@ -67048,7 +67048,7 @@ _08071AA0: .4byte 0x81000800 _08071AA4: bl ResetSpriteData bl ResetTasks - bl sub_8073B94 + bl ResetPaletteFade bl dp12_8087EA4 b _08071B10 _08071AB6: @@ -67071,7 +67071,7 @@ _08071AD8: negs r0, r0 movs r1, 0x10 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes ldr r0, _08071B00 bl SetVBlankCallback ldr r3, _08071B04 @@ -67132,7 +67132,7 @@ _08071B50: .4byte sub_8071B54 sub_8071B54: @ 8071B54 push {lr} bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8071B54 @@ -67208,7 +67208,7 @@ _08071BEE: movs r2, 0 movs r3, 0x10 _08071BFA: - bl pal_fade_maybe + bl BeginNormalPaletteFade _08071BFE: ldrh r0, [r4] adds r0, 0x1 @@ -71264,14845 +71264,3 @@ sub_80739EC: @ 80739EC _08073A0C: .4byte gUnknown_0837DEDC _08073A10: .4byte 0x06007e00 thumb_func_end sub_80739EC - - thumb_func_start LoadCompressedPalette -LoadCompressedPalette: @ 8073A14 - push {r4-r6,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - ldr r6, _08073A4C - adds r1, r6, 0 - bl sub_800D238 - lsls r4, 1 - ldr r1, _08073A50 - adds r1, r4, r1 - lsrs r5, 17 - adds r0, r6, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _08073A54 - adds r4, r0 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08073A4C: .4byte 0x0202f39c -_08073A50: .4byte 0x0202eac8 -_08073A54: .4byte 0x0202eec8 - thumb_func_end LoadCompressedPalette - - thumb_func_start LoadPalette -LoadPalette: @ 8073A58 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsls r5, 16 - lsrs r4, 15 - ldr r1, _08073A88 - adds r1, r4, r1 - lsrs r5, 17 - adds r2, r5, 0 - bl CpuSet - ldr r0, _08073A8C - adds r4, r0 - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08073A88: .4byte 0x0202eac8 -_08073A8C: .4byte 0x0202eec8 - thumb_func_end LoadPalette - - thumb_func_start FillPalette -FillPalette: @ 8073A90 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r6, 16 - lsrs r6, 16 - lsls r4, 16 - lsls r5, 16 - mov r0, sp - strh r6, [r0] - lsrs r4, 15 - ldr r1, _08073AD8 - adds r1, r4, r1 - lsrs r5, 17 - movs r0, 0x80 - lsls r0, 17 - orrs r5, r0 - mov r0, sp - adds r2, r5, 0 - bl CpuSet - mov r0, sp - adds r0, 0x2 - strh r6, [r0] - ldr r1, _08073ADC - adds r4, r1 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08073AD8: .4byte 0x0202eac8 -_08073ADC: .4byte 0x0202eec8 - thumb_func_end FillPalette - - thumb_func_start copy_pal_bg_faded_to_pal_ram -copy_pal_bg_faded_to_pal_ram: @ 8073AE0 - push {r4,r5,lr} - ldr r4, _08073B28 - ldrb r1, [r4, 0x8] - movs r5, 0x80 - adds r0, r5, 0 - ands r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _08073B22 - ldr r1, _08073B2C - movs r2, 0xA0 - lsls r2, 19 - ldr r0, _08073B30 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08073B34 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _08073B38 - str r3, [r0] - ldrb r1, [r4, 0x9] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _08073B22 - ldrb r1, [r4, 0x7] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08073B22 - bl sub_8074A88 -_08073B22: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08073B28: .4byte 0x0202f388 -_08073B2C: .4byte 0x0202eec8 -_08073B30: .4byte 0x040000d4 -_08073B34: .4byte 0x80000200 -_08073B38: .4byte 0x0202f398 - thumb_func_end copy_pal_bg_faded_to_pal_ram - - thumb_func_start fade_and_return_progress_probably -fade_and_return_progress_probably: @ 8073B3C - push {lr} - ldr r0, _08073B4C - ldr r0, [r0] - cmp r0, 0 - beq _08073B50 - movs r0, 0xFF - b _08073B88 - .align 2, 0 -_08073B4C: .4byte 0x0202f398 -_08073B50: - ldr r0, _08073B64 - ldrb r0, [r0, 0x9] - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - bne _08073B68 - bl pal_fade__0 - b _08073B76 - .align 2, 0 -_08073B64: .4byte 0x0202f388 -_08073B68: - cmp r1, 0x1 - bne _08073B72 - bl pal_fade__1 - b _08073B76 -_08073B72: - bl pal_fade__2 -_08073B76: - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _08073B8C - ldr r0, _08073B90 - ldr r0, [r0] - movs r1, 0 - orrs r0, r1 - str r0, [r2] - adds r0, r3, 0 -_08073B88: - pop {r1} - bx r1 - .align 2, 0 -_08073B8C: .4byte 0x0202f398 -_08073B90: .4byte 0x0202f388 - thumb_func_end fade_and_return_progress_probably - - thumb_func_start sub_8073B94 -sub_8073B94: @ 8073B94 - push {r4,lr} - movs r4, 0 -_08073B98: - adds r0, r4, 0 - bl palslot_dead_struct_update - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08073B98 - bl pal_fade_control_reset_maybe - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8073B94 - - thumb_func_start sub_8073BB4 -sub_8073BB4: @ 8073BB4 - push {r4-r7,lr} - movs r0, 0xA0 - lsls r0, 19 - mov r12, r0 - movs r4, 0 - ldr r7, _08073BE8 - ldr r6, _08073BEC - ldr r5, _08073BF0 -_08073BC4: - lsls r1, r4, 1 - adds r3, r1, r7 - mov r0, r12 - adds r2, r1, r0 - ldrh r0, [r2] - strh r0, [r3] - adds r1, r6 - ldrh r0, [r2] - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bls _08073BC4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08073BE8: .4byte 0x0202eac8 -_08073BEC: .4byte 0x0202eec8 -_08073BF0: .4byte 0x000001ff - thumb_func_end sub_8073BB4 - - thumb_func_start pal_fade_maybe -pal_fade_maybe: @ 8073BF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldr r0, [sp, 0x18] - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r12, r2 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r5, _08073C24 - ldrb r1, [r5, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08073C28 - movs r0, 0 - b _08073D20 - .align 2, 0 -_08073C24: .4byte 0x0202f388 -_08073C28: - ldrb r0, [r5, 0xA] - movs r3, 0x79 - negs r3, r3 - adds r2, r3, 0 - ands r2, r0 - movs r0, 0x10 - orrs r2, r0 - strb r2, [r5, 0xA] - lsls r0, r6, 24 - asrs r1, r0, 24 - cmp r1, 0 - bge _08073C56 - lsls r0, r2, 25 - lsrs r0, 28 - negs r1, r1 - adds r0, r1 - movs r1, 0xF - ands r0, r1 - lsls r0, 3 - ands r2, r3 - orrs r2, r0 - strb r2, [r5, 0xA] - movs r6, 0 -_08073C56: - str r4, [r5] - movs r4, 0x3F - adds r1, r6, 0 - ands r1, r4 - ldrb r2, [r5, 0x4] - movs r3, 0x40 - negs r3, r3 - adds r0, r3, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x4] - ands r6, r4 - ldrb r0, [r5, 0x8] - ands r3, r0 - orrs r3, r6 - strb r3, [r5, 0x8] - movs r0, 0x1F - mov r1, r12 - ands r1, r0 - lsls r1, 6 - ldrh r2, [r5, 0x4] - ldr r0, _08073CC4 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - lsls r2, r7, 3 - ldrb r1, [r5, 0x5] - movs r0, 0x7 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] - ldr r1, _08073CC8 - mov r0, r8 - ands r1, r0 - ldrh r2, [r5, 0x6] - ldr r0, _08073CCC - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x6] - ldrb r0, [r5, 0x7] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r5, 0x7] - ldrb r1, [r5, 0x9] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x9] - cmp r12, r7 - bcs _08073CD0 - movs r0, 0x41 - negs r0, r0 - ands r3, r0 - b _08073CD4 - .align 2, 0 -_08073CC4: .4byte 0xfffff83f -_08073CC8: .4byte 0x00007fff -_08073CCC: .4byte 0xffff8000 -_08073CD0: - movs r0, 0x40 - orrs r3, r0 -_08073CD4: - strb r3, [r5, 0x8] - bl fade_and_return_progress_probably - ldr r4, _08073D2C - ldrb r1, [r4, 0x8] - lsrs r5, r1, 7 - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x8] - ldr r0, _08073D30 - movs r1, 0xA0 - lsls r1, 19 - ldr r2, _08073D34 - bl CpuSet - ldr r1, _08073D38 - movs r0, 0 - str r0, [r1] - ldrb r1, [r4, 0x9] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _08073D10 - ldrb r1, [r4, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08073D10 - bl sub_8074A88 -_08073D10: - ldr r2, _08073D2C - lsls r3, r5, 7 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x8] - movs r0, 0x1 -_08073D20: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08073D2C: .4byte 0x0202f388 -_08073D30: .4byte 0x0202eec8 -_08073D34: .4byte 0x04000100 -_08073D38: .4byte 0x0202f398 - thumb_func_end pal_fade_maybe - - thumb_func_start unref_sub_8073D3C -unref_sub_8073D3C: @ 8073D3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - mov r8, r0 - adds r4, r1, 0 - adds r6, r2, 0 - ldr r5, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 16 - lsrs r5, 16 - str r3, [sp, 0x4] - bl sub_8073BB4 - lsls r4, 24 - asrs r4, 24 - str r5, [sp] - mov r0, r8 - adds r1, r4, 0 - adds r2, r6, 0 - ldr r3, [sp, 0x4] - bl pal_fade_maybe - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end unref_sub_8073D3C - - thumb_func_start unref_sub_8073D84 -unref_sub_8073D84: @ 8073D84 - push {r4-r7,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 -_08073D8E: - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - ldr r1, _08073DDC - adds r4, r0, r1 - ldrb r0, [r4, 0x4] - lsls r0, 31 - cmp r0, 0 - beq _08073DEC - ldr r2, [r4] - ldrb r0, [r2, 0x8] - lsls r0, 31 - lsrs r0, 31 - cmp r0, r7 - bne _08073DEC - ldrh r1, [r4, 0x6] - lsls r1, 20 - lsrs r1, 25 - ldrb r0, [r2, 0xB] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - bne _08073DCA - adds r0, r4, 0 - bl sub_8074020 - ldrb r0, [r4, 0x4] - lsls r0, 31 - cmp r0, 0 - beq _08073DEC -_08073DCA: - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _08073DE0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8073DFC - b _08073DE4 - .align 2, 0 -_08073DDC: .4byte 0x0202f2c8 -_08073DE0: - subs r0, 0x1 - strb r0, [r4, 0x8] -_08073DE4: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8073F60 -_08073DEC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08073D8E - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8073D84 - - thumb_func_start sub_8073DFC -sub_8073DFC: @ 8073DFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - mov r8, r1 - movs r6, 0 - ldrh r1, [r4, 0x6] - lsls r1, 20 - lsrs r1, 25 - ldr r3, [r4] - ldrb r0, [r3, 0x9] - lsls r2, r0, 25 - lsrs r0, r2, 27 - adds r5, r1, 0 - muls r5, r0 - ldrb r1, [r3, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08073E98 - lsrs r0, r2, 27 - cmp r6, r0 - bcs _08073EE4 - ldr r0, _08073E88 - mov r12, r0 - ldr r7, _08073E8C -_08073E30: - ldr r0, [r4, 0x4] - lsls r0, 11 - lsrs r0, 22 - lsls r0, 1 - add r0, r12 - ldr r1, [r3, 0x4] - lsls r2, r5, 1 - adds r1, r2, r1 - ldrh r1, [r1] - strh r1, [r0] - ldr r0, [r4, 0x4] - lsls r0, 11 - lsrs r0, 22 - lsls r0, 1 - adds r0, r7 - ldr r1, [r4] - ldr r1, [r1, 0x4] - adds r2, r1 - ldrh r1, [r2] - strh r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, [r4, 0x4] - lsls r1, r2, 11 - lsrs r1, 22 - adds r1, 0x1 - ldr r0, _08073E90 - ands r1, r0 - lsls r1, 11 - ldr r0, _08073E94 - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r3, [r4] - ldrb r0, [r3, 0x9] - lsls r0, 25 - lsrs r0, 27 - cmp r6, r0 - bcc _08073E30 - b _08073EE4 - .align 2, 0 -_08073E88: .4byte 0x0202eac8 -_08073E8C: .4byte 0x0202eec8 -_08073E90: .4byte 0x000003ff -_08073E94: .4byte 0xffe007ff -_08073E98: - lsrs r0, r2, 27 - cmp r6, r0 - bcs _08073EE4 - ldr r3, _08073F50 -_08073EA0: - ldr r1, [r4, 0x4] - lsls r1, 11 - lsrs r1, 22 - lsls r1, 1 - adds r1, r3 - ldr r0, [r4] - ldr r2, [r0, 0x4] - lsls r0, r5, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, [r4, 0x4] - lsls r1, r2, 11 - lsrs r1, 22 - adds r1, 0x1 - ldr r0, _08073F54 - ands r1, r0 - lsls r1, 11 - ldr r0, _08073F58 - ands r0, r2 - orrs r0, r1 - str r0, [r4, 0x4] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [r4] - ldrb r0, [r0, 0x9] - lsls r0, 25 - lsrs r0, 27 - cmp r6, r0 - bcc _08073EA0 -_08073EE4: - ldrh r0, [r4, 0x4] - lsls r0, 21 - lsrs r0, 23 - lsls r0, 11 - ldr r1, [r4, 0x4] - ldr r2, _08073F58 - ands r1, r2 - orrs r1, r0 - str r1, [r4, 0x4] - ldr r3, [r4] - ldrb r0, [r3, 0xA] - strb r0, [r4, 0x8] - ldrh r2, [r4, 0x6] - lsls r0, r2, 20 - lsrs r0, 25 - adds r0, 0x1 - movs r1, 0x7F - ands r0, r1 - lsls r0, 5 - ldr r5, _08073F5C - adds r1, r5, 0 - ands r1, r2 - orrs r1, r0 - strh r1, [r4, 0x6] - lsls r1, 20 - lsrs r1, 25 - ldrb r0, [r3, 0xB] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - blt _08073F34 - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _08073F2C - subs r0, 0x1 - strb r0, [r4, 0x9] -_08073F2C: - ldrh r1, [r4, 0x6] - adds r0, r5, 0 - ands r0, r1 - strh r0, [r4, 0x6] -_08073F34: - ldrh r0, [r4, 0x4] - lsls r0, 21 - lsrs r0, 27 - movs r1, 0x1 - lsls r1, r0 - mov r2, r8 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08073F50: .4byte 0x0202eec8 -_08073F54: .4byte 0x000003ff -_08073F58: .4byte 0xffe007ff -_08073F5C: .4byte 0xfffff01f - thumb_func_end sub_8073DFC - - thumb_func_start sub_8073F60 -sub_8073F60: @ 8073F60 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r3, _08073FB8 - ldrb r1, [r3, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08074014 - ldrh r0, [r4, 0x4] - lsls r0, 21 - lsrs r6, r0, 23 - asrs r1, r6, 4 - movs r5, 0x1 - adds r0, r5, 0 - lsls r0, r1 - ldr r1, [r3] - ands r0, r1 - cmp r0, 0 - beq _08074014 - ldr r2, [r4] - ldrb r1, [r2, 0x8] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08073FBC - ldrb r1, [r3, 0x4] - lsls r1, 26 - ldrb r0, [r3, 0x8] - lsls r0, 26 - cmp r1, r0 - beq _08074014 - adds r0, r6, 0 - ldrb r1, [r2, 0x9] - lsls r1, 25 - lsrs r1, 27 - ldrh r2, [r3, 0x4] - lsls r2, 21 - lsrs r2, 27 - ldrh r3, [r3, 0x6] - lsls r3, 17 - lsrs r3, 17 - bl pal_fade_1 - b _08074014 - .align 2, 0 -_08073FB8: .4byte 0x0202f388 -_08073FBC: - ldrb r1, [r3, 0x4] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _08074014 - ldrb r0, [r4, 0x8] - ldrb r1, [r2, 0xA] - cmp r0, r1 - beq _08074014 - ldrh r0, [r4, 0x6] - lsls r0, 20 - lsrs r0, 25 - ldrb r1, [r2, 0x9] - lsls r1, 25 - lsrs r2, r1, 27 - adds r5, r0, 0 - muls r5, r2 - movs r3, 0 - adds r1, r2, 0 - cmp r3, r1 - bcs _08074014 - ldr r6, _0807401C -_08073FE8: - ldrh r1, [r4, 0x4] - lsls r1, 21 - lsrs r1, 23 - adds r1, r3 - lsls r1, 1 - adds r1, r6 - ldr r2, [r4] - adds r0, r5, r3 - ldr r2, [r2, 0x4] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, [r4] - ldrb r0, [r0, 0x9] - lsls r0, 25 - lsrs r0, 27 - cmp r3, r0 - bcc _08073FE8 -_08074014: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0807401C: .4byte 0x0202eec8 - thumb_func_end sub_8073F60 - - thumb_func_start sub_8074020 -sub_8074020: @ 8074020 - push {lr} - adds r3, r0, 0 - ldrb r0, [r3, 0x9] - cmp r0, 0 - bne _08074070 - ldr r2, [r3] - ldrb r0, [r2, 0xB] - lsrs r0, 5 - cmp r0, 0 - bne _08074060 - ldrh r1, [r3, 0x6] - ldr r0, _08074058 - ands r0, r1 - strh r0, [r3, 0x6] - ldrb r0, [r2, 0xA] - strb r0, [r3, 0x8] - ldrb r0, [r2, 0xC] - strb r0, [r3, 0x9] - ldrh r0, [r3, 0x4] - lsls r0, 21 - lsrs r0, 23 - lsls r0, 11 - ldr r1, [r3, 0x4] - ldr r2, _0807405C - ands r1, r2 - orrs r1, r0 - str r1, [r3, 0x4] - b _08074074 - .align 2, 0 -_08074058: .4byte 0xfffff01f -_0807405C: .4byte 0xffe007ff -_08074060: - cmp r0, 0 - blt _08074074 - cmp r0, 0x2 - bgt _08074074 - ldrh r0, [r2] - bl sub_8074078 - b _08074074 -_08074070: - subs r0, 0x1 - strb r0, [r3, 0x9] -_08074074: - pop {r0} - bx r0 - thumb_func_end sub_8074020 - - thumb_func_start sub_8074078 -sub_8074078: @ 8074078 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_80741C4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _0807408E - bl palslot_dead_struct_update -_0807408E: - pop {r0} - bx r0 - thumb_func_end sub_8074078 - - thumb_func_start palslot_dead_struct_update -palslot_dead_struct_update: @ 8074094 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080740DC - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080740E0 - str r0, [r1] - ldrb r2, [r1, 0x4] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x4] - ldrh r2, [r1, 0x4] - ldr r0, _080740E4 - ands r0, r2 - strh r0, [r1, 0x4] - ldr r0, [r1, 0x4] - ldr r2, _080740E8 - ands r0, r2 - str r0, [r1, 0x4] - ldrh r2, [r1, 0x6] - ldr r0, _080740EC - ands r0, r2 - strh r0, [r1, 0x6] - ldrb r2, [r1, 0x4] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x4] - movs r0, 0 - strb r0, [r1, 0x8] - strb r0, [r1, 0x9] - bx lr - .align 2, 0 -_080740DC: .4byte 0x0202f2c8 -_080740E0: .4byte gUnknown_0837DEE4 -_080740E4: .4byte 0xfffff803 -_080740E8: .4byte 0xffe007ff -_080740EC: .4byte 0xfffff01f - thumb_func_end palslot_dead_struct_update - - thumb_func_start pal_fade_control_reset_maybe -pal_fade_control_reset_maybe: @ 80740F0 - ldr r2, _08074158 - movs r0, 0 - str r0, [r2] - subs r0, 0x40 - ldrb r1, [r2, 0x4] - ands r0, r1 - strb r0, [r2, 0x4] - ldrh r1, [r2, 0x4] - ldr r0, _0807415C - ands r0, r1 - strh r0, [r2, 0x4] - ldrb r1, [r2, 0x5] - movs r0, 0x7 - ands r0, r1 - strb r0, [r2, 0x5] - ldrh r1, [r2, 0x6] - ldr r0, _08074160 - ands r0, r1 - strh r0, [r2, 0x6] - ldrb r1, [r2, 0x7] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x7] - movs r0, 0 - strb r0, [r2, 0x8] - ldrb r1, [r2, 0x9] - movs r3, 0x5 - negs r3, r3 - adds r0, r3, 0 - ands r0, r1 - movs r1, 0x9 - negs r1, r1 - ands r0, r1 - strb r0, [r2, 0x9] - ldrb r1, [r2, 0xA] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0xA] - ldr r0, [r2, 0x8] - ldr r1, _08074164 - ands r0, r1 - str r0, [r2, 0x8] - ldrb r0, [r2, 0xA] - ands r3, r0 - movs r0, 0x79 - negs r0, r0 - ands r3, r0 - movs r0, 0x10 - orrs r3, r0 - strb r3, [r2, 0xA] - bx lr - .align 2, 0 -_08074158: .4byte 0x0202f388 -_0807415C: .4byte 0xfffff83f -_08074160: .4byte 0xffff8000 -_08074164: .4byte 0xfffe0fff - thumb_func_end pal_fade_control_reset_maybe - - thumb_func_start unref_sub_8074168 -unref_sub_8074168: @ 8074168 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_80741C4 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - beq _0807418C - ldr r1, _08074190 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x4] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x4] -_0807418C: - pop {r0} - bx r0 - .align 2, 0 -_08074190: .4byte 0x0202f2c8 - thumb_func_end unref_sub_8074168 - - thumb_func_start unref_sub_8074194 -unref_sub_8074194: @ 8074194 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_80741C4 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x10 - beq _080741BA - ldr r0, _080741C0 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x4] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x4] -_080741BA: - pop {r0} - bx r0 - .align 2, 0 -_080741C0: .4byte 0x0202f2c8 - thumb_func_end unref_sub_8074194 - - thumb_func_start sub_80741C4 -sub_80741C4: @ 80741C4 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, _080741E4 -_080741CE: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrh r0, [r0] - cmp r0, r2 - bne _080741E8 - adds r0, r1, 0 - b _080741F4 - .align 2, 0 -_080741E4: .4byte 0x0202f2c8 -_080741E8: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080741CE - movs r0, 0x10 -_080741F4: - pop {r1} - bx r1 - thumb_func_end sub_80741C4 - - thumb_func_start pal_fade__0 -pal_fade__0: @ 80741F8 - push {r4-r7,lr} - ldr r4, _0807420C - ldrb r1, [r4, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08074210 - movs r0, 0 - b _0807432C - .align 2, 0 -_0807420C: .4byte 0x0202f388 -_08074210: - bl sub_8074AD8 - lsls r0, 24 - cmp r0, 0 - beq _0807421E - ldrb r0, [r4, 0x7] - b _0807432A -_0807421E: - ldrb r1, [r4, 0xA] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _08074252 - ldrb r2, [r4, 0x4] - lsls r1, r2, 26 - ldrb r0, [r4, 0x8] - lsls r0, 26 - cmp r1, r0 - bcs _0807424A - lsrs r0, r1, 26 - adds r0, 0x1 - movs r1, 0x3F - ands r0, r1 - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - movs r0, 0x2 - b _0807432C -_0807424A: - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - strb r0, [r4, 0x4] -_08074252: - movs r5, 0 - ldr r2, _08074268 - ldrb r1, [r2, 0xA] - movs r0, 0x4 - ands r0, r1 - adds r7, r2, 0 - cmp r0, 0 - bne _0807426C - ldrh r4, [r7] - b _08074272 - .align 2, 0 -_08074268: .4byte 0x0202f388 -_0807426C: - ldrh r4, [r7, 0x2] - movs r5, 0x80 - lsls r5, 1 -_08074272: - cmp r4, 0 - beq _080742A4 - ldr r7, _080742E0 - adds r6, r7, 0 -_0807427A: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08074296 - ldrh r2, [r6, 0x4] - lsls r2, 21 - lsrs r2, 27 - ldrh r3, [r6, 0x6] - lsls r3, 17 - lsrs r3, 17 - adds r0, r5, 0 - movs r1, 0x10 - bl pal_fade_1 -_08074296: - lsrs r4, 1 - adds r0, r5, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0 - bne _0807427A -_080742A4: - ldrb r2, [r7, 0xA] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r4, 0x5 - negs r4, r4 - ands r4, r2 - orrs r4, r1 - strb r4, [r7, 0xA] - movs r0, 0x4 - ands r0, r4 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _08074328 - ldrh r6, [r7, 0x4] - lsls r2, r6, 21 - ldrb r0, [r7, 0x5] - lsls r5, r0, 24 - lsrs r1, r2, 27 - lsrs r0, r5, 27 - cmp r1, r0 - bne _080742E4 - str r3, [r7] - movs r0, 0x2 - orrs r4, r0 - strb r4, [r7, 0xA] - b _08074328 - .align 2, 0 -_080742E0: .4byte 0x0202f388 -_080742E4: - ldrb r1, [r7, 0x8] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08074300 - lsrs r3, r2, 27 - lsls r0, r4, 25 - lsrs r0, 28 - adds r3, r0, r3 - lsrs r0, r5, 27 - cmp r3, r0 - ble _08074316 - adds r3, r0, 0 - b _08074316 -_08074300: - lsrs r3, r2, 27 - lsls r0, r4, 25 - lsrs r0, 28 - subs r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - asrs r0, 24 - lsrs r1, r5, 27 - cmp r0, r1 - bge _08074316 - adds r3, r1, 0 -_08074316: - lsls r0, r3, 24 - asrs r0, 24 - movs r1, 0x1F - ands r0, r1 - lsls r0, 6 - ldr r1, _08074334 - ands r1, r6 - orrs r1, r0 - strh r1, [r7, 0x4] -_08074328: - ldrb r0, [r7, 0x7] -_0807432A: - lsrs r0, 7 -_0807432C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08074334: .4byte 0xfffff83f - thumb_func_end pal_fade__0 - - thumb_func_start sub_8074338 -sub_8074338: @ 8074338 - push {r4-r7,lr} - adds r1, r0, 0 - movs r3, 0 - cmp r1, 0 - beq _08074376 - ldr r7, _0807437C -_08074344: - movs r0, 0x1 - ands r0, r1 - lsrs r4, r1, 1 - adds r5, r3, 0 - adds r5, 0x10 - cmp r0, 0 - beq _0807436C - movs r2, 0 - adds r6, r7, 0 -_08074356: - adds r0, r3, r2 - lsls r0, 1 - adds r0, r6 - ldrh r1, [r0] - mvns r1, r1 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _08074356 -_0807436C: - adds r1, r4, 0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - cmp r1, 0 - bne _08074344 -_08074376: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807437C: .4byte 0x0202eec8 - thumb_func_end sub_8074338 - - thumb_func_start sub_8074380 -sub_8074380: @ 8074380 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x4] - movs r0, 0 - mov r9, r0 - cmp r4, 0 - beq _0807443C - lsls r1, 24 - str r1, [sp, 0x8] -_080743AA: - movs r0, 0x1 - ands r0, r4 - lsrs r4, 1 - str r4, [sp, 0xC] - movs r1, 0x10 - add r1, r9 - mov r10, r1 - cmp r0, 0 - beq _0807442E - movs r4, 0 - ldr r2, _0807444C - mov r8, r2 - ldr r1, [sp] - lsls r0, r1, 24 - ldr r2, [sp, 0x4] - lsls r1, r2, 24 - ldr r2, [sp, 0x8] - asrs r2, 24 - mov r12, r2 - movs r5, 0x1F - asrs r7, r0, 24 - asrs r6, r1, 24 -_080743D6: - mov r0, r9 - adds r2, r0, r4 - lsls r2, 1 - add r2, r8 - ldr r1, [r2] - lsls r1, 27 - lsrs r1, 27 - add r1, r12 - ands r1, r5 - ldrb r3, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r2] - lsls r1, 22 - lsrs r1, 27 - adds r1, r7 - movs r0, 0x1F - ands r1, r0 - lsls r1, 5 - ldrh r3, [r2] - ldr r0, _08074450 - ands r0, r3 - orrs r0, r1 - strh r0, [r2] - ldr r1, [r2] - lsls r1, 17 - lsrs r1, 27 - adds r1, r6 - ands r1, r5 - lsls r1, 2 - ldrb r3, [r2, 0x1] - movs r0, 0x7D - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080743D6 -_0807442E: - ldr r4, [sp, 0xC] - mov r1, r10 - lsls r0, r1, 16 - lsrs r0, 16 - mov r9, r0 - cmp r4, 0 - bne _080743AA -_0807443C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807444C: .4byte 0x0202eec8 -_08074450: .4byte 0xfffffc1f - thumb_func_end sub_8074380 - - thumb_func_start sub_8074454 -sub_8074454: @ 8074454 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r1, r0, 0 - movs r3, 0 - cmp r1, 0 - beq _0807449E - ldr r0, _080744A8 - mov r8, r0 - ldr r0, _080744AC - mov r12, r0 -_0807446A: - movs r0, 0x1 - ands r0, r1 - lsrs r4, r1, 1 - adds r5, r3, 0 - adds r5, 0x10 - cmp r0, 0 - beq _08074494 - movs r2, 0 - mov r7, r8 - mov r6, r12 -_0807447E: - adds r0, r3, r2 - lsls r0, 1 - adds r1, r0, r7 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _0807447E -_08074494: - adds r1, r4, 0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - cmp r1, 0 - bne _0807446A -_0807449E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080744A8: .4byte 0x0202eec8 -_080744AC: .4byte 0x0202eac8 - thumb_func_end sub_8074454 - - thumb_func_start sub_80744B0 -sub_80744B0: @ 80744B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080744D0 - ldrb r2, [r3, 0xA] - movs r1, 0x79 - negs r1, r1 - ands r1, r2 - movs r2, 0x10 - orrs r1, r2 - strb r1, [r3, 0xA] - bl sub_80744D4 - pop {r0} - bx r0 - .align 2, 0 -_080744D0: .4byte 0x0202f388 - thumb_func_end sub_80744B0 - - thumb_func_start sub_80744D4 -sub_80744D4: @ 80744D4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r2, _08074548 - ldrh r0, [r2, 0x4] - movs r3, 0xF8 - lsls r3, 3 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x4] - movs r1, 0x3F - ands r1, r4 - ldrb r3, [r2, 0x8] - movs r0, 0x40 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x8] - ldrb r0, [r2, 0x7] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x7] - ldrb r1, [r2, 0x9] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - cmp r4, 0x2 - bne _08074526 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, _0807454C - ldr r2, _08074550 - mov r0, sp - bl CpuSet -_08074526: - cmp r4, 0 - bne _0807453C - mov r0, sp - adds r0, 0x2 - ldr r2, _08074554 - adds r1, r2, 0 - strh r1, [r0] - ldr r1, _0807454C - ldr r2, _08074550 - bl CpuSet -_0807453C: - bl fade_and_return_progress_probably - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074548: .4byte 0x0202f388 -_0807454C: .4byte 0x0202eec8 -_08074550: .4byte 0x01000200 -_08074554: .4byte 0x00007fff - thumb_func_end sub_80744D4 - - thumb_func_start pal_fade__1 -pal_fade__1: @ 8074558 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r4, _08074574 - ldrb r1, [r4, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08074578 - movs r0, 0 - b _080748B2 - .align 2, 0 -_08074574: .4byte 0x0202f388 -_08074578: - bl sub_8074AD8 - lsls r0, 24 - cmp r0, 0 - beq _08074586 - ldrb r0, [r4, 0x7] - b _080748B0 -_08074586: - ldrb r1, [r4, 0xA] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0807459C - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x80 - lsls r0, 2 - mov r10, r0 - b _080745A4 -_0807459C: - movs r2, 0 - movs r1, 0x80 - lsls r1, 1 - mov r10, r1 -_080745A4: - ldr r1, _080745BC - ldrb r0, [r1, 0x8] - lsls r0, 26 - lsrs r0, 26 - cmp r0, 0x1 - beq _08074664 - cmp r0, 0x1 - bgt _080745C0 - cmp r0, 0 - beq _080745CE - b _080747B4 - .align 2, 0 -_080745BC: .4byte 0x0202f388 -_080745C0: - cmp r0, 0x2 - bne _080745C6 - b _080746C8 -_080745C6: - cmp r0, 0x3 - bne _080745CC - b _08074750 -_080745CC: - b _080747B4 -_080745CE: - adds r7, r2, 0 - cmp r7, r10 - bcc _080745D6 - b _080747B4 -_080745D6: - lsls r2, r7, 1 - ldr r0, _0807465C - adds r0, r2, r0 - ldr r1, [r0] - lsls r3, r1, 27 - lsls r0, r1, 22 - lsrs r0, 27 - mov r12, r0 - lsls r1, 17 - lsrs r1, 27 - mov r8, r1 - ldr r0, _08074660 - adds r2, r0 - mov r9, r2 - ldr r1, [r2] - lsls r2, r1, 27 - lsrs r2, 3 - movs r4, 0xFE - lsls r4, 24 - adds r2, r4 - lsls r0, r1, 22 - lsrs r0, 27 - subs r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 17 - lsrs r1, 27 - subs r1, 0x2 - lsls r1, 24 - lsrs r4, r1, 24 - lsrs r6, r2, 24 - asrs r2, 24 - lsrs r3, 3 - asrs r0, r3, 24 - cmp r2, r0 - bge _08074620 - lsrs r6, r3, 24 -_08074620: - lsls r0, r5, 24 - asrs r0, 24 - mov r2, r12 - lsls r1, r2, 24 - cmp r0, r12 - bge _0807462E - lsrs r5, r1, 24 -_0807462E: - lsls r0, r4, 24 - asrs r0, 24 - mov r3, r8 - lsls r1, r3, 24 - cmp r0, r8 - bge _0807463C - lsrs r4, r1, 24 -_0807463C: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 24 - asrs r0, 19 - orrs r1, r0 - lsls r0, r4, 24 - asrs r0, 14 - orrs r1, r0 - mov r4, r9 - strh r1, [r4] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, r10 - bcc _080745D6 - b _080747B4 - .align 2, 0 -_0807465C: .4byte 0x0202eac8 -_08074660: .4byte 0x0202eec8 -_08074664: - adds r7, r2, 0 - cmp r7, r10 - bcc _0807466C - b _080747B4 -_0807466C: - lsls r1, r7, 1 - ldr r0, _080746C4 - adds r2, r1, r0 - ldr r1, [r2] - lsls r0, r1, 27 - lsrs r0, 3 - movs r3, 0x80 - lsls r3, 18 - adds r0, r3 - lsrs r6, r0, 24 - lsls r0, r1, 22 - lsrs r0, 27 - adds r5, r0, 0x2 - lsls r1, 17 - lsrs r1, 27 - adds r4, r1, 0x2 - cmp r6, 0x1F - ble _08074692 - movs r6, 0x1F -_08074692: - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0x1F - ble _0807469C - movs r5, 0x1F -_0807469C: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x1F - ble _080746A6 - movs r4, 0x1F -_080746A6: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 24 - asrs r0, 19 - orrs r1, r0 - lsls r0, r4, 24 - asrs r0, 14 - orrs r1, r0 - strh r1, [r2] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, r10 - bcc _0807466C - b _080747B4 - .align 2, 0 -_080746C4: .4byte 0x0202eec8 -_080746C8: - adds r7, r2, 0 - cmp r7, r10 - bcs _080747B4 -_080746CE: - lsls r2, r7, 1 - ldr r0, _08074748 - adds r0, r2, r0 - ldr r1, [r0] - lsls r3, r1, 27 - lsls r0, r1, 22 - lsrs r0, 27 - mov r12, r0 - lsls r1, 17 - lsrs r1, 27 - mov r8, r1 - ldr r0, _0807474C - adds r2, r0 - ldr r1, [r2] - lsls r0, r1, 27 - lsrs r0, 3 - movs r4, 0x80 - lsls r4, 18 - adds r0, r4 - lsrs r6, r0, 24 - lsls r0, r1, 22 - lsrs r0, 27 - adds r5, r0, 0x2 - lsls r1, 17 - lsrs r1, 27 - adds r4, r1, 0x2 - lsrs r3, 3 - asrs r0, r3, 24 - cmp r6, r0 - ble _0807470C - lsrs r6, r3, 24 -_0807470C: - lsls r0, r5, 24 - asrs r0, 24 - mov r3, r12 - lsls r1, r3, 24 - cmp r0, r12 - ble _0807471A - lsrs r5, r1, 24 -_0807471A: - lsls r0, r4, 24 - asrs r0, 24 - mov r3, r8 - lsls r1, r3, 24 - cmp r0, r8 - ble _08074728 - lsrs r4, r1, 24 -_08074728: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 24 - asrs r0, 19 - orrs r1, r0 - lsls r0, r4, 24 - asrs r0, 14 - orrs r1, r0 - strh r1, [r2] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, r10 - bcc _080746CE - b _080747B4 - .align 2, 0 -_08074748: .4byte 0x0202eac8 -_0807474C: .4byte 0x0202eec8 -_08074750: - adds r7, r2, 0 - cmp r7, r10 - bcs _080747B4 - ldr r4, _080747DC - mov r8, r4 -_0807475A: - lsls r0, r7, 1 - mov r1, r8 - adds r3, r0, r1 - ldr r1, [r3] - lsls r2, r1, 27 - lsrs r2, 3 - movs r4, 0xFE - lsls r4, 24 - adds r2, r4 - lsls r0, r1, 22 - lsrs r0, 27 - subs r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 17 - lsrs r1, 27 - subs r1, 0x2 - lsls r1, 24 - lsrs r4, r1, 24 - lsrs r6, r2, 24 - cmp r2, 0 - bge _08074788 - movs r6, 0 -_08074788: - lsls r0, r5, 24 - cmp r0, 0 - bge _08074790 - movs r5, 0 -_08074790: - lsls r0, r4, 24 - cmp r0, 0 - bge _08074798 - movs r4, 0 -_08074798: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 24 - asrs r0, 19 - orrs r1, r0 - lsls r0, r4, 24 - asrs r0, 14 - orrs r1, r0 - strh r1, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, r10 - bcc _0807475A -_080747B4: - ldr r0, _080747E0 - ldrb r2, [r0, 0xA] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r3, 0x5 - negs r3, r3 - ands r3, r2 - orrs r3, r1 - ldr r1, _080747E0 - strb r3, [r1, 0xA] - movs r0, 0x4 - ands r0, r3 - cmp r0, 0 - beq _080747E4 - ldrb r0, [r1, 0x7] - b _080748B0 - .align 2, 0 -_080747DC: .4byte 0x0202eec8 -_080747E0: .4byte 0x0202f388 -_080747E4: - ldr r2, _08074800 - ldrh r4, [r2, 0x4] - lsls r5, r4, 21 - lsrs r0, r5, 27 - lsls r2, r3, 25 - lsrs r1, r2, 28 - subs r0, r1 - cmp r0, 0 - bge _08074808 - ldr r0, _08074804 - ands r0, r4 - ldr r3, _08074800 - strh r0, [r3, 0x4] - b _0807481E - .align 2, 0 -_08074800: .4byte 0x0202f388 -_08074804: .4byte 0xfffff83f -_08074808: - lsrs r1, r5, 27 - lsrs r0, r2, 28 - subs r1, r0 - movs r0, 0x1F - ands r1, r0 - lsls r1, 6 - ldr r0, _08074844 - ands r0, r4 - orrs r0, r1 - ldr r4, _08074848 - strh r0, [r4, 0x4] -_0807481E: - ldr r1, _08074848 - ldrh r0, [r1, 0x4] - movs r1, 0xF8 - lsls r1, 3 - ands r1, r0 - cmp r1, 0 - bne _080748AC - ldr r2, _08074848 - ldrb r0, [r2, 0x8] - lsls r0, 26 - lsrs r0, 26 - cmp r0, 0x1 - beq _08074870 - cmp r0, 0x1 - bgt _0807484C - cmp r0, 0 - beq _08074856 - b _08074898 - .align 2, 0 -_08074844: .4byte 0xfffff83f -_08074848: .4byte 0x0202f388 -_0807484C: - cmp r0, 0x2 - beq _08074856 - cmp r0, 0x3 - beq _0807488C - b _08074898 -_08074856: - ldr r0, _08074864 - ldr r1, _08074868 - ldr r2, _0807486C - bl CpuSet - b _08074898 - .align 2, 0 -_08074864: .4byte 0x0202eac8 -_08074868: .4byte 0x0202eec8 -_0807486C: .4byte 0x04000100 -_08074870: - movs r0, 0x1 - negs r0, r0 - str r0, [sp] - ldr r1, _08074884 - ldr r2, _08074888 - mov r0, sp - bl CpuSet - b _08074898 - .align 2, 0 -_08074884: .4byte 0x0202eec8 -_08074888: .4byte 0x05000100 -_0807488C: - str r1, [sp, 0x4] - add r0, sp, 0x4 - ldr r1, _080748C4 - ldr r2, _080748C8 - bl CpuSet -_08074898: - ldr r2, _080748CC - ldrb r1, [r2, 0x9] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldrb r0, [r2, 0xA] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0xA] -_080748AC: - ldr r3, _080748CC - ldrb r0, [r3, 0x7] -_080748B0: - lsrs r0, 7 -_080748B2: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080748C4: .4byte 0x0202eec8 -_080748C8: .4byte 0x05000100 -_080748CC: .4byte 0x0202f388 - thumb_func_end pal_fade__1 - - thumb_func_start sub_80748D0 -sub_80748D0: @ 80748D0 - push {r4-r7,lr} - ldr r5, [sp, 0x14] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r7, _08074958 - str r0, [r7] - movs r0, 0x3F - ands r1, r0 - ldrb r4, [r7, 0x4] - movs r6, 0x40 - negs r6, r6 - adds r0, r6, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r7, 0x4] - ldrb r0, [r7, 0x8] - ands r6, r0 - orrs r6, r1 - strb r6, [r7, 0x8] - movs r0, 0x1F - adds r1, r2, 0 - ands r1, r0 - lsls r1, 6 - ldrh r4, [r7, 0x4] - ldr r0, _0807495C - ands r0, r4 - orrs r0, r1 - strh r0, [r7, 0x4] - lsls r4, r3, 3 - ldrb r1, [r7, 0x5] - movs r0, 0x7 - ands r0, r1 - orrs r0, r4 - strb r0, [r7, 0x5] - ldrb r0, [r7, 0x7] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r7, 0x7] - ldrb r1, [r7, 0x9] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - movs r1, 0x1 - ands r5, r1 - lsls r5, 2 - subs r1, 0x6 - ands r0, r1 - orrs r0, r5 - subs r1, 0x4 - ands r0, r1 - strb r0, [r7, 0x9] - cmp r2, r3 - bcs _08074960 - movs r0, 0x41 - negs r0, r0 - ands r6, r0 - b _08074964 - .align 2, 0 -_08074958: .4byte 0x0202f388 -_0807495C: .4byte 0xfffff83f -_08074960: - movs r0, 0x40 - orrs r6, r0 -_08074964: - strb r6, [r7, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80748D0 - - thumb_func_start pal_fade__2 -pal_fade__2: @ 807496C - push {r4-r7,lr} - ldr r2, _08074980 - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0 - bne _08074984 - movs r0, 0 - b _08074A7C - .align 2, 0 -_08074980: .4byte 0x0202f388 -_08074984: - ldrb r2, [r4, 0x4] - lsls r1, r2, 26 - ldrb r3, [r4, 0x8] - lsls r0, r3, 26 - cmp r1, r0 - bcs _080749A6 - lsrs r0, r1, 26 - adds r0, 0x1 - movs r1, 0x3F - ands r0, r1 - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x4] - movs r0, 0x2 - b _08074A7C -_080749A6: - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - strb r0, [r4, 0x4] - movs r0, 0x40 - ands r0, r3 - cmp r0, 0 - bne _08074A04 - ldrh r1, [r4, 0x4] - lsls r0, r1, 21 - lsrs r0, 27 - adds r0, 0x1 - movs r7, 0x1F - ands r0, r7 - lsls r0, 6 - ldr r6, _08074A00 - adds r3, r6, 0 - ands r3, r1 - orrs r3, r0 - strh r3, [r4, 0x4] - lsls r5, r3, 21 - ldrb r0, [r4, 0x5] - lsrs r1, r5, 27 - lsrs r0, 3 - cmp r1, r0 - bls _08074A50 - ldrb r2, [r4, 0x9] - lsls r1, r2, 28 - lsrs r1, 31 - adds r1, 0x1 - movs r0, 0x1 - ands r1, r0 - lsls r1, 3 - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x9] - lsrs r0, r5, 27 - subs r0, 0x1 - ands r0, r7 - lsls r0, 6 - ands r3, r6 - b _08074A4C - .align 2, 0 -_08074A00: .4byte 0xfffff83f -_08074A04: - ldrh r2, [r4, 0x4] - lsls r1, r2, 21 - lsrs r0, r1, 27 - subs r0, 0x1 - movs r6, 0x1F - ands r0, r6 - lsls r0, 6 - ldr r5, _08074A84 - adds r3, r5, 0 - ands r3, r2 - orrs r3, r0 - strh r3, [r4, 0x4] - lsrs r1, 27 - subs r1, 0x1 - ldrb r0, [r4, 0x5] - lsrs r0, 3 - cmp r1, r0 - bge _08074A50 - ldrb r2, [r4, 0x9] - lsls r1, r2, 28 - lsrs r1, 31 - adds r1, 0x1 - movs r0, 0x1 - ands r1, r0 - lsls r1, 3 - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x9] - lsls r0, r3, 21 - lsrs r0, 27 - adds r0, 0x1 - ands r0, r6 - lsls r0, 6 - ands r3, r5 -_08074A4C: - orrs r3, r0 - strh r3, [r4, 0x4] -_08074A50: - ldrb r1, [r4, 0x9] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08074A78 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08074A6E - movs r0, 0 - str r0, [r4] - ldrh r1, [r4, 0x4] - ldr r0, _08074A84 - ands r0, r1 - strh r0, [r4, 0x4] -_08074A6E: - ldrb r1, [r4, 0x9] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x9] -_08074A78: - ldrb r0, [r4, 0x7] - lsrs r0, 7 -_08074A7C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08074A84: .4byte 0xfffff83f - thumb_func_end pal_fade__2 - - thumb_func_start sub_8074A88 -sub_8074A88: @ 8074A88 - push {lr} - ldr r1, _08074ACC - ldr r2, _08074AD0 - ldr r0, [r2] - strh r0, [r1] - adds r1, 0x4 - ldrh r3, [r2, 0x4] - lsls r0, r3, 21 - lsrs r0, 27 - strh r0, [r1] - ldrb r1, [r2, 0x9] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08074AC6 - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - negs r1, r1 - ands r0, r1 - strb r0, [r2, 0x9] - movs r0, 0 - str r0, [r2] - ldr r0, _08074AD4 - ands r0, r3 - strh r0, [r2, 0x4] - ldrb r1, [r2, 0x7] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x7] -_08074AC6: - pop {r0} - bx r0 - .align 2, 0 -_08074ACC: .4byte 0x04000050 -_08074AD0: .4byte 0x0202f388 -_08074AD4: .4byte 0xfffff83f - thumb_func_end sub_8074A88 - - thumb_func_start sub_8074AD8 -sub_8074AD8: @ 8074AD8 - push {r4,lr} - ldr r3, _08074B10 - ldrb r4, [r3, 0xA] - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _08074B34 - ldr r2, [r3, 0x8] - movs r0, 0xF8 - lsls r0, 9 - ands r0, r2 - movs r1, 0x80 - lsls r1, 7 - cmp r0, r1 - bne _08074B18 - ldrb r1, [r3, 0x7] - movs r0, 0x7F - ands r0, r1 - strb r0, [r3, 0x7] - movs r0, 0x3 - negs r0, r0 - ands r0, r4 - strb r0, [r3, 0xA] - ldr r0, [r3, 0x8] - ldr r1, _08074B14 - ands r0, r1 - str r0, [r3, 0x8] - b _08074B2C - .align 2, 0 -_08074B10: .4byte 0x0202f388 -_08074B14: .4byte 0xfffe0fff -_08074B18: - lsls r0, r2, 15 - lsrs r0, 27 - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - lsls r0, 12 - ldr r1, _08074B30 - ands r1, r2 - orrs r1, r0 - str r1, [r3, 0x8] -_08074B2C: - movs r0, 0x1 - b _08074B36 - .align 2, 0 -_08074B30: .4byte 0xfffe0fff -_08074B34: - movs r0, 0 -_08074B36: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8074AD8 - - thumb_func_start sub_8074B3C -sub_8074B3C: @ 8074B3C - push {r4-r7,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 16 - lsrs r6, r2, 16 - movs r5, 0 - cmp r4, 0 - beq _08074B70 -_08074B4E: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08074B62 - adds r0, r5, 0 - movs r1, 0x10 - adds r2, r7, 0 - adds r3, r6, 0 - bl pal_fade_1 -_08074B62: - lsrs r4, 1 - adds r0, r5, 0 - adds r0, 0x10 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0 - bne _08074B4E -_08074B70: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8074B3C - - thumb_func_start sub_8074B78 -sub_8074B78: @ 8074B78 - push {r4,r5,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _08074B9C - ldr r5, _08074BA0 - ldr r3, _08074BA4 - str r4, [r3] - str r5, [r3, 0x4] - ldr r4, _08074BA8 - str r4, [r3, 0x8] - ldr r3, [r3, 0x8] - bl sub_8074B3C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08074B9C: .4byte 0x0202eac8 -_08074BA0: .4byte 0x0202eec8 -_08074BA4: .4byte 0x040000d4 -_08074BA8: .4byte 0x84000100 - thumb_func_end sub_8074B78 - - thumb_func_start sound_sources_off -sound_sources_off: @ 8074BAC - push {lr} - ldr r1, _08074BBC - movs r0, 0 - strb r0, [r1] - bl map_music_set_to_zero - pop {r0} - bx r0 - .align 2, 0 -_08074BBC: .4byte 0x03004aec - thumb_func_end sound_sources_off - - thumb_func_start sound_something -sound_something: @ 8074BC0 - push {r4,r5,lr} - ldr r0, _08074BD8 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _08074CA2 - lsls r0, r1, 2 - ldr r1, _08074BDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08074BD8: .4byte 0x030006d8 -_08074BDC: .4byte _08074BE0 - .align 2, 0 -_08074BE0: - .4byte _08074CA2 - .4byte _08074C00 - .4byte _08074CA2 - .4byte _08074CA2 - .4byte _08074CA2 - .4byte _08074C14 - .4byte _08074C34 - .4byte _08074C70 -_08074C00: - movs r0, 0x2 - strb r0, [r2] - ldr r0, _08074C10 - ldrh r0, [r0] - bl sub_8075474 - b _08074CA2 - .align 2, 0 -_08074C10: .4byte 0x030006d4 -_08074C14: - bl sub_8075028 - lsls r0, 24 - cmp r0, 0 - beq _08074CA2 - ldr r0, _08074C2C - movs r1, 0 - strh r1, [r0] - ldr r0, _08074C30 - strb r1, [r0] - b _08074CA2 - .align 2, 0 -_08074C2C: .4byte 0x030006d6 -_08074C30: .4byte 0x030006d8 -_08074C34: - bl sub_8075028 - lsls r0, 24 - cmp r0, 0 - beq _08074CA2 - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _08074CA2 - ldr r2, _08074C64 - ldr r1, _08074C68 - ldrh r0, [r1] - strh r0, [r2] - movs r0, 0 - strh r0, [r1] - ldr r1, _08074C6C - movs r0, 0x2 - strb r0, [r1] - ldrh r0, [r2] - bl sub_8075474 - b _08074CA2 - .align 2, 0 -_08074C64: .4byte 0x030006d4 -_08074C68: .4byte 0x030006d6 -_08074C6C: .4byte 0x030006d8 -_08074C70: - bl sub_8075028 - lsls r0, 24 - cmp r0, 0 - beq _08074CA2 - bl task_is_not_running_overworld_fanfare - lsls r0, 24 - cmp r0, 0 - beq _08074CA2 - ldr r4, _08074CA8 - ldrh r0, [r4] - ldr r5, _08074CAC - ldrb r1, [r5] - bl sub_8074F6C - ldr r1, _08074CB0 - ldrh r0, [r4] - strh r0, [r1] - movs r2, 0 - strh r2, [r4] - ldr r1, _08074CB4 - movs r0, 0x2 - strb r0, [r1] - strb r2, [r5] -_08074CA2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08074CA8: .4byte 0x030006d6 -_08074CAC: .4byte 0x030006d9 -_08074CB0: .4byte 0x030006d4 -_08074CB4: .4byte 0x030006d8 - thumb_func_end sound_something - - thumb_func_start map_music_set_to_zero -map_music_set_to_zero: @ 8074CB8 - ldr r0, _08074CCC - movs r1, 0 - strh r1, [r0] - ldr r0, _08074CD0 - strh r1, [r0] - ldr r0, _08074CD4 - strb r1, [r0] - ldr r0, _08074CD8 - strb r1, [r0] - bx lr - .align 2, 0 -_08074CCC: .4byte 0x030006d4 -_08074CD0: .4byte 0x030006d6 -_08074CD4: .4byte 0x030006d8 -_08074CD8: .4byte 0x030006d9 - thumb_func_end map_music_set_to_zero - - thumb_func_start current_map_music_get -current_map_music_get: @ 8074CDC - ldr r0, _08074CE4 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08074CE4: .4byte 0x030006d4 - thumb_func_end current_map_music_get - - thumb_func_start current_map_music_set -current_map_music_set: @ 8074CE8 - ldr r1, _08074CFC - strh r0, [r1] - ldr r1, _08074D00 - movs r0, 0 - strh r0, [r1] - ldr r1, _08074D04 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_08074CFC: .4byte 0x030006d4 -_08074D00: .4byte 0x030006d6 -_08074D04: .4byte 0x030006d8 - thumb_func_end current_map_music_set - - thumb_func_start sub_8074D08 -sub_8074D08: @ 8074D08 - ldr r0, _08074D1C - movs r1, 0 - strh r1, [r0] - ldr r0, _08074D20 - strh r1, [r0] - ldr r1, _08074D24 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_08074D1C: .4byte 0x030006d4 -_08074D20: .4byte 0x030006d6 -_08074D24: .4byte 0x030006d8 - thumb_func_end sub_8074D08 - - thumb_func_start sub_8074D28 -sub_8074D28: @ 8074D28 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8074E14 - lsls r0, 24 - cmp r0, 0 - beq _08074D3E - adds r0, r4, 0 - bl play_sound_effect -_08074D3E: - ldr r0, _08074D54 - movs r1, 0 - strh r1, [r0] - ldr r0, _08074D58 - strh r1, [r0] - ldr r1, _08074D5C - movs r0, 0x5 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074D54: .4byte 0x030006d4 -_08074D58: .4byte 0x030006d6 -_08074D5C: .4byte 0x030006d8 - thumb_func_end sub_8074D28 - - thumb_func_start sub_8074D60 -sub_8074D60: @ 8074D60 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - bl sub_8074D28 - ldr r1, _08074D88 - movs r0, 0 - strh r0, [r1] - ldr r0, _08074D8C - strh r4, [r0] - ldr r1, _08074D90 - movs r0, 0x6 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074D88: .4byte 0x030006d4 -_08074D8C: .4byte 0x030006d6 -_08074D90: .4byte 0x030006d8 - thumb_func_end sub_8074D60 - - thumb_func_start sub_8074D94 -sub_8074D94: @ 8074D94 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 24 - lsrs r5, 24 - bl sub_8074D28 - ldr r1, _08074DC8 - movs r0, 0 - strh r0, [r1] - ldr r0, _08074DCC - strh r4, [r0] - ldr r1, _08074DD0 - movs r0, 0x7 - strb r0, [r1] - ldr r0, _08074DD4 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08074DC8: .4byte 0x030006d4 -_08074DCC: .4byte 0x030006d6 -_08074DD0: .4byte 0x030006d8 -_08074DD4: .4byte 0x030006d9 - thumb_func_end sub_8074D94 - - thumb_func_start unref_sub_8074DD8 -unref_sub_8074DD8: @ 8074DD8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8074F6C - ldr r0, _08074E04 - strh r4, [r0] - ldr r0, _08074E08 - movs r2, 0 - strh r2, [r0] - ldr r1, _08074E0C - movs r0, 0x2 - strb r0, [r1] - ldr r0, _08074E10 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074E04: .4byte 0x030006d4 -_08074E08: .4byte 0x030006d6 -_08074E0C: .4byte 0x030006d8 -_08074E10: .4byte 0x030006d9 - thumb_func_end unref_sub_8074DD8 - - thumb_func_start sub_8074E14 -sub_8074E14: @ 8074E14 - push {lr} - ldr r0, _08074E2C - ldrb r0, [r0] - cmp r0, 0x6 - beq _08074E30 - cmp r0, 0x5 - beq _08074E30 - cmp r0, 0x7 - beq _08074E30 - movs r0, 0x1 - b _08074E32 - .align 2, 0 -_08074E2C: .4byte 0x030006d8 -_08074E30: - movs r0, 0 -_08074E32: - pop {r1} - bx r1 - thumb_func_end sub_8074E14 - - thumb_func_start pause_music_for_sound_maybe -pause_music_for_sound_maybe: @ 8074E38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08074E60 - bl m4aMPlayStop - ldr r0, _08074E64 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r4] - ldr r2, _08074E68 - ldrh r1, [r4, 0x2] - strh r1, [r2] - bl m4aSongNumStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074E60: .4byte 0x03007380 -_08074E64: .4byte gUnknown_0837DEF4 -_08074E68: .4byte 0x030006da - thumb_func_end pause_music_for_sound_maybe - - thumb_func_start ducking_tick -ducking_tick: @ 8074E6C - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, _08074E84 - ldrh r0, [r2] - cmp r0, 0 - beq _08074E88 - subs r0, 0x1 - strh r0, [r2] - movs r0, 0 - b _08074EA0 - .align 2, 0 -_08074E84: .4byte 0x030006da -_08074E88: - cmp r1, 0 - bne _08074E98 - ldr r0, _08074E94 - bl m4aMPlayContinue - b _08074E9E - .align 2, 0 -_08074E94: .4byte 0x03007380 -_08074E98: - movs r0, 0 - bl m4aSongNumStart -_08074E9E: - movs r0, 0x1 -_08074EA0: - pop {r1} - bx r1 - thumb_func_end ducking_tick - - thumb_func_start unref_sub_8074EA4 -unref_sub_8074EA4: @ 8074EA4 - push {lr} - lsls r0, 24 - ldr r1, _08074EB8 - lsrs r0, 22 - adds r0, r1 - ldrh r0, [r0] - bl m4aSongNumStop - pop {r0} - bx r0 - .align 2, 0 -_08074EB8: .4byte gUnknown_0837DEF4 - thumb_func_end unref_sub_8074EA4 - - thumb_func_start fanfare_play -fanfare_play: @ 8074EBC - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0 - ldr r2, _08074EDC -_08074EC6: - ldrh r0, [r2] - cmp r0, r3 - bne _08074EE0 - lsls r0, r1, 24 - lsrs r0, 24 - bl pause_music_for_sound_maybe - bl task_add_50_overworld_fanfare_if_not_running - b _08074EF2 - .align 2, 0 -_08074EDC: .4byte gUnknown_0837DEF4 -_08074EE0: - adds r2, 0x4 - adds r1, 0x1 - cmp r1, 0xB - bls _08074EC6 - movs r0, 0 - bl pause_music_for_sound_maybe - bl task_add_50_overworld_fanfare_if_not_running -_08074EF2: - pop {r0} - bx r0 - thumb_func_end fanfare_play - - thumb_func_start task_is_not_running_overworld_fanfare -task_is_not_running_overworld_fanfare: @ 8074EF8 - push {lr} - ldr r0, _08074F0C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08074F10 - movs r0, 0x1 - b _08074F12 - .align 2, 0 -_08074F0C: .4byte task50_overworld_fanfare -_08074F10: - movs r0, 0 -_08074F12: - pop {r1} - bx r1 - thumb_func_end task_is_not_running_overworld_fanfare - - thumb_func_start task50_overworld_fanfare -task50_overworld_fanfare: @ 8074F18 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08074F2C - ldrh r0, [r1] - cmp r0, 0 - beq _08074F30 - subs r0, 0x1 - strh r0, [r1] - b _08074F3C - .align 2, 0 -_08074F2C: .4byte 0x030006da -_08074F30: - ldr r0, _08074F44 - bl m4aMPlayContinue - adds r0, r4, 0 - bl DestroyTask -_08074F3C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074F44: .4byte 0x03007380 - thumb_func_end task50_overworld_fanfare - - thumb_func_start task_add_50_overworld_fanfare_if_not_running -task_add_50_overworld_fanfare_if_not_running: @ 8074F48 - push {r4,lr} - ldr r4, _08074F68 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08074F62 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask -_08074F62: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08074F68: .4byte task50_overworld_fanfare - thumb_func_end task_add_50_overworld_fanfare_if_not_running - - thumb_func_start sub_8074F6C -sub_8074F6C: @ 8074F6C - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _08074FAC - ldrb r0, [r0] - cmp r0, 0 - beq _08074F80 - movs r5, 0 -_08074F80: - adds r0, r5, 0 - bl m4aSongNumStart - ldr r4, _08074FB0 - adds r0, r4, 0 - bl m4aMPlayImmInit - ldr r1, _08074FB4 - adds r0, r4, 0 - movs r2, 0 - bl m4aMPlayVolumeControl - adds r0, r5, 0 - bl m4aSongNumStop - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_81DE0F0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08074FAC: .4byte 0x03004aec -_08074FB0: .4byte 0x03007380 -_08074FB4: .4byte 0x0000ffff - thumb_func_end sub_8074F6C - - thumb_func_start sub_8074FB8 -sub_8074FB8: @ 8074FB8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08074FCC - bl sub_81DE0D0 - pop {r0} - bx r0 - .align 2, 0 -_08074FCC: .4byte 0x03007380 - thumb_func_end sub_8074FB8 - - thumb_func_start sub_8074FD0 -sub_8074FD0: @ 8074FD0 - push {lr} - ldr r0, _08074FE8 - ldr r1, [r0, 0x4] - cmp r1, 0 - blt _08074FF0 - ldr r0, _08074FEC - ands r1, r0 - cmp r1, 0 - beq _08074FF0 - movs r0, 0 - b _08074FF2 - .align 2, 0 -_08074FE8: .4byte 0x03007380 -_08074FEC: .4byte 0x0000ffff -_08074FF0: - movs r0, 0x1 -_08074FF2: - pop {r1} - bx r1 - thumb_func_end sub_8074FD0 - - thumb_func_start sub_8074FF8 -sub_8074FF8: @ 8074FF8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0807500C - bl sub_81DE0F0 - pop {r0} - bx r0 - .align 2, 0 -_0807500C: .4byte 0x03007380 - thumb_func_end sub_8074FF8 - - thumb_func_start play_sound_effect -play_sound_effect: @ 8075010 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08075024 - bl m4aMPlayFadeOut - pop {r0} - bx r0 - .align 2, 0 -_08075024: .4byte 0x03007380 - thumb_func_end play_sound_effect - - thumb_func_start sub_8075028 -sub_8075028: @ 8075028 - push {lr} - ldr r0, _08075038 - ldrh r0, [r0, 0x4] - cmp r0, 0 - beq _0807503C - movs r0, 0 - b _0807503E - .align 2, 0 -_08075038: .4byte 0x03007380 -_0807503C: - movs r0, 0x1 -_0807503E: - pop {r1} - bx r1 - thumb_func_end sub_8075028 - - thumb_func_start cry_related -cry_related: @ 8075044 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08075084 - ldr r1, _08075088 - movs r2, 0x55 - bl m4aMPlayVolumeControl - lsls r4, 24 - asrs r4, 24 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x7D - movs r3, 0xA - bl sub_80751C0 - ldr r1, _0807508C - movs r0, 0x2 - strb r0, [r1] - bl sub_8075450 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08075084: .4byte 0x03007380 -_08075088: .4byte 0x0000ffff -_0807508C: .4byte 0x0202f7a0 - thumb_func_end cry_related - - thumb_func_start sub_8075090 -sub_8075090: @ 8075090 - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r1, 24 - asrs r1, 24 - lsls r2, 24 - asrs r2, 24 - movs r4, 0 - str r4, [sp] - bl sub_80751C0 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075090 - - thumb_func_start sub_80750B4 -sub_80750B4: @ 80750B4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - cmp r4, 0x1 - bne _080750DA - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x7D - movs r3, 0xA - bl sub_80751C0 - b _080750FE -_080750DA: - ldr r0, _08075108 - ldr r1, _0807510C - movs r2, 0x55 - bl m4aMPlayVolumeControl - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x7D - movs r3, 0xA - bl sub_80751C0 - ldr r1, _08075110 - movs r0, 0x2 - strb r0, [r1] - bl sub_8075450 -_080750FE: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08075108: .4byte 0x03007380 -_0807510C: .4byte 0x0000ffff -_08075110: .4byte 0x0202f7a0 - thumb_func_end sub_80750B4 - - thumb_func_start sub_8075114 -sub_8075114: @ 8075114 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r0, 16 - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - adds r4, r2, 0 - cmp r2, 0x1 - bne _0807513E - lsls r1, 24 - asrs r1, 24 - str r2, [sp] - movs r2, 0x7D - movs r3, 0xA - bl sub_80751C0 - b _08075164 -_0807513E: - ldr r0, _0807516C - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08075154 - ldr r0, _08075170 - ldr r1, _08075174 - movs r2, 0x55 - bl m4aMPlayVolumeControl -_08075154: - lsls r1, r5, 24 - asrs r1, 24 - str r4, [sp] - adds r0, r6, 0 - movs r2, 0x7D - movs r3, 0xA - bl sub_80751C0 -_08075164: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0807516C: .4byte 0x020239f8 -_08075170: .4byte 0x03007380 -_08075174: .4byte 0x0000ffff - thumb_func_end sub_8075114 - - thumb_func_start sub_8075178 -sub_8075178: @ 8075178 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080751B4 - ldr r1, _080751B8 - movs r2, 0x55 - bl m4aMPlayVolumeControl - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x7D - movs r3, 0xA - bl sub_80751C0 - ldr r1, _080751BC - movs r0, 0x2 - strb r0, [r1] - bl sub_8075450 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080751B4: .4byte 0x03007380 -_080751B8: .4byte 0x0000ffff -_080751BC: .4byte 0x0202f7a0 - thumb_func_end sub_8075178 - - thumb_func_start sub_80751C0 -sub_80751C0: @ 80751C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r4, [sp, 0x28] - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0807520C - adds r0, r1 - lsrs r0, 16 - mov r8, r0 - movs r0, 0 - mov r9, r0 - movs r6, 0 - movs r7, 0x8C - movs r5, 0xF0 - lsls r5, 6 - movs r1, 0 - str r1, [sp, 0x4] - cmp r4, 0x5 - bhi _08075260 - lsls r0, r4, 2 - ldr r1, _08075210 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807520C: .4byte 0xffff0000 -_08075210: .4byte _08075214 - .align 2, 0 -_08075214: - .4byte _08075260 - .4byte _0807522C - .4byte _08075232 - .4byte _08075244 - .4byte _08075250 - .4byte _0807525C -_0807522C: - movs r7, 0x14 - movs r6, 0xE1 - b _08075260 -_08075232: - movs r7, 0x1E - movs r6, 0xE1 - ldr r5, _08075240 - movs r2, 0x14 - str r2, [sp, 0x4] - movs r2, 0x50 - b _08075260 - .align 2, 0 -_08075240: .4byte 0x00003cf0 -_08075244: - movs r7, 0x32 - movs r6, 0xC8 - ldr r5, _0807524C - b _08075260 - .align 2, 0 -_0807524C: .4byte 0x000039d0 -_08075250: - movs r7, 0x14 - movs r6, 0xDC - ldr r5, _08075258 - b _08075260 - .align 2, 0 -_08075258: .4byte 0x00003db8 -_0807525C: - movs r6, 0xC8 - ldr r5, _080752B8 -_08075260: - adds r0, r2, 0 - bl sub_81DF50C - mov r1, r10 - lsls r0, r1, 24 - asrs r0, 24 - bl sub_81DF520 - adds r0, r5, 0 - bl sub_81DF538 - adds r0, r7, 0 - bl sub_81DF570 - movs r0, 0 - bl sub_81DF588 - adds r0, r6, 0 - bl sub_81DF57C - ldr r0, [sp, 0x4] - bl sub_81DF5AC - ldr r0, [sp] - bl sub_81DF618 - mov r0, r8 - bl speciesid_conv - mov r8, r0 - movs r1, 0x7F - mov r2, r8 - ands r1, r2 - lsrs r0, r2, 7 - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - cmp r0, 0x1 - beq _080752EC - cmp r0, 0x1 - bgt _080752BC - cmp r0, 0 - beq _080752C6 - b _0807535A - .align 2, 0 -_080752B8: .4byte 0x000038a4 -_080752BC: - cmp r2, 0x2 - beq _08075310 - cmp r2, 0x3 - beq _08075334 - b _0807535A -_080752C6: - mov r0, r9 - cmp r0, 0 - beq _080752DC - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080752D8 - b _08075350 - .align 2, 0 -_080752D8: .4byte gUnknown_084537C0 -_080752DC: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080752E8 - b _08075350 - .align 2, 0 -_080752E8: .4byte gUnknown_08452590 -_080752EC: - mov r2, r9 - cmp r2, 0 - beq _08075300 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080752FC - b _08075350 - .align 2, 0 -_080752FC: .4byte gUnknown_08453DC0 -_08075300: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0807530C - b _08075350 - .align 2, 0 -_0807530C: .4byte gUnknown_08452B90 -_08075310: - mov r0, r9 - cmp r0, 0 - beq _08075324 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08075320 - b _08075350 - .align 2, 0 -_08075320: .4byte gUnknown_084543C0 -_08075324: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08075330 - b _08075350 - .align 2, 0 -_08075330: .4byte gUnknown_08453190 -_08075334: - mov r2, r9 - cmp r2, 0 - beq _08075348 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08075344 - b _08075350 - .align 2, 0 -_08075344: .4byte gUnknown_084549C0 -_08075348: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0807536C -_08075350: - adds r0, r1 - bl sub_81DF43C - ldr r1, _08075370 - str r0, [r1] -_0807535A: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807536C: .4byte gUnknown_08453790 -_08075370: .4byte 0x0202f79c - thumb_func_end sub_80751C0 - - thumb_func_start sub_8075374 -sub_8075374: @ 8075374 - push {lr} - ldr r0, _0807538C - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08075390 - bl ClearPokemonCrySongs - movs r0, 0x1 - b _08075392 - .align 2, 0 -_0807538C: .4byte sub_8075408 -_08075390: - movs r0, 0 -_08075392: - pop {r1} - bx r1 - thumb_func_end sub_8075374 - - thumb_func_start sub_8075398 -sub_8075398: @ 8075398 - push {lr} - ldr r0, _080753AC - ldr r0, [r0] - bl m4aMPlayStop - bl ClearPokemonCrySongs - pop {r0} - bx r0 - .align 2, 0 -_080753AC: .4byte 0x0202f79c - thumb_func_end sub_8075398 - - thumb_func_start sub_80753B0 -sub_80753B0: @ 80753B0 - push {lr} - ldr r0, _080753C0 - ldr r0, [r0] - bl m4aMPlayStop - pop {r0} - bx r0 - .align 2, 0 -_080753C0: .4byte 0x0202f79c - thumb_func_end sub_80753B0 - - thumb_func_start sub_80753C4 -sub_80753C4: @ 80753C4 - push {lr} - ldr r0, _080753DC - ldr r0, [r0] - bl sub_81DF594 - cmp r0, 0 - bne _080753E0 - bl ClearPokemonCrySongs - movs r0, 0 - b _080753E2 - .align 2, 0 -_080753DC: .4byte 0x0202f79c -_080753E0: - movs r0, 0x1 -_080753E2: - pop {r1} - bx r1 - thumb_func_end sub_80753C4 - - thumb_func_start sub_80753E8 -sub_80753E8: @ 80753E8 - push {lr} - ldr r0, _080753FC - ldr r0, [r0] - bl sub_81DF594 - cmp r0, 0 - bne _08075400 - movs r0, 0 - b _08075402 - .align 2, 0 -_080753FC: .4byte 0x0202f79c -_08075400: - movs r0, 0x1 -_08075402: - pop {r1} - bx r1 - thumb_func_end sub_80753E8 - - thumb_func_start sub_8075408 -sub_8075408: @ 8075408 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _0807541C - ldrb r0, [r1] - cmp r0, 0 - beq _08075420 - subs r0, 0x1 - strb r0, [r1] - b _0807543E - .align 2, 0 -_0807541C: .4byte 0x0202f7a0 -_08075420: - ldr r0, _08075444 - ldr r0, [r0] - bl sub_81DF594 - cmp r0, 0 - bne _0807543E - ldr r0, _08075448 - ldr r1, _0807544C - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - adds r0, r4, 0 - bl DestroyTask -_0807543E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075444: .4byte 0x0202f79c -_08075448: .4byte 0x03007380 -_0807544C: .4byte 0x0000ffff - thumb_func_end sub_8075408 - - thumb_func_start sub_8075450 -sub_8075450: @ 8075450 - push {r4,lr} - ldr r4, _08075470 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0807546A - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask -_0807546A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075470: .4byte sub_8075408 - thumb_func_end sub_8075450 - - thumb_func_start sub_8075474 -sub_8075474: @ 8075474 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, _08075490 - ldrb r0, [r0] - cmp r0, 0 - beq _08075484 - movs r1, 0 -_08075484: - adds r0, r1, 0 - bl m4aSongNumStart - pop {r0} - bx r0 - .align 2, 0 -_08075490: .4byte 0x03004aec - thumb_func_end sub_8075474 - - thumb_func_start audio_play -audio_play: @ 8075494 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl m4aSongNumStart - pop {r0} - bx r0 - thumb_func_end audio_play - - thumb_func_start audio_play_and_stuff -audio_play_and_stuff: @ 80754A4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl m4aSongNumStart - ldr r6, _080754EC - adds r0, r6, 0 - bl m4aMPlayImmInit - ldr r0, _080754F0 - mov r8, r0 - bl m4aMPlayImmInit - ldr r5, _080754F4 - lsls r4, 24 - asrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080754EC: .4byte 0x030073c0 -_080754F0: .4byte 0x03007400 -_080754F4: .4byte 0x0000ffff - thumb_func_end audio_play_and_stuff - - thumb_func_start sub_80754F8 -sub_80754F8: @ 80754F8 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl m4aSongNumStart - ldr r5, _08075524 - adds r0, r5, 0 - bl m4aMPlayImmInit - ldr r1, _08075528 - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08075524: .4byte 0x030073c0 -_08075528: .4byte 0x0000ffff - thumb_func_end sub_80754F8 - - thumb_func_start sub_807552C -sub_807552C: @ 807552C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl m4aSongNumStart - ldr r5, _08075558 - adds r0, r5, 0 - bl m4aMPlayImmInit - ldr r1, _0807555C - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08075558: .4byte 0x03007400 -_0807555C: .4byte 0x0000ffff - thumb_func_end sub_807552C - - thumb_func_start sub_8075560 -sub_8075560: @ 8075560 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _08075584 - ldr r5, _08075588 - lsls r4, 24 - asrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - ldr r0, _0807558C - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08075584: .4byte 0x030073c0 -_08075588: .4byte 0x0000ffff -_0807558C: .4byte 0x03007400 - thumb_func_end sub_8075560 - - thumb_func_start mplay_has_finished_maybe -mplay_has_finished_maybe: @ 8075590 - push {lr} - ldr r0, _080755C0 - ldr r1, [r0, 0x4] - movs r2, 0x80 - lsls r2, 24 - adds r3, r0, 0 - cmp r1, 0 - bge _080755AA - ldr r0, _080755C4 - ldr r0, [r0, 0x4] - ands r0, r2 - cmp r0, 0 - bne _080755BC -_080755AA: - ldr r1, _080755C8 - ldrh r0, [r3, 0x4] - cmp r0, 0 - bne _080755CC - ldr r0, _080755C4 - ldr r0, [r0, 0x4] - ands r0, r1 - cmp r0, 0 - bne _080755CC -_080755BC: - movs r0, 0 - b _080755CE - .align 2, 0 -_080755C0: .4byte 0x030073c0 -_080755C4: .4byte 0x03007400 -_080755C8: .4byte 0x0000ffff -_080755CC: - movs r0, 0x1 -_080755CE: - pop {r1} - bx r1 - thumb_func_end mplay_has_finished_maybe - - thumb_func_start sub_80755D4 -sub_80755D4: @ 80755D4 - push {lr} - ldr r0, _080755EC - ldr r1, [r0, 0x4] - cmp r1, 0 - blt _080755F4 - ldr r0, _080755F0 - ands r1, r0 - cmp r1, 0 - beq _080755F4 - movs r0, 0x1 - b _080755F6 - .align 2, 0 -_080755EC: .4byte 0x03007380 -_080755F0: .4byte 0x0000ffff -_080755F4: - movs r0, 0 -_080755F6: - pop {r1} - bx r1 - thumb_func_end sub_80755D4 - - thumb_func_start sub_80755FC -sub_80755FC: @ 80755FC - push {lr} - ldr r0, _08075614 - ldr r1, [r0, 0x4] - cmp r1, 0 - blt _0807561C - ldr r0, _08075618 - ands r1, r0 - cmp r1, 0 - beq _0807561C - movs r0, 0x1 - b _0807561E - .align 2, 0 -_08075614: .4byte 0x03007450 -_08075618: .4byte 0x0000ffff -_0807561C: - movs r0, 0 -_0807561E: - pop {r1} - bx r1 - thumb_func_end sub_80755FC - - thumb_func_start sub_8075624 -sub_8075624: @ 8075624 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080756B8 - movs r1, 0 - strb r1, [r0] - ldr r0, _080756BC - strb r1, [r0] - ldr r0, _080756C0 - strb r1, [r0] - ldr r0, _080756C4 - strb r1, [r0] - ldr r0, _080756C8 - movs r1, 0 - str r1, [r0] - ldr r0, _080756CC - str r1, [r0] - ldr r0, _080756D0 - movs r2, 0 - strh r1, [r0] - ldr r0, _080756D4 - strb r2, [r0] - ldr r4, _080756D8 - ldr r5, _080756DC - ldr r6, _080756E0 - ldr r7, _080756E4 - ldr r0, _080756E8 - mov r12, r0 - ldr r1, _080756EC - mov r8, r1 - ldr r0, _080756F0 - mov r9, r0 - ldr r1, _080756F4 - adds r3, r1, 0 - ldr r1, _080756F8 - movs r2, 0x7 -_0807566E: - ldrh r0, [r1] - orrs r0, r3 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _0807566E - ldr r1, _080756FC - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xE -_08075684: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _08075684 - movs r1, 0 - movs r0, 0xFF - strb r0, [r4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x1] - strb r1, [r5] - strb r1, [r6] - movs r0, 0 - strh r1, [r7] - mov r1, r12 - strb r0, [r1] - mov r1, r8 - strb r0, [r1] - mov r1, r9 - strb r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080756B8: .4byte 0x0202f7b0 -_080756BC: .4byte 0x0202f7b1 -_080756C0: .4byte 0x0202f7b2 -_080756C4: .4byte 0x0202f7b3 -_080756C8: .4byte 0x0202f7b4 -_080756CC: .4byte 0x0202f7b8 -_080756D0: .4byte 0x0202f7bc -_080756D4: .4byte 0x0202f7be -_080756D8: .4byte 0x0202f7c2 -_080756DC: .4byte 0x0202f7c4 -_080756E0: .4byte 0x0202f7c5 -_080756E4: .4byte 0x0202f7c6 -_080756E8: .4byte 0x0202f7c8 -_080756EC: .4byte 0x0202f7c9 -_080756F0: .4byte 0x0202f7d2 -_080756F4: .4byte 0x0000ffff -_080756F8: .4byte 0x03004b10 -_080756FC: .4byte 0x03004b00 - thumb_func_end sub_8075624 - - thumb_func_start move_anim_start_t1 -move_anim_start_t1: @ 8075700 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _08075724 - ldr r0, _08075728 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, _0807572C - ldr r0, _08075730 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08075734 - movs r2, 0x1 - bl move_something - pop {r0} - bx r0 - .align 2, 0 -_08075724: .4byte 0x0202f7c8 -_08075728: .4byte 0x02024c07 -_0807572C: .4byte 0x0202f7c9 -_08075730: .4byte 0x02024c08 -_08075734: .4byte gUnknown_081C7168 - thumb_func_end move_anim_start_t1 - - thumb_func_start move_something -move_something: @ 8075738 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080757D8 - bl sub_8079E24 - movs r0, 0 - bl sub_8043EB4 - movs r4, 0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r6, _0807578C - movs r7, 0x64 - ldr r5, _08075790 -_08075774: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08075798 - ldrh r0, [r6] - muls r0, r7 - ldr r1, _08075794 - b _0807579E - .align 2, 0 -_0807578C: .4byte 0x02024a6a -_08075790: .4byte 0x0202f7ca -_08075794: .4byte 0x030045c0 -_08075798: - ldrh r0, [r6] - muls r0, r7 - ldr r1, _080757C0 -_0807579E: - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - strh r0, [r5] - adds r6, 0x2 - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _08075774 - ldr r3, _080757C4 - ldr r5, _080757C8 - ldr r1, _080757CC - mov r12, r1 - ldr r7, _080757D0 - ldr r6, _080757D4 - b _080757FC - .align 2, 0 -_080757C0: .4byte 0x03004360 -_080757C4: .4byte 0x0202f7c6 -_080757C8: .4byte 0x0202f7c2 -_080757CC: .4byte 0x0202f7b1 -_080757D0: .4byte 0x0202f7ac -_080757D4: .4byte sub_80759D0 -_080757D8: - ldr r3, _08075808 - ldr r5, _0807580C - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r1, _08075810 - mov r12, r1 - ldr r7, _08075814 - ldr r6, _08075818 - ldr r2, _0807581C - ldr r1, _08075820 - movs r4, 0x3 -_080757F0: - ldrh r0, [r2] - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080757F0 -_080757FC: - mov r0, r9 - cmp r0, 0 - bne _08075824 - strh r0, [r3] - b _08075828 - .align 2, 0 -_08075808: .4byte 0x0202f7c6 -_0807580C: .4byte 0x0202f7c2 -_08075810: .4byte 0x0202f7b1 -_08075814: .4byte 0x0202f7ac -_08075818: .4byte sub_80759D0 -_0807581C: .4byte 0x02019348 -_08075820: .4byte 0x0202f7ca -_08075824: - mov r1, r8 - strh r1, [r3] -_08075828: - ldr r1, _0807587C - movs r2, 0 - adds r0, r1, 0 - adds r0, 0xE -_08075830: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _08075830 - movs r0, 0xFF - strb r0, [r5] - movs r0, 0x1 - negs r0, r0 - strb r0, [r5, 0x1] - ldr r0, [sp] - add r0, r10 - ldr r0, [r0] - ldr r1, _08075880 - str r0, [r1] - movs r0, 0x1 - mov r1, r12 - strb r0, [r1] - movs r0, 0 - ldr r1, _08075884 - strb r0, [r1] - str r6, [r7] - ldr r0, _08075888 - adds r2, r0, 0 - ldr r1, _0807588C - movs r4, 0x7 -_08075862: - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08075862 - mov r1, r9 - cmp r1, 0 - beq _080758AE - movs r4, 0 - ldr r2, _08075890 - b _08075896 - .align 2, 0 -_0807587C: .4byte 0x03004b00 -_08075880: .4byte 0x0202f7a4 -_08075884: .4byte 0x0202f7b0 -_08075888: .4byte 0x0000ffff -_0807588C: .4byte 0x03004b10 -_08075890: .4byte gUnknown_081C7160 -_08075894: - adds r4, 0x1 -_08075896: - lsls r0, r4, 1 - adds r0, r2 - ldrh r0, [r0] - ldr r1, _080758D0 - cmp r0, r1 - beq _080758AE - cmp r8, r0 - bne _08075894 - ldr r0, _080758D4 - movs r2, 0x80 - bl m4aMPlayVolumeControl -_080758AE: - ldr r0, _080758D8 - movs r1, 0 - strh r1, [r0] - ldr r0, _080758DC - strh r1, [r0] - ldr r0, _080758E0 - strh r1, [r0] - ldr r0, _080758E4 - strh r1, [r0] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080758D0: .4byte 0x0000ffff -_080758D4: .4byte 0x03007380 -_080758D8: .4byte 0x030042c4 -_080758DC: .4byte 0x03004240 -_080758E0: .4byte 0x03004200 -_080758E4: .4byte 0x03004244 - thumb_func_end move_something - - thumb_func_start move_anim_8072740 -move_anim_8072740: @ 80758E8 - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - ldr r1, _08075904 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075904: .4byte 0x0202f7b2 - thumb_func_end move_anim_8072740 - - thumb_func_start move_anim_task_del -move_anim_task_del: @ 8075908 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r1, _08075920 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08075920: .4byte 0x0202f7b2 - thumb_func_end move_anim_task_del - - thumb_func_start move_anim_related_task_del -move_anim_related_task_del: @ 8075924 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r1, _0807593C - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0807593C: .4byte 0x0202f7b3 - thumb_func_end move_anim_related_task_del - - thumb_func_start sub_8075940 -sub_8075940: @ 8075940 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r4, _08075958 - ldr r1, _0807595C -_0807594C: - ldrh r0, [r1] - cmp r0, r4 - bne _08075960 - strh r3, [r1] - b _08075968 - .align 2, 0 -_08075958: .4byte 0x0000ffff -_0807595C: .4byte 0x03004b10 -_08075960: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _0807594C -_08075968: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075940 - - thumb_func_start sub_8075970 -sub_8075970: @ 8075970 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r0, _0807598C - adds r4, r0, 0 - ldr r1, _08075990 -_0807597E: - ldrh r0, [r1] - cmp r0, r3 - bne _08075994 - orrs r0, r4 - strh r0, [r1] - b _0807599C - .align 2, 0 -_0807598C: .4byte 0x0000ffff -_08075990: .4byte 0x03004b10 -_08075994: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x7 - ble _0807597E -_0807599C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075970 - - thumb_func_start move_anim_waiter -move_anim_waiter: @ 80759A4 - push {lr} - ldr r2, _080759BC - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bgt _080759C8 - ldr r0, _080759C0 - ldr r1, _080759C4 - str r1, [r0] - movs r0, 0 - b _080759CA - .align 2, 0 -_080759BC: .4byte 0x0202f7b0 -_080759C0: .4byte 0x0202f7ac -_080759C4: .4byte sub_80759D0 -_080759C8: - subs r0, r1, 0x1 -_080759CA: - strb r0, [r2] - pop {r0} - bx r0 - thumb_func_end move_anim_waiter - - thumb_func_start sub_80759D0 -sub_80759D0: @ 80759D0 - push {r4,lr} - ldr r4, _08075A00 -_080759D4: - ldr r0, _08075A04 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08075A08 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080759F8 - ldr r0, _08075A0C - ldrb r0, [r0] - cmp r0, 0 - bne _080759D4 -_080759F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075A00: .4byte gUnknown_0837F4B8 -_08075A04: .4byte 0x0202f7a4 -_08075A08: .4byte 0x0202f7b0 -_08075A0C: .4byte 0x0202f7b1 - thumb_func_end sub_80759D0 - - thumb_func_start ma00_load_graphics -ma00_load_graphics: @ 8075A10 - push {r4-r6,lr} - ldr r6, _08075A5C - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - lsls r5, r4, 3 - ldr r0, _08075A60 - adds r0, r5, r0 - bl LoadCompressedObjectPic - ldr r0, _08075A64 - adds r5, r0 - adds r0, r5, 0 - bl LoadCompressedObjectPalette - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - ldr r0, _08075A68 - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8075940 - ldr r1, _08075A6C - movs r0, 0x1 - strb r0, [r1] - ldr r1, _08075A70 - ldr r0, _08075A74 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08075A5C: .4byte 0x0202f7a4 -_08075A60: .4byte gBattleAnimPicTable - (10000 * 8) -_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8) -_08075A68: .4byte 0xffffd8f0 -_08075A6C: .4byte 0x0202f7b0 -_08075A70: .4byte 0x0202f7ac -_08075A74: .4byte move_anim_waiter - thumb_func_end ma00_load_graphics - - thumb_func_start ma01_080728D0 -ma01_080728D0: @ 8075A78 - push {r4-r6,lr} - ldr r6, _08075AB8 - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - ldr r1, _08075ABC - ldr r0, _08075AC0 - adds r4, r0 - lsls r0, r4, 3 - adds r0, r1 - ldrh r5, [r0, 0x6] - adds r0, r5, 0 - bl FreeSpriteTilesByTag - adds r0, r5, 0 - bl FreeSpritePaletteByTag - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_8075970 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08075AB8: .4byte 0x0202f7a4 -_08075ABC: .4byte gBattleAnimPicTable -_08075AC0: .4byte 0xffffd8f0 - thumb_func_end ma01_080728D0 - - thumb_func_start ma02_instanciate_template -ma02_instanciate_template: @ 8075AC4 - push {r4-r7,lr} - ldr r5, _08075B2C - ldr r1, [r5] - adds r3, r1, 0x1 - str r3, [r5] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r7, r2, r0 - adds r0, r1, 0x5 - str r0, [r5] - ldrb r4, [r1, 0x5] - adds r0, r1, 0x6 - str r0, [r5] - ldrb r0, [r1, 0x6] - adds r1, 0x7 - str r1, [r5] - cmp r0, 0 - beq _08075B14 - adds r6, r5, 0 - ldr r5, _08075B30 - adds r3, r0, 0 -_08075AFC: - ldr r2, [r6] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r5] - adds r2, 0x2 - str r2, [r6] - adds r5, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08075AFC -_08075B14: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _08075B44 - movs r0, 0x80 - eors r4, r0 - cmp r4, 0x3F - bls _08075B34 - adds r0, r4, 0 - subs r0, 0x40 - b _08075B36 - .align 2, 0 -_08075B2C: .4byte 0x0202f7a4 -_08075B30: .4byte 0x03004b00 -_08075B34: - negs r0, r4 -_08075B36: - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08075B40 - b _08075B56 - .align 2, 0 -_08075B40: .4byte 0x0202f7c9 -_08075B44: - cmp r4, 0x3F - bls _08075B4E - adds r0, r4, 0 - subs r0, 0x40 - b _08075B50 -_08075B4E: - negs r0, r4 -_08075B50: - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08075BAC -_08075B56: - ldrb r0, [r0] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 24 - asrs r1, 24 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r0, r6, 16 - asrs r0, 16 - cmp r0, 0x2 - bgt _08075B74 - movs r6, 0x3 -_08075B74: - ldr r5, _08075BB0 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, r6, 24 - lsrs r3, 24 - adds r0, r7, 0 - adds r1, r4, 0 - bl CreateSpriteAndAnimate - ldr r1, _08075BB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075BAC: .4byte 0x0202f7c8 -_08075BB0: .4byte 0x0202f7c9 -_08075BB4: .4byte 0x0202f7b2 - thumb_func_end ma02_instanciate_template - - thumb_func_start sub_8075BB8 -sub_8075BB8: @ 8075BB8 - push {r4-r7,lr} - ldr r4, _08075C28 - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r6, r2, r0 - adds r0, r1, 0x5 - str r0, [r4] - ldrb r7, [r1, 0x5] - adds r0, r1, 0x6 - str r0, [r4] - ldrb r0, [r1, 0x6] - adds r1, 0x7 - str r1, [r4] - cmp r0, 0 - beq _08075C08 - adds r5, r4, 0 - ldr r4, _08075C2C - adds r3, r0, 0 -_08075BF0: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r4] - adds r2, 0x2 - str r2, [r5] - adds r4, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08075BF0 -_08075C08: - adds r0, r6, 0 - adds r1, r7, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r6 - ldr r1, _08075C30 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075C28: .4byte 0x0202f7a4 -_08075C2C: .4byte 0x03004b00 -_08075C30: .4byte 0x0202f7b2 - thumb_func_end sub_8075BB8 - - thumb_func_start ma04_wait_countdown -ma04_wait_countdown: @ 8075C34 - push {r4,lr} - ldr r1, _08075C64 - ldr r0, [r1] - adds r2, r0, 0x1 - str r2, [r1] - ldr r3, _08075C68 - ldrb r0, [r0, 0x1] - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bne _08075C52 - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - strb r0, [r3] -_08075C52: - adds r0, r2, 0x1 - str r0, [r1] - ldr r1, _08075C6C - ldr r0, _08075C70 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075C64: .4byte 0x0202f7a4 -_08075C68: .4byte 0x0202f7b0 -_08075C6C: .4byte 0x0202f7ac -_08075C70: .4byte move_anim_waiter - thumb_func_end ma04_wait_countdown - - thumb_func_start sub_8075C74 -sub_8075C74: @ 8075C74 - push {lr} - ldr r0, _08075C8C - ldrb r2, [r0] - cmp r2, 0 - bne _08075C98 - ldr r0, _08075C90 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, _08075C94 - strb r2, [r0] - b _08075C9E - .align 2, 0 -_08075C8C: .4byte 0x0202f7b2 -_08075C90: .4byte 0x0202f7a4 -_08075C94: .4byte 0x0202f7b0 -_08075C98: - ldr r1, _08075CA4 - movs r0, 0x1 - strb r0, [r1] -_08075C9E: - pop {r0} - bx r0 - .align 2, 0 -_08075CA4: .4byte 0x0202f7b0 - thumb_func_end sub_8075C74 - - thumb_func_start nullsub_53 -nullsub_53: @ 8075CA8 - bx lr - thumb_func_end nullsub_53 - - thumb_func_start nullsub_88 -nullsub_88: @ 8075CAC - bx lr - thumb_func_end nullsub_88 - - thumb_func_start sub_8075CB0 -sub_8075CB0: @ 8075CB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r0, 0 - mov r8, r0 - ldr r0, _08075CE0 - ldrb r0, [r0] - cmp r0, 0 - bne _08075CD8 - ldr r0, _08075CE4 - ldrb r0, [r0] - cmp r0, 0 - bne _08075CD8 - ldr r1, _08075CE8 - ldrb r0, [r1] - cmp r0, 0xFF - bne _08075CD8 - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08075CF0 -_08075CD8: - ldr r1, _08075CEC - movs r0, 0 - strh r0, [r1] - b _08075D0A - .align 2, 0 -_08075CE0: .4byte 0x0202f7b2 -_08075CE4: .4byte 0x0202f7b3 -_08075CE8: .4byte 0x0202f7c2 -_08075CEC: .4byte 0x03004af0 -_08075CF0: - bl mplay_has_finished_maybe - lsls r0, 24 - cmp r0, 0 - beq _08075D28 - ldr r1, _08075D14 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5A - bhi _08075D1C -_08075D0A: - ldr r1, _08075D18 - movs r0, 0x1 - strb r0, [r1] - b _08075D8E - .align 2, 0 -_08075D14: .4byte 0x03004af0 -_08075D18: .4byte 0x0202f7b0 -_08075D1C: - ldr r0, _08075D98 - bl m4aMPlayStop - ldr r0, _08075D9C - bl m4aMPlayStop -_08075D28: - ldr r1, _08075DA0 - movs r0, 0 - strh r0, [r1] - movs r5, 0 - ldr r7, _08075DA4 - ldr r6, _08075DA8 - ldr r4, _08075DAC -_08075D36: - ldrh r0, [r4] - cmp r0, r7 - beq _08075D5A - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldrh r0, [r4] - lsls r0, 3 - adds r0, r6 - ldrh r0, [r0, 0x6] - bl FreeSpritePaletteByTag - ldrh r1, [r4] - adds r0, r7, 0 - orrs r0, r1 - strh r0, [r4] -_08075D5A: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x7 - ble _08075D36 - mov r1, r8 - cmp r1, 0 - bne _08075D8E - ldr r0, _08075DB0 - ldr r1, _08075DA4 - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08075D88 - bl sub_8079E24 - movs r0, 0x1 - bl sub_8043EB4 -_08075D88: - ldr r0, _08075DB4 - mov r1, r8 - strb r1, [r0] -_08075D8E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075D98: .4byte 0x030073c0 -_08075D9C: .4byte 0x03007400 -_08075DA0: .4byte 0x03004af0 -_08075DA4: .4byte 0x0000ffff -_08075DA8: .4byte gBattleAnimPicTable -_08075DAC: .4byte 0x03004b10 -_08075DB0: .4byte 0x03007380 -_08075DB4: .4byte 0x0202f7b1 - thumb_func_end sub_8075CB0 - - thumb_func_start ma09_play_sound -ma09_play_sound: @ 8075DB8 - push {r4,lr} - ldr r4, _08075DDC - ldr r0, [r4] - adds r1, r0, 0x1 - str r1, [r4] - ldrb r0, [r0, 0x1] - ldrb r1, [r1, 0x1] - lsls r1, 8 - orrs r0, r1 - bl audio_play - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08075DDC: .4byte 0x0202f7a4 - thumb_func_end ma09_play_sound - - thumb_func_start sub_8075DE0 -sub_8075DE0: @ 8075DE0 - push {r4-r7,lr} - ldr r0, _08075DF4 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r6, [r2, 0x1] - cmp r6, 0 - bne _08075DF8 - movs r6, 0x2 - b _08075E02 - .align 2, 0 -_08075DF4: .4byte 0x0202f7a4 -_08075DF8: - cmp r6, 0x1 - bne _08075DFE - movs r6, 0x3 -_08075DFE: - cmp r6, 0 - beq _08075E06 -_08075E02: - cmp r6, 0x2 - bne _08075E10 -_08075E06: - ldr r0, _08075E0C - b _08075E12 - .align 2, 0 -_08075E0C: .4byte 0x0202f7c8 -_08075E10: - ldr r0, _08075E44 -_08075E12: - ldrb r5, [r0] - adds r0, r5, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08075ECE - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08075E3E - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08075E48 -_08075E3E: - movs r7, 0 - b _08075E4A - .align 2, 0 -_08075E44: .4byte 0x0202f7c9 -_08075E48: - movs r7, 0x1 -_08075E4A: - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_8076034 - ldr r0, _08075E98 - adds r0, r5, r0 - ldrb r4, [r0] - ldr r0, _08075E9C - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08075EA0 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - strh r4, [r2, 0x8] - ldr r1, _08075EA4 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x24] - ldrh r4, [r0, 0x20] - adds r1, r4 - strh r1, [r2, 0xA] - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r2, 0xC] - cmp r7, 0 - bne _08075EB0 - ldr r0, _08075EA8 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075EAC - b _08075EB8 - .align 2, 0 -_08075E98: .4byte 0x02024be0 -_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal -_08075EA0: .4byte 0x03004b20 -_08075EA4: .4byte 0x02020004 -_08075EA8: .4byte 0x030042c0 -_08075EAC: .4byte 0x030041b4 -_08075EB0: - ldr r0, _08075F04 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075F08 -_08075EB8: - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldr r0, _08075F0C - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r7, [r1, 0x12] - strh r5, [r1, 0x14] - ldr r0, _08075F10 - strb r3, [r0] -_08075ECE: - movs r0, 0x2 - eors r5, r0 - cmp r6, 0x1 - bls _08075F9A - adds r0, r5, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08075F9A - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08075F00 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08075F14 -_08075F00: - movs r7, 0 - b _08075F16 - .align 2, 0 -_08075F04: .4byte 0x03004288 -_08075F08: .4byte 0x03004280 -_08075F0C: .4byte 0x03004b20 -_08075F10: .4byte 0x0202f7c2 -_08075F14: - movs r7, 0x1 -_08075F16: - adds r0, r5, 0 - adds r1, r7, 0 - bl sub_8076034 - ldr r0, _08075F64 - adds r0, r5, r0 - ldrb r4, [r0] - ldr r0, _08075F68 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08075F6C - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - strh r4, [r2, 0x8] - ldr r1, _08075F70 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x24] - ldrh r4, [r0, 0x20] - adds r1, r4 - strh r1, [r2, 0xA] - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - strh r1, [r2, 0xC] - cmp r7, 0 - bne _08075F7C - ldr r0, _08075F74 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075F78 - b _08075F84 - .align 2, 0 -_08075F64: .4byte 0x02024be0 -_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal -_08075F6C: .4byte 0x03004b20 -_08075F70: .4byte 0x02020004 -_08075F74: .4byte 0x030042c0 -_08075F78: .4byte 0x030041b4 -_08075F7C: - ldr r0, _08075FA8 - ldrh r0, [r0] - strh r0, [r2, 0xE] - ldr r0, _08075FAC -_08075F84: - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldr r0, _08075FB0 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - strh r7, [r1, 0x12] - strh r5, [r1, 0x14] - ldr r0, _08075FB4 - strb r3, [r0, 0x1] -_08075F9A: - ldr r1, _08075FB8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08075FA8: .4byte 0x03004288 -_08075FAC: .4byte 0x03004280 -_08075FB0: .4byte 0x03004b20 -_08075FB4: .4byte 0x0202f7c2 -_08075FB8: .4byte 0x0202f7a4 - thumb_func_end sub_8075DE0 - - thumb_func_start b_side_obj__get_some_boolean -b_side_obj__get_some_boolean: @ 8075FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08075FDC - ldr r0, _08075FD8 - ldrb r0, [r0] - cmp r4, r0 - beq _0807601C - b _0807602C - .align 2, 0 -_08075FD8: .4byte 0x0202f7c8 -_08075FDC: - adds r0, r4, 0 - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _0807602C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0807601C - lsls r0, r5, 2 - ldr r1, _08076020 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0807601C - ldr r2, _08076024 - ldr r0, _08076028 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _0807602C -_0807601C: - movs r0, 0x1 - b _0807602E - .align 2, 0 -_08076020: .4byte 0x02017800 -_08076024: .4byte 0x02020004 -_08076028: .4byte 0x02024be0 -_0807602C: - movs r0, 0 -_0807602E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end b_side_obj__get_some_boolean - - thumb_func_start sub_8076034 -sub_8076034: @ 8076034 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - cmp r1, 0 - beq _0807604E - b _08076220 -_0807604E: - add r4, sp, 0x10 - adds r0, r4, 0 - bl sub_8078914 - ldr r2, [sp, 0x10] - movs r3, 0x80 - lsls r3, 6 - add r6, sp, 0x1C - add r0, sp, 0x20 - mov r10, r0 - mov r1, r9 - lsls r1, 5 - str r1, [sp, 0x24] - movs r5, 0 - ldr r1, _08076194 - movs r4, 0x80 - lsls r4, 5 - mov r12, r6 - ldr r7, _08076198 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_0807607A: - str r5, [sp, 0x1C] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _0807607A - str r5, [sp, 0x1C] - str r6, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0xC - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, [sp, 0x14] - movs r0, 0xFF - mov r3, r10 - strh r0, [r3] - ldr r0, _08076194 - str r3, [r0] - str r1, [r0, 0x4] - ldr r1, _0807619C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r2, _080761A0 - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - ldr r0, _080761A4 - add r0, r9 - ldrb r4, [r0] - ldr r5, _080761A8 - ldr r0, _080761AC - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x24] - ldrh r1, [r1, 0x20] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r5] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807611C - ldr r0, _080761B0 - ldrh r0, [r0] - bl sub_80AEB1C - lsls r0, 24 - cmp r0, 0 - beq _0807611C - ldrh r0, [r5] - subs r0, 0x1 - strh r0, [r5] -_0807611C: - ldr r3, _080761B4 - ldr r2, _080761AC - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - strh r0, [r3] - ldr r0, _080761A4 - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r1, _080761B8 - ldr r0, _080761A8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r3] - strh r0, [r1] - ldr r4, _080761BC - ldr r0, [sp, 0x24] - adds r4, r0, r4 - mov r2, sp - ldrb r1, [r2, 0x18] - lsls r1, 4 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - mov r3, sp - ldrb r0, [r3, 0x18] - lsls r0, 5 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - ldr r1, _08076194 - str r4, [r1] - str r0, [r1, 0x4] - ldr r0, _080761C0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080761C4 - movs r2, 0 - b _080761CE - .align 2, 0 -_08076194: .4byte 0x040000d4 -_08076198: .4byte 0x85000400 -_0807619C: .4byte 0x81000800 -_080761A0: .4byte 0x0400000a -_080761A4: .4byte 0x02024be0 -_080761A8: .4byte 0x030042c0 -_080761AC: .4byte 0x02020004 -_080761B0: .4byte 0x02019348 -_080761B4: .4byte 0x030041b4 -_080761B8: .4byte 0x04000014 -_080761BC: .4byte 0x0202ecc8 -_080761C0: .4byte 0x84000008 -_080761C4: - mov r0, r9 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r2, r0, 24 -_080761CE: - mov r0, sp - ldrb r3, [r0, 0x18] - ldr r0, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - ldr r4, [sp, 0x14] - movs r1, 0xFA - lsls r1, 24 - adds r0, r4, r1 - cmp r0, 0 - bge _080761EA - ldr r1, _08076218 - adds r0, r4, r1 -_080761EA: - asrs r0, 11 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, _0807621C - ldr r0, [r0] - lsls r0, 28 - lsrs r0, 30 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - bl sub_80E4EF8 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08076210 - b _08076338 -_08076210: - bl sub_8076380 - b _08076338 - .align 2, 0 -_08076218: .4byte 0xfa0007ff -_0807621C: .4byte 0x0400000a -_08076220: - ldr r3, _08076348 - movs r5, 0x80 - lsls r5, 6 - add r6, sp, 0x1C - ldr r2, _0807634C - mov r10, r2 - mov r0, r9 - lsls r0, 5 - str r0, [sp, 0x24] - movs r4, 0 - ldr r1, _08076350 - movs r2, 0x80 - lsls r2, 5 - mov r12, r6 - ldr r7, _08076354 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_08076244: - str r4, [sp, 0x1C] - mov r0, r12 - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r2 - subs r5, r2 - cmp r5, r2 - bhi _08076244 - str r4, [sp, 0x1C] - str r6, [r1] - str r3, [r1, 0x4] - lsrs r0, r5, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0xC - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, _08076358 - movs r0, 0 - str r0, [sp, 0x1C] - ldr r5, _08076350 - str r6, [r5] - str r1, [r5, 0x4] - ldr r0, _0807635C - str r0, [r5, 0x8] - ldr r0, [r5, 0x8] - ldr r6, _08076360 - ldrb r1, [r6] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r6] - ldrb r1, [r6, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r6, 0x1] - ldrb r1, [r6, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x1] - ldr r2, _08076364 - add r2, r9 - ldrb r4, [r2] - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - add r1, r10 - ldrh r0, [r1, 0x24] - ldrh r3, [r1, 0x20] - adds r0, r3 - negs r0, r0 - adds r0, 0x20 - ldr r3, _08076368 - strh r0, [r3] - ldrh r0, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r0, r1 - negs r0, r0 - adds r0, 0x20 - ldr r1, _0807636C - strh r0, [r1] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r1, _08076370 - ldrh r0, [r3] - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0807636C - ldrh r0, [r2] - strh r0, [r1] - ldr r3, [sp, 0x24] - ldr r0, _08076374 - adds r4, r3, r0 - adds r0, r4, 0 - movs r1, 0x90 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08076378 - str r4, [r5] - str r0, [r5, 0x4] - ldr r0, _0807637C - str r0, [r5, 0x8] - ldr r0, [r5, 0x8] - mov r0, r9 - bl battle_get_per_side_status - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0xC0 - lsls r0, 7 - str r0, [sp] - movs r0, 0x1E - str r0, [sp, 0x4] - ldr r0, [r6] - lsls r0, 28 - lsrs r0, 30 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r3, 0x9 - bl sub_80E4EF8 -_08076338: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076348: .4byte 0x06006000 -_0807634C: .4byte 0x02020004 -_08076350: .4byte 0x040000d4 -_08076354: .4byte 0x85000400 -_08076358: .4byte 0x0600f000 -_0807635C: .4byte 0x85000200 -_08076360: .4byte 0x0400000c -_08076364: .4byte 0x02024be0 -_08076368: .4byte 0x03004288 -_0807636C: .4byte 0x03004280 -_08076370: .4byte 0x04000018 -_08076374: .4byte 0x0202ecc8 -_08076378: .4byte 0x05000120 -_0807637C: .4byte 0x84000008 - thumb_func_end sub_8076034 - - thumb_func_start sub_8076380 -sub_8076380: @ 8076380 - push {r4-r7,lr} - sub sp, 0xC - ldr r0, _080763F8 - ldrh r0, [r0] - bl sub_80AEB1C - lsls r0, 24 - cmp r0, 0 - beq _080763EE - mov r0, sp - bl sub_8078914 - ldr r6, [sp, 0x4] - movs r5, 0 - movs r0, 0x7 - mov r12, r0 - movs r7, 0 -_080763A2: - movs r4, 0 - adds r3, r7, r6 - mov r1, r12 - lsls r0, r1, 1 - adds r2, r0, r6 -_080763AC: - ldrh r1, [r3] - ldrh r0, [r2] - strh r0, [r3] - strh r1, [r2] - adds r3, 0x2 - subs r2, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _080763AC - movs r0, 0x20 - add r12, r0 - adds r7, 0x40 - adds r5, 0x1 - cmp r5, 0x7 - ble _080763A2 - movs r5, 0 - movs r1, 0x80 - lsls r1, 3 - adds r3, r1, 0 -_080763D2: - adds r2, r5, 0x1 - lsls r0, r5, 6 - adds r1, r0, r6 - movs r4, 0x7 -_080763DA: - ldrh r0, [r1] - eors r0, r3 - strh r0, [r1] - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080763DA - adds r5, r2, 0 - cmp r5, 0x7 - ble _080763D2 -_080763EE: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080763F8: .4byte 0x02019348 - thumb_func_end sub_8076380 - - thumb_func_start sub_80763FC -sub_80763FC: @ 80763FC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r12, r1 - adds r7, r2, 0 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r3, 24 - movs r0, 0x40 - mov r9, r0 - cmp r3, 0 - bne _0807641A - movs r1, 0x20 - mov r9, r1 -_0807641A: - lsls r0, r6, 28 - lsrs r6, r0, 16 - movs r0, 0 - cmp r0, r9 - bcs _08076452 - ldr r1, _08076460 - mov r8, r1 -_08076428: - movs r3, 0 - adds r5, r0, 0x1 - lsls r4, r0, 5 -_0807642E: - adds r1, r4, r3 - lsls r1, 1 - add r1, r12 - ldrh r2, [r1] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - adds r0, r7 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1F - bls _0807642E - lsls r0, r5, 24 - lsrs r0, 24 - cmp r0, r9 - bcc _08076428 -_08076452: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076460: .4byte 0x00000fff - thumb_func_end sub_80763FC - - thumb_func_start sub_8076464 -sub_8076464: @ 8076464 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - add r5, sp, 0x4 - adds r0, r5, 0 - bl sub_8078914 - cmp r4, 0 - beq _0807648C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080764F0 -_0807648C: - ldr r2, [sp, 0x4] - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0x10 - ldr r0, _080764E0 - mov r9, r0 - ldr r0, _080764E4 - mov r10, r0 - movs r6, 0 - ldr r1, _080764E8 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _080764EC - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_080764AE: - str r6, [sp, 0x10] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080764AE - str r6, [sp, 0x10] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, [sp, 0x8] - b _08076540 - .align 2, 0 -_080764E0: .4byte 0x030042c0 -_080764E4: .4byte 0x030041b4 -_080764E8: .4byte 0x040000d4 -_080764EC: .4byte 0x85000400 -_080764F0: - ldr r2, _08076568 - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0x10 - ldr r0, _0807656C - mov r9, r0 - ldr r0, _08076570 - mov r10, r0 - movs r6, 0 - ldr r1, _08076574 - movs r4, 0x80 - lsls r4, 5 - mov r12, r5 - ldr r7, _08076578 - movs r0, 0x85 - lsls r0, 24 - mov r8, r0 -_08076512: - str r6, [sp, 0x10] - mov r0, r12 - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _08076512 - str r6, [sp, 0x10] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0] - ldr r1, _0807657C -_08076540: - movs r2, 0 - str r2, [sp, 0x10] - ldr r0, _08076574 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _08076580 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - mov r0, r9 - strh r2, [r0] - mov r0, r10 - strh r2, [r0] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076568: .4byte 0x06006000 -_0807656C: .4byte 0x03004288 -_08076570: .4byte 0x03004280 -_08076574: .4byte 0x040000d4 -_08076578: .4byte 0x85000400 -_0807657C: .4byte 0x0600f000 -_08076580: .4byte 0x85000200 - thumb_func_end sub_8076464 - - thumb_func_start task_pA_ma0A_obj_to_bg_pal -task_pA_ma0A_obj_to_bg_pal: @ 8076584 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080765FC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r5, r1, r2 - ldrb r4, [r5, 0x8] - ldrb r6, [r5, 0x14] - mov r0, sp - bl sub_8078914 - ldr r0, _08076600 - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r2, [r1, 0x24] - ldrh r0, [r1, 0x20] - adds r2, r0 - ldrh r0, [r5, 0xA] - subs r0, r2 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r2, [r1, 0x26] - ldrh r1, [r1, 0x22] - adds r2, r1 - ldrh r0, [r5, 0xC] - subs r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x12 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08076614 - ldr r1, _08076604 - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r5, 0xE] - adds r0, r3 - strh r0, [r1] - ldr r1, _08076608 - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r5, 0x10] - adds r0, r5 - strh r0, [r1] - lsls r2, r6, 5 - ldr r1, _0807660C - adds r2, r1 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 5 - ldr r3, _08076610 - adds r1, r3 - adds r0, r1 - b _08076634 - .align 2, 0 -_080765FC: .4byte 0x03004b20 -_08076600: .4byte 0x02020004 -_08076604: .4byte 0x030042c0 -_08076608: .4byte 0x030041b4 -_0807660C: .4byte 0x0202f0c8 -_08076610: .4byte 0xfffffe00 -_08076614: - ldr r1, _08076648 - lsls r0, r3, 16 - asrs r0, 16 - ldrh r3, [r5, 0xE] - adds r0, r3 - strh r0, [r1] - ldr r1, _0807664C - lsls r0, r2, 16 - asrs r0, 16 - ldrh r5, [r5, 0x10] - adds r0, r5 - strh r0, [r1] - lsls r2, r6, 5 - ldr r0, _08076650 - adds r2, r0 - subs r0, 0xE0 -_08076634: - ldr r1, _08076654 - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _08076658 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08076648: .4byte 0x03004288 -_0807664C: .4byte 0x03004280 -_08076650: .4byte 0x0202f0c8 -_08076654: .4byte 0x040000d4 -_08076658: .4byte 0x84000008 - thumb_func_end task_pA_ma0A_obj_to_bg_pal - - thumb_func_start ma0B_0807324C -ma0B_0807324C: @ 807665C - push {r4,r5,lr} - ldr r0, _08076670 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r4, [r2, 0x1] - cmp r4, 0 - bne _08076674 - movs r4, 0x2 - b _0807667E - .align 2, 0 -_08076670: .4byte 0x0202f7a4 -_08076674: - cmp r4, 0x1 - bne _0807667A - movs r4, 0x3 -_0807667A: - cmp r4, 0 - beq _08076682 -_0807667E: - cmp r4, 0x2 - bne _0807668C -_08076682: - ldr r0, _08076688 - b _0807668E - .align 2, 0 -_08076688: .4byte 0x0202f7c8 -_0807668C: - ldr r0, _080766E4 -_0807668E: - ldrb r5, [r0] - ldr r3, _080766E8 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080766B4 - ldr r2, _080766EC - ldr r0, _080766F0 - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080766B4: - cmp r4, 0x1 - bls _080766F4 - ldrb r0, [r3, 0x1] - cmp r0, 0xFF - beq _080766F4 - ldr r3, _080766EC - ldr r2, _080766F0 - movs r1, 0x2 - adds r0, r5, 0 - eors r0, r1 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _080766F6 - .align 2, 0 -_080766E4: .4byte 0x0202f7c9 -_080766E8: .4byte 0x0202f7c2 -_080766EC: .4byte 0x02020004 -_080766F0: .4byte 0x02024be0 -_080766F4: - movs r4, 0 -_080766F6: - ldr r0, _08076720 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08076724 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - strh r5, [r1, 0xC] - ldr r1, _08076728 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08076720: .4byte sub_807672C -_08076724: .4byte 0x03004b20 -_08076728: .4byte 0x0202f7a4 - thumb_func_end ma0B_0807324C - - thumb_func_start sub_807672C -sub_807672C: @ 807672C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0807676C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _080767B6 - ldrb r0, [r1, 0xC] - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08076768 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076770 -_08076768: - movs r4, 0 - b _08076772 - .align 2, 0 -_0807676C: .4byte 0x03004b20 -_08076770: - movs r4, 0x1 -_08076772: - ldr r6, _080767BC - ldrb r0, [r6] - cmp r0, 0xFF - beq _0807678A - adds r0, r4, 0 - bl sub_8076464 - ldrb r0, [r6] - bl DestroyTask - movs r0, 0xFF - strb r0, [r6] -_0807678A: - ldr r0, _080767C0 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _080767B0 - movs r0, 0x1 - eors r4, r0 - adds r0, r4, 0 - bl sub_8076464 - ldrb r0, [r6, 0x1] - bl DestroyTask - movs r0, 0xFF - strb r0, [r6, 0x1] -_080767B0: - adds r0, r5, 0 - bl DestroyTask -_080767B6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080767BC: .4byte 0x0202f7c2 -_080767C0: .4byte 0x03004b20 - thumb_func_end sub_807672C - - thumb_func_start sub_80767C4 -sub_80767C4: @ 80767C4 - push {r4,r5,lr} - ldr r0, _080767D8 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r5, [r2, 0x1] - cmp r5, 0 - bne _080767DC - movs r5, 0x2 - b _080767E6 - .align 2, 0 -_080767D8: .4byte 0x0202f7a4 -_080767DC: - cmp r5, 0x1 - bne _080767E2 - movs r5, 0x3 -_080767E2: - cmp r5, 0 - beq _080767EA -_080767E6: - cmp r5, 0x2 - bne _080767F4 -_080767EA: - ldr r0, _080767F0 - b _080767F6 - .align 2, 0 -_080767F0: .4byte 0x0202f7c8 -_080767F4: - ldr r0, _08076828 -_080767F6: - ldrb r4, [r0] - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08076850 - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08076822 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807682C -_08076822: - movs r1, 0 - b _0807682E - .align 2, 0 -_08076828: .4byte 0x0202f7c9 -_0807682C: - movs r1, 0x1 -_0807682E: - adds r0, r4, 0 - bl sub_8076034 - ldr r2, _08076888 - ldr r0, _0807688C - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08076850: - movs r0, 0x2 - eors r4, r0 - cmp r5, 0x1 - bls _080768B4 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080768B4 - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _08076882 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076890 -_08076882: - movs r1, 0 - b _08076892 - .align 2, 0 -_08076888: .4byte 0x02020004 -_0807688C: .4byte 0x02024be0 -_08076890: - movs r1, 0x1 -_08076892: - adds r0, r4, 0 - bl sub_8076034 - ldr r2, _080768C4 - ldr r0, _080768C8 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_080768B4: - ldr r1, _080768CC - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080768C4: .4byte 0x02020004 -_080768C8: .4byte 0x02024be0 -_080768CC: .4byte 0x0202f7a4 - thumb_func_end sub_80767C4 - - thumb_func_start ma23_8073484 -ma23_8073484: @ 80768D0 - push {r4-r6,lr} - ldr r0, _080768E4 - ldr r2, [r0] - adds r1, r2, 0x1 - str r1, [r0] - ldrb r5, [r2, 0x1] - cmp r5, 0 - bne _080768E8 - movs r5, 0x2 - b _080768F2 - .align 2, 0 -_080768E4: .4byte 0x0202f7a4 -_080768E8: - cmp r5, 0x1 - bne _080768EE - movs r5, 0x3 -_080768EE: - cmp r5, 0 - beq _080768F6 -_080768F2: - cmp r5, 0x2 - bne _08076900 -_080768F6: - ldr r0, _080768FC - b _08076902 - .align 2, 0 -_080768FC: .4byte 0x0202f7c8 -_08076900: - ldr r0, _08076960 -_08076902: - ldrb r6, [r0] - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807692C - ldr r2, _08076964 - ldr r0, _08076968 - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0807692C: - cmp r5, 0x1 - bls _0807696C - movs r0, 0x2 - adds r4, r6, 0 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807696C - ldr r2, _08076964 - ldr r0, _08076968 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - b _0807696E - .align 2, 0 -_08076960: .4byte 0x0202f7c9 -_08076964: .4byte 0x02020004 -_08076968: .4byte 0x02024be0 -_0807696C: - movs r5, 0 -_0807696E: - ldr r0, _08076998 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807699C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - strh r6, [r1, 0xC] - ldr r1, _080769A0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08076998: .4byte sub_80769A4 -_0807699C: .4byte 0x03004b20 -_080769A0: .4byte 0x0202f7a4 - thumb_func_end ma23_8073484 - - thumb_func_start sub_80769A4 -sub_80769A4: @ 80769A4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080769E8 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - beq _08076A32 - ldrb r4, [r1, 0xC] - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x1 - bls _080769E2 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080769EC -_080769E2: - movs r5, 0 - b _080769EE - .align 2, 0 -_080769E8: .4byte 0x03004b20 -_080769EC: - movs r5, 0x1 -_080769EE: - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08076A00 - adds r0, r5, 0 - bl sub_8076464 -_08076A00: - ldr r0, _08076A38 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _08076A2C - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08076A2C - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_08076A2C: - adds r0, r6, 0 - bl DestroyTask -_08076A32: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08076A38: .4byte 0x03004b20 - thumb_func_end sub_80769A4 - - thumb_func_start sub_8076A3C -sub_8076A3C: @ 8076A3C - push {r4,lr} - ldr r2, _08076A6C - ldr r0, [r2] - adds r1, r0, 0x1 - str r1, [r2] - ldrb r3, [r0, 0x1] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r1, [r1, 0x1] - lsls r1, 8 - adds r0, 0x1 - str r0, [r2] - ldr r2, _08076A70 - movs r4, 0xFD - lsls r4, 6 - adds r0, r4, 0 - strh r0, [r2] - ldr r0, _08076A74 - orrs r3, r1 - strh r3, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076A6C: .4byte 0x0202f7a4 -_08076A70: .4byte 0x04000050 -_08076A74: .4byte 0x04000052 - thumb_func_end sub_8076A3C - - thumb_func_start sub_8076A78 -sub_8076A78: @ 8076A78 - ldr r2, _08076A98 - ldr r0, [r2] - adds r1, r0, 0x1 - str r1, [r2] - ldrb r3, [r0, 0x1] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r1, [r1, 0x1] - lsls r1, 8 - adds r0, 0x1 - str r0, [r2] - ldr r0, _08076A9C - orrs r3, r1 - strh r3, [r0] - bx lr - .align 2, 0 -_08076A98: .4byte 0x0202f7a4 -_08076A9C: .4byte 0x04000050 - thumb_func_end sub_8076A78 - - thumb_func_start sub_8076AA0 -sub_8076AA0: @ 8076AA0 - ldr r1, _08076AB4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08076AB8 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08076AB4: .4byte 0x0202f7a4 -_08076AB8: .4byte 0x04000050 - thumb_func_end sub_8076AA0 - - thumb_func_start ma0E_call -ma0E_call: @ 8076ABC - push {r4,lr} - ldr r4, _08076AE8 - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldr r2, _08076AEC - adds r0, r1, 0x5 - str r0, [r2] - ldrb r1, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076AE8: .4byte 0x0202f7a4 -_08076AEC: .4byte 0x0202f7a8 - thumb_func_end ma0E_call - - thumb_func_start sub_8076AF0 -sub_8076AF0: @ 8076AF0 - ldr r0, _08076AFC - ldr r1, _08076B00 - ldr r1, [r1] - str r1, [r0] - bx lr - .align 2, 0 -_08076AFC: .4byte 0x0202f7a4 -_08076B00: .4byte 0x0202f7a8 - thumb_func_end sub_8076AF0 - - thumb_func_start ma10_080736AC -ma10_080736AC: @ 8076B04 - push {r4,r5,lr} - ldr r5, _08076B30 - ldr r1, [r5] - adds r0, r1, 0x1 - str r0, [r5] - ldrb r2, [r1, 0x1] - adds r3, r0, 0x1 - str r3, [r5] - ldrb r4, [r0, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r4, r0 - adds r1, 0x4 - str r1, [r5] - ldr r0, _08076B34 - lsls r2, 1 - adds r2, r0 - strh r4, [r2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08076B30: .4byte 0x0202f7a4 -_08076B34: .4byte 0x03004b00 - thumb_func_end ma10_080736AC - - thumb_func_start ma11_if_else -ma11_if_else: @ 8076B38 - push {lr} - ldr r3, _08076B70 - ldr r2, [r3] - adds r0, r2, 0x1 - str r0, [r3] - ldr r0, _08076B74 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08076B52 - adds r0, r2, 0x5 - str r0, [r3] -_08076B52: - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - pop {r0} - bx r0 - .align 2, 0 -_08076B70: .4byte 0x0202f7a4 -_08076B74: .4byte 0x0202f7c4 - thumb_func_end ma11_if_else - - thumb_func_start ma12_cond_if -ma12_cond_if: @ 8076B78 - push {r4,r5,lr} - ldr r5, _08076BA8 - ldr r4, [r5] - adds r2, r4, 0x1 - str r2, [r5] - ldrb r1, [r4, 0x1] - adds r3, r2, 0x1 - str r3, [r5] - ldr r0, _08076BAC - ldrb r0, [r0] - cmp r1, r0 - bne _08076BB0 - ldrb r1, [r2, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r5] - b _08076BB4 - .align 2, 0 -_08076BA8: .4byte 0x0202f7a4 -_08076BAC: .4byte 0x0202f7c4 -_08076BB0: - adds r0, r4, 0x6 - str r0, [r5] -_08076BB4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ma12_cond_if - - thumb_func_start sub_8076BBC -sub_8076BBC: @ 8076BBC - ldr r3, _08076BDC - ldr r0, [r3] - adds r2, r0, 0x1 - str r2, [r3] - ldrb r1, [r0, 0x1] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_08076BDC: .4byte 0x0202f7a4 - thumb_func_end sub_8076BBC - - thumb_func_start sub_8076BE0 -sub_8076BE0: @ 8076BE0 - push {lr} - ldr r0, _08076BF8 - ldr r1, _08076BFC - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08076C00 - movs r0, 0 - b _08076C02 - .align 2, 0 -_08076BF8: .4byte 0x03001770 -_08076BFC: .4byte 0x0000043d -_08076C00: - movs r0, 0x1 -_08076C02: - pop {r1} - bx r1 - thumb_func_end sub_8076BE0 - - thumb_func_start ma14_load_background -ma14_load_background: @ 8076C08 - push {r4,lr} - ldr r1, _08076C3C - ldr r2, [r1] - adds r0, r2, 0x1 - str r0, [r1] - ldrb r4, [r2, 0x1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08076C40 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08076C44 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - ldr r1, _08076C48 - movs r0, 0x1 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076C3C: .4byte 0x0202f7a4 -_08076C40: .4byte task_p5_load_battle_screen_elements -_08076C44: .4byte 0x03004b20 -_08076C48: .4byte 0x0202f7c5 - thumb_func_end ma14_load_background - - thumb_func_start sub_8076C4C -sub_8076C4C: @ 8076C4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, _08076C8C - ldr r1, [r2] - adds r0, r1, 0x1 - str r0, [r2] - ldrb r3, [r1, 0x1] - mov r8, r3 - ldrb r7, [r0, 0x1] - ldrb r6, [r0, 0x2] - adds r1, 0x4 - str r1, [r2] - ldr r0, _08076C90 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076C98 - ldr r1, _08076C94 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x8] - b _08076CCA - .align 2, 0 -_08076C8C: .4byte 0x0202f7a4 -_08076C90: .4byte task_p5_load_battle_screen_elements -_08076C94: .4byte 0x03004b20 -_08076C98: - ldr r0, _08076CB4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08076CBC - ldr r1, _08076CB8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0x8] - b _08076CCA - .align 2, 0 -_08076CB4: .4byte 0x0202f7c9 -_08076CB8: .4byte 0x03004b20 -_08076CBC: - ldr r1, _08076CDC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x8] -_08076CCA: - ldr r1, _08076CE0 - movs r0, 0x1 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076CDC: .4byte 0x03004b20 -_08076CE0: .4byte 0x0202f7c5 - thumb_func_end sub_8076C4C - - thumb_func_start task_p5_load_battle_screen_elements -task_p5_load_battle_screen_elements: @ 8076CE4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08076D18 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r6, [r4, 0x1C] - movs r0, 0x1C - ldrsh r3, [r4, r0] - adds r7, r1, 0 - cmp r3, 0 - bne _08076D1C - str r3, [sp] - movs r0, 0xE8 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl sub_80748D0 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - b _08076DAC - .align 2, 0 -_08076D18: .4byte 0x03004b20 -_08076D1C: - ldr r2, _08076D38 - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08076DAC - cmp r3, 0x1 - bne _08076D40 - adds r0, r6, 0x1 - strh r0, [r4, 0x1C] - ldr r1, _08076D3C - movs r0, 0x2 - strb r0, [r1] - b _08076D84 - .align 2, 0 -_08076D38: .4byte 0x0202f388 -_08076D3C: .4byte 0x0202f7c5 -_08076D40: - cmp r3, 0x2 - bne _08076D84 - ldrh r0, [r4, 0x8] - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08076D58 - bl dp01t_11_3_message_for_player_only - b _08076D5E -_08076D58: - lsrs r0, r2, 16 - bl sub_8076DB8 -_08076D5E: - movs r0, 0x1 - str r0, [sp] - movs r0, 0xE8 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl sub_80748D0 - ldr r1, _08076D80 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x1C] - adds r1, 0x1 - strh r1, [r0, 0x1C] - b _08076DAC - .align 2, 0 -_08076D80: .4byte 0x03004b20 -_08076D84: - ldrb r1, [r2, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08076DAC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r7 - movs r1, 0x1C - ldrsh r0, [r0, r1] - cmp r0, 0x3 - bne _08076DAC - adds r0, r5, 0 - bl DestroyTask - ldr r0, _08076DB4 - strb r4, [r0] -_08076DAC: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076DB4: .4byte 0x0202f7c5 - thumb_func_end task_p5_load_battle_screen_elements - - thumb_func_start sub_8076DB8 -sub_8076DB8: @ 8076DB8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076E70 - ldr r7, _08076E54 - lsls r0, r6, 1 - adds r0, r6 - lsls r4, r0, 2 - adds r0, r7, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r5, [r0] - bl sub_8076BE0 - lsls r0, 24 - ldr r1, _08076E58 - cmp r0, 0 - beq _08076DE8 - ldr r0, _08076E5C - adds r1, r0 -_08076DE8: - adds r0, r5, 0 - bl sub_800D238 - bl sub_80789BC - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - ldr r1, _08076E58 - cmp r0, 0 - beq _08076E06 - ldr r0, _08076E5C - adds r1, r0 -_08076E06: - movs r2, 0x80 - lsls r2, 1 - adds r0, r5, 0 - movs r3, 0 - bl sub_80763FC - bl sub_8076BE0 - lsls r0, 24 - ldr r2, _08076E58 - cmp r0, 0 - beq _08076E22 - ldr r0, _08076E5C - adds r2, r0 -_08076E22: - ldr r1, _08076E60 - ldr r0, _08076E64 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _08076E68 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - adds r0, r4, r7 - ldr r0, [r0] - ldr r1, _08076E6C - bl LZDecompressVram - adds r0, r7, 0x4 - adds r0, r4, r0 - ldr r4, [r0] - bl sub_80789BC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 20 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _08076E9E - .align 2, 0 -_08076E54: .4byte gUnknown_0837F374 -_08076E58: .4byte 0x02018000 -_08076E5C: .4byte 0xffffc800 -_08076E60: .4byte 0x0600d000 -_08076E64: .4byte 0x040000d4 -_08076E68: .4byte 0x84000200 -_08076E6C: .4byte 0x06002000 -_08076E70: - ldr r5, _08076EA4 - lsls r4, r6, 1 - adds r4, r6 - lsls r4, 2 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, _08076EA8 - bl LZDecompressVram - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, _08076EAC - bl LZDecompressVram - adds r5, 0x4 - adds r4, r5 - ldr r0, [r4] - movs r1, 0x20 - movs r2, 0x20 - bl LoadCompressedPalette -_08076E9E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08076EA4: .4byte gUnknown_0837F374 -_08076EA8: .4byte 0x0600d000 -_08076EAC: .4byte 0x06008000 - thumb_func_end sub_8076DB8 - - thumb_func_start dp01t_11_3_message_for_player_only -dp01t_11_3_message_for_player_only: @ 8076EB0 - push {lr} - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08076EC2 - bl sub_80AB2AC - b _08076EC6 -_08076EC2: - bl sub_800D7B8 -_08076EC6: - pop {r0} - bx r0 - thumb_func_end dp01t_11_3_message_for_player_only - - thumb_func_start ma15_load_battle_screen_elements -ma15_load_battle_screen_elements: @ 8076ECC - push {lr} - ldr r1, _08076EFC - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08076F00 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08076F04 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08076F08 - strh r0, [r1, 0x8] - ldr r1, _08076F0C - movs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08076EFC: .4byte 0x0202f7a4 -_08076F00: .4byte task_p5_load_battle_screen_elements -_08076F04: .4byte 0x03004b20 -_08076F08: .4byte 0x0000ffff -_08076F0C: .4byte 0x0202f7c5 - thumb_func_end ma15_load_battle_screen_elements - - thumb_func_start ma16_wait_for_battle_screen_elements_s2 -ma16_wait_for_battle_screen_elements_s2: @ 8076F10 - push {lr} - ldr r0, _08076F28 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08076F34 - ldr r1, _08076F2C - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r1, _08076F30 - movs r0, 0 - b _08076F38 - .align 2, 0 -_08076F28: .4byte 0x0202f7c5 -_08076F2C: .4byte 0x0202f7a4 -_08076F30: .4byte 0x0202f7b0 -_08076F34: - ldr r1, _08076F40 - movs r0, 0x1 -_08076F38: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08076F40: .4byte 0x0202f7b0 - thumb_func_end ma16_wait_for_battle_screen_elements_s2 - - thumb_func_start sub_8076F44 -sub_8076F44: @ 8076F44 - push {lr} - ldr r0, _08076F5C - ldrb r2, [r0] - cmp r2, 0 - bne _08076F68 - ldr r0, _08076F60 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, _08076F64 - strb r2, [r0] - b _08076F6E - .align 2, 0 -_08076F5C: .4byte 0x0202f7c5 -_08076F60: .4byte 0x0202f7a4 -_08076F64: .4byte 0x0202f7b0 -_08076F68: - ldr r1, _08076F74 - movs r0, 0x1 - strb r0, [r1] -_08076F6E: - pop {r0} - bx r0 - .align 2, 0 -_08076F74: .4byte 0x0202f7b0 - thumb_func_end sub_8076F44 - - thumb_func_start ma18_load_background_probably -ma18_load_background_probably: @ 8076F78 - push {r4,lr} - ldr r4, _08076F94 - ldr r1, [r4] - adds r0, r1, 0x1 - str r0, [r4] - ldrb r0, [r1, 0x1] - bl sub_8076DB8 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08076F94: .4byte 0x0202f7a4 - thumb_func_end ma18_load_background_probably - - thumb_func_start sub_8076F98 -sub_8076F98: @ 8076F98 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08076FDC - ldr r0, _08076FD4 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _08076FD8 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08076FDC - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - movs r4, 0xC0 - cmp r0, 0 - beq _0807706E - movs r4, 0x3F - b _0807706E - .align 2, 0 -_08076FD4: .4byte 0x0202f7c8 -_08076FD8: .4byte 0x02017810 -_08076FDC: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077004 - ldr r0, _08076FFC - ldr r1, _08077000 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08077068 - cmp r0, 0x2 - bne _08077068 - cmp r4, 0x3F - beq _0807707A - b _08077068 - .align 2, 0 -_08076FFC: .4byte 0x0202f7c8 -_08077000: .4byte 0x0202f7c9 -_08077004: - ldr r0, _0807702C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08077042 - ldr r0, _08077030 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0807706E - lsls r0, r4, 24 - asrs r1, r0, 24 - cmp r1, 0x3F - bne _08077034 - movs r4, 0xC0 - b _0807706E - .align 2, 0 -_0807702C: .4byte 0x0202f7c8 -_08077030: .4byte 0x0202f7c9 -_08077034: - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - beq _0807706E - negs r0, r1 - lsls r0, 24 - b _0807706C -_08077042: - ldr r0, _08077064 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08077068 - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - bne _0807706E - movs r4, 0x3F - b _0807706E - .align 2, 0 -_08077064: .4byte 0x0202f7c9 -_08077068: - lsls r0, r4, 24 - negs r0, r0 -_0807706C: - lsrs r4, r0, 24 -_0807706E: - lsls r0, r4, 24 - asrs r0, 24 - cmp r0, 0x3F - ble _0807707A - movs r4, 0x3F - b _08077088 -_0807707A: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - bge _08077088 - movs r4, 0xC0 -_08077088: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8076F98 - - thumb_func_start sub_8077094 -sub_8077094: @ 8077094 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080770D8 - ldr r0, _080770D0 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _080770D4 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080770D8 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - movs r4, 0xC0 - cmp r0, 0 - beq _080770F6 - movs r4, 0x3F - b _080770F6 - .align 2, 0 -_080770D0: .4byte 0x0202f7c8 -_080770D4: .4byte 0x02017810 -_080770D8: - ldr r0, _08077100 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080770F0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080770F6 -_080770F0: - lsls r0, r4, 24 - negs r0, r0 - lsrs r4, r0, 24 -_080770F6: - lsls r0, r4, 24 - asrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08077100: .4byte 0x0202f7c8 - thumb_func_end sub_8077094 - - thumb_func_start sub_8077104 -sub_8077104: @ 8077104 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - asrs r2, r0, 16 - cmp r2, 0x3F - ble _08077114 - movs r1, 0x3F - b _0807711E -_08077114: - movs r0, 0x40 - negs r0, r0 - cmp r2, r0 - bge _0807711E - ldr r1, _08077128 -_0807711E: - lsls r0, r1, 16 - asrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_08077128: .4byte 0x0000ffc0 - thumb_func_end sub_8077104 - - thumb_func_start sub_807712C -sub_807712C: @ 807712C - push {lr} - lsls r2, 16 - lsrs r2, 16 - adds r3, r2, 0 - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _0807714A - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0 - bge _0807715A - b _08077158 -_0807714A: - cmp r0, r1 - ble _08077160 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0 - bge _08077158 - negs r0, r0 -_08077158: - negs r0, r0 -_0807715A: - lsls r0, 16 - lsrs r0, 16 - b _08077162 -_08077160: - movs r0, 0 -_08077162: - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_807712C - - thumb_func_start ma19_08073BC8 -ma19_08073BC8: @ 807716C - push {r4,r5,lr} - ldr r5, _080771A0 - ldr r0, [r5] - adds r1, r0, 0x1 - str r1, [r5] - ldrb r4, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r4, 0 - bl audio_play_and_stuff - ldr r0, [r5] - adds r0, 0x3 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080771A0: .4byte 0x0202f7a4 - thumb_func_end ma19_08073BC8 - - thumb_func_start ma1A_8073C00 -ma1A_8073C00: @ 80771A4 - push {r4,lr} - ldr r4, _080771CC - ldr r1, [r4] - adds r0, r1, 0x1 - str r0, [r4] - movs r0, 0x1 - ldrsb r0, [r1, r0] - bl sub_8076F98 - lsls r0, 24 - asrs r0, 24 - bl sub_8075560 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080771CC: .4byte 0x0202f7a4 - thumb_func_end ma1A_8073C00 - - thumb_func_start ma1B_8073C2C -ma1B_8073C2C: @ 80771D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08077280 - mov r10, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r10 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r9, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - ldrb r4, [r1, 0x3] - ldrb r6, [r1, 0x4] - ldrb r7, [r1, 0x5] - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl sub_8076F98 - mov r8, r0 - lsls r5, 24 - asrs r5, 24 - mov r0, r8 - lsls r0, 24 - asrs r0, 24 - mov r8, r0 - lsls r6, 24 - asrs r6, 24 - adds r0, r5, 0 - mov r1, r8 - adds r2, r6, 0 - bl sub_807712C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08077284 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08077288 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - mov r2, r8 - strh r2, [r1, 0xA] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xC] - strh r7, [r1, 0xE] - strh r5, [r1, 0x10] - mov r0, r9 - adds r1, r5, 0 - bl audio_play_and_stuff - ldr r1, _0807728C - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r10 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08077280: .4byte 0x0202f7a4 -_08077284: .4byte c3_08073CEC -_08077288: .4byte 0x03004b20 -_0807728C: .4byte 0x0202f7b3 - thumb_func_end ma1B_8073C2C - - thumb_func_start c3_08073CEC -c3_08073CEC: @ 8077290 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0 - ldr r1, _080772D4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x18] - adds r1, r0, 0x1 - strh r1, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xE - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08077314 - strh r7, [r2, 0x18] - ldrh r6, [r2, 0x8] - ldrh r3, [r2, 0xA] - movs r4, 0x10 - ldrsh r0, [r2, r4] - movs r4, 0xC - ldrsh r1, [r2, r4] - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - strh r4, [r2, 0x10] - cmp r1, 0 - bne _080772D8 - lsls r2, r3, 16 - b _080772FC - .align 2, 0 -_080772D4: .4byte 0x03004b20 -_080772D8: - lsls r1, r6, 16 - lsls r0, r3, 16 - asrs r3, r0, 16 - adds r2, r0, 0 - cmp r1, r2 - bge _080772EE - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - blt _080772F8 - b _080772FC -_080772EE: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - bgt _080772F8 - movs r7, 0x1 -_080772F8: - cmp r7, 0 - beq _0807730C -_080772FC: - lsrs r4, r2, 16 - adds r0, r5, 0 - bl DestroyTask - ldr r1, _0807731C - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_0807730C: - lsls r0, r4, 24 - asrs r0, 24 - bl sub_8075560 -_08077314: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807731C: .4byte 0x0202f7b3 - thumb_func_end c3_08073CEC - - thumb_func_start sub_8077320 -sub_8077320: @ 8077320 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, _080773A4 - mov r9, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r9 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r8, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r8 - orrs r2, r0 - mov r8, r2 - ldrb r4, [r1, 0x2] - ldrb r5, [r1, 0x3] - ldrb r6, [r1, 0x4] - ldrb r1, [r1, 0x5] - mov r10, r1 - ldr r0, _080773A8 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080773AC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0x8] - lsls r5, 24 - asrs r5, 24 - strh r5, [r1, 0xA] - lsls r6, 24 - asrs r6, 24 - strh r6, [r1, 0xC] - mov r0, r10 - strh r0, [r1, 0xE] - strh r4, [r1, 0x10] - mov r0, r8 - adds r1, r4, 0 - bl audio_play_and_stuff - ldr r1, _080773B0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080773A4: .4byte 0x0202f7a4 -_080773A8: .4byte c3_08073CEC -_080773AC: .4byte 0x03004b20 -_080773B0: .4byte 0x0202f7b3 - thumb_func_end sub_8077320 - - thumb_func_start sub_80773B4 -sub_80773B4: @ 80773B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08077464 - mov r10, r0 - ldr r0, [r0] - adds r1, r0, 0x1 - mov r2, r10 - str r1, [r2] - ldrb r0, [r0, 0x1] - mov r9, r0 - ldrb r0, [r1, 0x1] - lsls r0, 8 - mov r2, r9 - orrs r2, r0 - mov r9, r2 - ldrb r4, [r1, 0x3] - ldrb r0, [r1, 0x4] - mov r8, r0 - ldrb r7, [r1, 0x5] - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8077094 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl sub_8077094 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - mov r0, r8 - bl sub_8077094 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08077468 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0807746C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r6, 24 - asrs r6, 24 - strh r6, [r1, 0x8] - lsls r5, 24 - asrs r5, 24 - strh r5, [r1, 0xA] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xC] - strh r7, [r1, 0xE] - strh r6, [r1, 0x10] - mov r0, r9 - adds r1, r6, 0 - bl audio_play_and_stuff - ldr r1, _08077470 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r2, r10 - ldr r0, [r2] - adds r0, 0x6 - str r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08077464: .4byte 0x0202f7a4 -_08077468: .4byte c3_08073CEC -_0807746C: .4byte 0x03004b20 -_08077470: .4byte 0x0202f7b3 - thumb_func_end sub_80773B4 - - thumb_func_start ma1C_8073ED0 -ma1C_8073ED0: @ 8077474 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r6, _080774EC - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r5, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r5, r0 - ldrb r0, [r1, 0x3] - mov r8, r0 - ldrb r2, [r1, 0x4] - mov r9, r2 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080774F0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080774F4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - mov r2, r8 - strh r2, [r1, 0xC] - mov r2, r9 - strh r2, [r1, 0xE] - mov r2, r8 - strh r2, [r1, 0x18] - ldr r1, [r1] - bl _call_via_r1 - ldr r1, _080774F8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x5 - str r0, [r6] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080774EC: .4byte 0x0202f7a4 -_080774F0: .4byte sub_80774FC -_080774F4: .4byte 0x03004b20 -_080774F8: .4byte 0x0202f7b3 - thumb_func_end ma1C_8073ED0 - - thumb_func_start sub_80774FC -sub_80774FC: @ 80774FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08077550 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x18] - adds r1, r0, 0x1 - strh r1, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r3, 0xC - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _0807754A - movs r0, 0 - strh r0, [r2, 0x18] - ldrh r0, [r2, 0x8] - ldrb r1, [r2, 0xA] - ldrh r4, [r2, 0xE] - subs r4, 0x1 - strh r4, [r2, 0xE] - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - asrs r1, 24 - bl audio_play_and_stuff - cmp r4, 0 - bne _0807754A - adds r0, r5, 0 - bl DestroyTask - ldr r1, _08077554 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_0807754A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08077550: .4byte 0x03004b20 -_08077554: .4byte 0x0202f7b3 - thumb_func_end sub_80774FC - - thumb_func_start ma1D_08073FB4 -ma1D_08073FB4: @ 8077558 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r6, _080775BC - ldr r0, [r6] - adds r1, r0, 0x1 - str r1, [r6] - ldrb r5, [r0, 0x1] - ldrb r0, [r1, 0x1] - lsls r0, 8 - orrs r5, r0 - ldrb r0, [r1, 0x3] - mov r8, r0 - movs r0, 0x2 - ldrsb r0, [r1, r0] - bl sub_8076F98 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080775C0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080775C4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0x8] - lsls r4, 24 - asrs r4, 24 - strh r4, [r1, 0xA] - mov r0, r8 - strh r0, [r1, 0xC] - ldr r1, _080775C8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x4 - str r0, [r6] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080775BC: .4byte 0x0202f7a4 -_080775C0: .4byte sub_80775CC -_080775C4: .4byte 0x03004b20 -_080775C8: .4byte 0x0202f7b3 - thumb_func_end ma1D_08073FB4 - - thumb_func_start sub_80775CC -sub_80775CC: @ 80775CC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08077608 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xC] - subs r1, r0, 0x1 - strh r1, [r2, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _08077600 - ldrh r0, [r2, 0x8] - movs r1, 0xA - ldrsb r1, [r2, r1] - bl audio_play_and_stuff - adds r0, r4, 0 - bl DestroyTask - ldr r1, _0807760C - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_08077600: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077608: .4byte 0x03004b20 -_0807760C: .4byte 0x0202f7b3 - thumb_func_end sub_80775CC - - thumb_func_start sub_8077610 -sub_8077610: @ 8077610 - push {r4-r6,lr} - ldr r4, _08077678 - ldr r1, [r4] - adds r3, r1, 0x1 - str r3, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r3, 0x1] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x2] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 24 - adds r6, r2, r0 - adds r0, r1, 0x5 - str r0, [r4] - ldrb r0, [r1, 0x5] - adds r1, 0x6 - str r1, [r4] - cmp r0, 0 - beq _0807765A - adds r5, r4, 0 - ldr r4, _0807767C - adds r3, r0, 0 -_08077642: - ldr r2, [r5] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - strh r1, [r4] - adds r2, 0x2 - str r2, [r5] - adds r4, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _08077642 -_0807765A: - adds r0, r6, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r6 - ldr r1, _08077680 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08077678: .4byte 0x0202f7a4 -_0807767C: .4byte 0x03004b00 -_08077680: .4byte 0x0202f7b3 - thumb_func_end sub_8077610 - - thumb_func_start ma20_wait_for_something -ma20_wait_for_something: @ 8077684 - push {r4,r5,lr} - ldr r0, _080776BC - ldrb r5, [r0] - cmp r5, 0 - bne _080776CC - bl mplay_has_finished_maybe - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080776E4 - ldr r4, _080776C0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5A - bls _080776D2 - ldr r0, _080776C4 - bl m4aMPlayStop - ldr r0, _080776C8 - bl m4aMPlayStop - strh r5, [r4] - b _080776F6 - .align 2, 0 -_080776BC: .4byte 0x0202f7b3 -_080776C0: .4byte 0x03004af0 -_080776C4: .4byte 0x030073c0 -_080776C8: .4byte 0x03007400 -_080776CC: - ldr r1, _080776DC - movs r0, 0 - strh r0, [r1] -_080776D2: - ldr r1, _080776E0 - movs r0, 0x1 - strb r0, [r1] - b _080776F6 - .align 2, 0 -_080776DC: .4byte 0x03004af0 -_080776E0: .4byte 0x0202f7b0 -_080776E4: - ldr r0, _080776FC - movs r2, 0 - strh r1, [r0] - ldr r1, _08077700 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r0, _08077704 - strb r2, [r0] -_080776F6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080776FC: .4byte 0x03004af0 -_08077700: .4byte 0x0202f7a4 -_08077704: .4byte 0x0202f7b0 - thumb_func_end ma20_wait_for_something - - thumb_func_start ma21_08074164 -ma21_08074164: @ 8077708 - push {r4-r6,lr} - ldr r5, _08077748 - ldr r4, [r5] - adds r3, r4, 0x1 - str r3, [r5] - ldrb r2, [r4, 0x1] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, _0807774C - lsls r2, 1 - adds r2, r0 - lsls r1, 16 - asrs r1, 16 - movs r6, 0 - ldrsh r0, [r2, r6] - cmp r1, r0 - bne _08077750 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - adds r1, r0 - str r1, [r5] - b _08077756 - .align 2, 0 -_08077748: .4byte 0x0202f7a4 -_0807774C: .4byte 0x03004b00 -_08077750: - adds r0, r4, 0 - adds r0, 0x8 - str r0, [r5] -_08077756: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ma21_08074164 - - thumb_func_start sub_807775C -sub_807775C: @ 807775C - push {r4,lr} - ldr r4, _0807778C - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077790 - ldr r2, [r4] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r4] - b _08077796 - .align 2, 0 -_0807778C: .4byte 0x0202f7a4 -_08077790: - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] -_08077796: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_807775C - - thumb_func_start sub_807779C -sub_807779C: @ 807779C - push {r4,lr} - ldr r0, _080777B0 - ldr r1, [r0] - ldrb r2, [r1, 0x1] - adds r1, 0x2 - str r1, [r0] - cmp r2, 0 - beq _080777B8 - ldr r0, _080777B4 - b _080777BA - .align 2, 0 -_080777B0: .4byte 0x0202f7a4 -_080777B4: .4byte 0x0202f7c9 -_080777B8: - ldr r0, _080777FC -_080777BA: - ldrb r0, [r0] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080777F4 - cmp r4, 0 - beq _080777D6 - cmp r4, 0x3 - bne _080777F4 -_080777D6: - ldr r3, _08077800 - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r3] - ldr r2, _08077804 - ldrb r0, [r2] - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] -_080777F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080777FC: .4byte 0x0202f7c8 -_08077800: .4byte 0x0400000a -_08077804: .4byte 0x0400000c - thumb_func_end sub_807779C - - thumb_func_start sub_8077808 -sub_8077808: @ 8077808 - push {lr} - ldr r0, _08077840 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0807783A - ldr r3, _08077844 - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r3] - ldr r2, _08077848 - ldrb r0, [r2] - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] -_0807783A: - pop {r0} - bx r0 - .align 2, 0 -_08077840: .4byte 0x0202f7a4 -_08077844: .4byte 0x0400000a -_08077848: .4byte 0x0400000c - thumb_func_end sub_8077808 - - thumb_func_start sub_807784C -sub_807784C: @ 807784C - push {r4-r7,lr} - ldr r1, _0807787C - ldr r0, [r1] - ldrb r6, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - ldr r7, _08077880 - ldrb r0, [r7] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _08077884 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080778C2 - cmp r6, 0 - beq _08077888 - ldrb r0, [r5] - b _0807788A - .align 2, 0 -_0807787C: .4byte 0x0202f7a4 -_08077880: .4byte 0x0202f7c8 -_08077884: .4byte 0x0202f7c9 -_08077888: - ldrb r0, [r7] -_0807788A: - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080778C2 - cmp r4, 0 - beq _080778A4 - cmp r4, 0x3 - bne _080778C2 -_080778A4: - ldr r3, _080778C8 - ldrb r2, [r3] - movs r1, 0x4 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x1 - orrs r0, r2 - strb r0, [r3] - ldr r2, _080778CC - ldrb r0, [r2] - ands r1, r0 - movs r0, 0x2 - orrs r1, r0 - strb r1, [r2] -_080778C2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080778C8: .4byte 0x0400000a -_080778CC: .4byte 0x0400000c - thumb_func_end sub_807784C - - thumb_func_start ma2B_make_side_invisible -ma2B_make_side_invisible: @ 80778D0 - push {r4,lr} - ldr r4, _08077904 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080778F8 - ldr r1, _08077908 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080778F8: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077904: .4byte 0x0202f7a4 -_08077908: .4byte 0x02020004 - thumb_func_end ma2B_make_side_invisible - - thumb_func_start ma2C_make_side_visible -ma2C_make_side_visible: @ 807790C - push {r4,lr} - ldr r4, _08077944 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _08077936 - ldr r1, _08077948 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08077936: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08077944: .4byte 0x0202f7a4 -_08077948: .4byte 0x02020004 - thumb_func_end ma2C_make_side_visible - - thumb_func_start sub_807794C -sub_807794C: @ 807794C - push {r4-r7,lr} - ldr r1, _08077998 - ldr r0, [r1] - ldrb r7, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080779F6 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080779F6 - ldr r6, _0807799C - ldrb r0, [r6] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _080779A0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080779F6 - cmp r7, 0 - bne _080779A4 - ldrb r0, [r6] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - b _080779B0 - .align 2, 0 -_08077998: .4byte 0x0202f7a4 -_0807799C: .4byte 0x0202f7c8 -_080779A0: .4byte 0x0202f7c9 -_080779A4: - ldrb r0, [r5] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 -_080779B0: - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080779F6 - ldr r1, _080779EC - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - cmp r4, 0x2 - bne _080779E0 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] -_080779E0: - cmp r4, 0x1 - bne _080779F0 - movs r0, 0 - bl sub_8076464 - b _080779F6 - .align 2, 0 -_080779EC: .4byte 0x02020004 -_080779F0: - movs r0, 0x1 - bl sub_8076464 -_080779F6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_807794C - - thumb_func_start sub_80779FC -sub_80779FC: @ 80779FC - push {r4-r7,lr} - ldr r1, _08077A48 - ldr r0, [r1] - ldrb r7, [r0, 0x1] - adds r0, 0x2 - str r0, [r1] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08077A88 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08077A88 - ldr r6, _08077A4C - ldrb r0, [r6] - bl battle_side_get_owner - adds r4, r0, 0 - ldr r5, _08077A50 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _08077A88 - cmp r7, 0 - bne _08077A54 - ldrb r0, [r6] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - b _08077A60 - .align 2, 0 -_08077A48: .4byte 0x0202f7a4 -_08077A4C: .4byte 0x0202f7c8 -_08077A50: .4byte 0x0202f7c9 -_08077A54: - ldrb r0, [r5] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 -_08077A60: - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _08077A88 - cmp r4, 0x2 - bne _08077A88 - ldr r1, _08077A90 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] -_08077A88: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08077A90: .4byte 0x02020004 - thumb_func_end sub_80779FC - - thumb_func_start ma2F_stop_music -ma2F_stop_music: @ 8077A94 - push {lr} - ldr r0, _08077AB0 - bl m4aMPlayStop - ldr r0, _08077AB4 - bl m4aMPlayStop - ldr r1, _08077AB8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08077AB0: .4byte 0x030073c0 -_08077AB4: .4byte 0x03007400 -_08077AB8: .4byte 0x0202f7a4 - thumb_func_end ma2F_stop_music - - thumb_func_start sub_8077ABC -sub_8077ABC: @ 8077ABC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077ADA - cmp r4, 0x3 - bne _08077ADA - cmp r5, 0x3 - bne _08077ADA - movs r4, 0x1 -_08077ADA: - cmp r4, 0x4 - bhi _08077B50 - lsls r0, r4, 2 - ldr r1, _08077AE8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08077AE8: .4byte _08077AEC - .align 2, 0 -_08077AEC: - .4byte _08077B00 - .4byte _08077B28 - .4byte _08077B00 - .4byte _08077B50 - .4byte _08077B50 -_08077B00: - ldr r4, _08077B20 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 22 - ldr r1, _08077B24 - ldrh r2, [r1] - movs r1, 0x1 - ands r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - b _08077BF4 - .align 2, 0 -_08077B20: .4byte gUnknown_0837F578 -_08077B24: .4byte 0x020239f8 -_08077B28: - ldr r4, _08077B48 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 22 - ldr r1, _08077B4C - ldrh r2, [r1] - movs r1, 0x1 - ands r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0, 0x1] - b _08077BF4 - .align 2, 0 -_08077B48: .4byte gUnknown_0837F578 -_08077B4C: .4byte 0x020239f8 -_08077B50: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077B74 - ldr r2, _08077B6C - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08077B70 - ldrh r1, [r2, 0x2] - b _08077BDE - .align 2, 0 -_08077B6C: .4byte 0x02019348 -_08077B70: - ldrh r1, [r2] - b _08077BDE -_08077B74: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08077BA8 - lsls r0, r5, 2 - ldr r1, _08077B9C - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08077BDC - ldr r1, _08077BA0 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08077BA4 - b _08077BC2 - .align 2, 0 -_08077B9C: .4byte 0x02017800 -_08077BA0: .4byte 0x02024a6a -_08077BA4: .4byte 0x030045c0 -_08077BA8: - lsls r0, r5, 2 - ldr r1, _08077BD0 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08077BDC - ldr r1, _08077BD4 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08077BD8 -_08077BC2: - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r1, r0, 16 - b _08077BDE - .align 2, 0 -_08077BD0: .4byte 0x02017800 -_08077BD4: .4byte 0x02024a6a -_08077BD8: .4byte 0x03004360 -_08077BDC: - ldrh r1, [r1, 0x2] -_08077BDE: - cmp r4, 0x3 - bne _08077BE8 - adds r0, r5, 0 - movs r2, 0x1 - b _08077BEC -_08077BE8: - adds r0, r5, 0 - movs r2, 0 -_08077BEC: - bl sub_8077E44 - lsls r0, 24 - lsrs r0, 24 -_08077BF4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8077ABC - - thumb_func_start sub_8077BFC -sub_8077BFC: @ 8077BFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08077C1C - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077D04 -_08077C1C: - cmp r5, 0xC9 - bne _08077CCC - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077C44 - ldr r2, _08077C3C - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08077C40 - ldr r2, [r2, 0x10] - b _08077C7E - .align 2, 0 -_08077C3C: .4byte 0x02019348 -_08077C40: - ldr r2, [r2, 0x8] - b _08077C7E -_08077C44: - lsls r1, r4, 2 - ldr r0, _08077C6C - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - bne _08077C78 - ldr r1, _08077C70 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08077C74 - adds r0, r1 - movs r1, 0 - bl PokemonGetField - adds r2, r0, 0 - b _08077C7E - .align 2, 0 -_08077C6C: .4byte 0x02017800 -_08077C70: .4byte 0x02024a6a -_08077C74: .4byte 0x03004360 -_08077C78: - ldr r0, _08077CB4 - adds r0, r1, r0 - ldr r2, [r0] -_08077C7E: - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _08077CB8 - adds r0, r5, 0 - b _08077CC2 - .align 2, 0 -_08077CB4: .4byte 0x02024e70 -_08077CB8: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_08077CC2: - ldr r1, _08077CC8 - lsls r0, 2 - b _08077DC8 - .align 2, 0 -_08077CC8: .4byte gUnknown_081E9114 -_08077CCC: - ldr r0, _08077CE0 - cmp r5, r0 - bne _08077CEC - ldr r0, _08077CE4 - ldr r1, _08077CE8 - adds r1, r4, r1 - ldrb r1, [r1] - adds r1, r0 - ldrb r0, [r1] - b _08077DCC - .align 2, 0 -_08077CE0: .4byte 0x00000181 -_08077CE4: .4byte gUnknown_0837F5AC -_08077CE8: .4byte 0x02024e84 -_08077CEC: - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - bls _08077CFC - ldr r0, _08077CF8 - b _08077DCA - .align 2, 0 -_08077CF8: .4byte gUnknown_081E9114 -_08077CFC: - ldr r1, _08077D00 - b _08077DC6 - .align 2, 0 -_08077D00: .4byte gUnknown_081E9114 -_08077D04: - cmp r5, 0xC9 - bne _08077D90 - lsls r1, r4, 2 - ldr r0, _08077D30 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - bne _08077D3C - ldr r1, _08077D34 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08077D38 - adds r0, r1 - movs r1, 0 - bl PokemonGetField - adds r2, r0, 0 - b _08077D42 - .align 2, 0 -_08077D30: .4byte 0x02017800 -_08077D34: .4byte 0x02024a6a -_08077D38: .4byte 0x030045c0 -_08077D3C: - ldr r0, _08077D78 - adds r0, r1, r0 - ldr r2, [r0] -_08077D42: - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _08077D7C - adds r0, r5, 0 - b _08077D86 - .align 2, 0 -_08077D78: .4byte 0x02024e70 -_08077D7C: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_08077D86: - ldr r1, _08077D8C - lsls r0, 2 - b _08077DC8 - .align 2, 0 -_08077D8C: .4byte gUnknown_081E7C74 -_08077D90: - ldr r0, _08077DA8 - cmp r5, r0 - bne _08077DB4 - ldr r0, _08077DAC - ldr r1, _08077DB0 - adds r1, r4, r1 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _08077DCC - .align 2, 0 -_08077DA8: .4byte 0x00000181 -_08077DAC: .4byte gUnknown_0837F598 -_08077DB0: .4byte 0x02024e84 -_08077DB4: - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - bls _08077DC4 - ldr r0, _08077DC0 - b _08077DCA - .align 2, 0 -_08077DC0: .4byte gUnknown_081E7C74 -_08077DC4: - ldr r1, _08077DD4 -_08077DC6: - lsls r0, r5, 2 -_08077DC8: - adds r0, r1 -_08077DCA: - ldrb r0, [r0, 0x1] -_08077DCC: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08077DD4: .4byte gUnknown_081E7C74 - thumb_func_end sub_8077BFC - - thumb_func_start sub_8077DD8 -sub_8077DD8: @ 8077DD8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - adds r7, r4, 0 - movs r5, 0 - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08077E36 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08077E36 - ldr r0, _08077E14 - cmp r4, r0 - bne _08077E20 - ldr r0, _08077E18 - ldr r1, _08077E1C - adds r1, r6, r1 - ldrb r1, [r1] - adds r1, r0 - ldrb r5, [r1] - b _08077E36 - .align 2, 0 -_08077E14: .4byte 0x00000181 -_08077E18: .4byte gUnknown_0837F5A8 -_08077E1C: .4byte 0x02024e84 -_08077E20: - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _08077E30 - ldr r0, _08077E2C - b _08077E34 - .align 2, 0 -_08077E2C: .4byte gUnknown_081ECB14 -_08077E30: - ldr r0, _08077E40 - adds r0, r7, r0 -_08077E34: - ldrb r5, [r0] -_08077E36: - adds r0, r5, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08077E40: .4byte gUnknown_081ECB14 - thumb_func_end sub_8077DD8 - - thumb_func_start sub_8077E44 -sub_8077E44: @ 8077E44 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08077E68 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077E76 -_08077E68: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8077BFC - lsls r0, 24 - lsrs r4, r0, 24 - b _08077E94 -_08077E76: - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8077BFC - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8077DD8 - lsls r0, 24 - lsrs r0, 24 - subs r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 -_08077E94: - adds r0, r6, 0 - bl battle_get_per_side_status - ldr r3, _08077EDC - lsls r0, 24 - lsrs r0, 22 - ldr r1, _08077EE0 - ldrh r2, [r1] - movs r1, 0x1 - ands r1, r2 - lsls r1, 4 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0, 0x1] - adds r0, r4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, 0 - beq _08077ED4 - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08077ECE - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 -_08077ECE: - cmp r4, 0x68 - bls _08077ED4 - movs r4, 0x68 -_08077ED4: - adds r0, r4, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08077EDC: .4byte gUnknown_0837F578 -_08077EE0: .4byte 0x020239f8 - thumb_func_end sub_8077E44 - - thumb_func_start sub_8077EE4 -sub_8077EE4: @ 8077EE4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r0, 0xFD - lsls r0, 24 - adds r1, r0 - lsrs r1, 24 - cmp r1, 0x1 - bhi _08077F56 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08077F1C - ldr r2, _08077F14 - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08077F18 - ldrh r1, [r2, 0x2] - b _08077F3E - .align 2, 0 -_08077F14: .4byte 0x02019348 -_08077F18: - ldrh r1, [r2] - b _08077F3E -_08077F1C: - lsls r0, r4, 2 - ldr r1, _08077F34 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08077F3C - ldr r1, _08077F38 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - b _08077F3E - .align 2, 0 -_08077F34: .4byte 0x02017800 -_08077F38: .4byte 0x0202f7ca -_08077F3C: - ldrh r1, [r1, 0x2] -_08077F3E: - cmp r5, 0x3 - bne _08077F4C - adds r0, r4, 0 - movs r2, 0x1 - bl sub_8077E44 - b _08077F5E -_08077F4C: - adds r0, r4, 0 - movs r2, 0 - bl sub_8077E44 - b _08077F5E -_08077F56: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8077ABC -_08077F5E: - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8077EE4 - - thumb_func_start sub_8077F68 -sub_8077F68: @ 8077F68 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x4 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8077F68 - - thumb_func_start sub_8077F7C -sub_8077F7C: @ 8077F7C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08077FA0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r1, 0x80 - lsls r1, 13 - b _08077FB0 -_08077FA0: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 8 - movs r1, 0x88 - lsls r1, 13 -_08077FB0: - adds r0, r1 - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8077F7C - - thumb_func_start sub_8077FC0 -sub_8077FC0: @ 8077FC0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08078060 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08078010 - lsls r0, r5, 2 - ldr r1, _08078004 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08078044 - ldr r1, _08078008 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0807800C - b _0807802A - .align 2, 0 -_08078004: .4byte 0x02017800 -_08078008: .4byte 0x02024a6a -_0807800C: .4byte 0x030045c0 -_08078010: - lsls r0, r5, 2 - ldr r1, _08078038 - adds r1, r0, r1 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08078044 - ldr r1, _0807803C - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08078040 -_0807802A: - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r4, r0, 16 - b _08078046 - .align 2, 0 -_08078038: .4byte 0x02017800 -_0807803C: .4byte 0x02024a6a -_08078040: .4byte 0x03004360 -_08078044: - ldrh r4, [r1, 0x2] -_08078046: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08078060 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8077DD8 - subs r0, r6, r0 - lsls r0, 24 - lsrs r6, r0, 24 -_08078060: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8077FC0 - - thumb_func_start obj_id_for_side_relative_to_move -obj_id_for_side_relative_to_move: @ 8078068 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0 - bne _08078090 - ldr r4, _08078088 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _080780DE - ldr r1, _0807808C - ldrb r0, [r4] - b _080780EE - .align 2, 0 -_08078088: .4byte 0x0202f7c8 -_0807808C: .4byte 0x02024be0 -_08078090: - cmp r0, 0x1 - bne _080780B0 - ldr r4, _080780A8 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _080780DE - ldr r1, _080780AC - ldrb r0, [r4] - b _080780EE - .align 2, 0 -_080780A8: .4byte 0x0202f7c9 -_080780AC: .4byte 0x02024be0 -_080780B0: - cmp r1, 0x2 - bne _080780CC - ldr r5, _080780C8 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _080780DE - b _080780E8 - .align 2, 0 -_080780C8: .4byte 0x0202f7c8 -_080780CC: - ldr r5, _080780E4 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - bne _080780E8 -_080780DE: - movs r0, 0xFF - b _080780F2 - .align 2, 0 -_080780E4: .4byte 0x0202f7c9 -_080780E8: - ldr r1, _080780F8 - ldrb r0, [r5] - eors r0, r4 -_080780EE: - adds r0, r1 - ldrb r0, [r0] -_080780F2: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080780F8: .4byte 0x02024be0 - thumb_func_end obj_id_for_side_relative_to_move - - thumb_func_start oamt_set_x3A_32 -oamt_set_x3A_32: @ 80780FC - strh r1, [r0, 0x3A] - lsrs r1, 16 - strh r1, [r0, 0x3C] - bx lr - thumb_func_end oamt_set_x3A_32 - - thumb_func_start sub_8078104 -sub_8078104: @ 8078104 - ldrh r2, [r0, 0x3A] - movs r3, 0x3C - ldrsh r1, [r0, r3] - lsls r1, 16 - orrs r2, r1 - str r2, [r0, 0x1C] - bx lr - thumb_func_end sub_8078104 - - thumb_func_start sub_8078114 -sub_8078114: @ 8078114 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08078168 - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl sine - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl cosine - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08078154 - ldr r2, _08078150 - b _0807815C - .align 2, 0 -_08078150: .4byte 0xffffff00 -_08078154: - cmp r0, 0 - bge _08078160 - movs r2, 0x80 - lsls r2, 1 -_0807815C: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_08078160: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _0807816E -_08078168: - adds r0, r4, 0 - bl sub_8078104 -_0807816E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078114 - - thumb_func_start sub_8078174 -sub_8078174: @ 8078174 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080781E4 - movs r2, 0x2E - ldrsh r0, [r4, r2] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sine - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - bl cosine - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080781D0 - ldr r2, _080781CC - b _080781D8 - .align 2, 0 -_080781CC: .4byte 0xffffff00 -_080781D0: - cmp r0, 0 - bge _080781DC - movs r2, 0x80 - lsls r2, 1 -_080781D8: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080781DC: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080781EA -_080781E4: - adds r0, r4, 0 - bl sub_8078104 -_080781EA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078174 - - thumb_func_start unref_sub_80781F0 -unref_sub_80781F0: @ 80781F0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0807826C - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl sine - strh r0, [r4, 0x24] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl cosine - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - ldrh r0, [r4, 0x38] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08078238 - ldr r2, _08078234 - b _08078240 - .align 2, 0 -_08078234: .4byte 0xffffff00 -_08078238: - cmp r0, 0 - bge _08078244 - movs r2, 0x80 - lsls r2, 1 -_08078240: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_08078244: - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - ble _08078258 - ldr r2, _08078254 - b _08078260 - .align 2, 0 -_08078254: .4byte 0xffffff00 -_08078258: - cmp r0, 0 - bge _08078264 - movs r2, 0x80 - lsls r2, 1 -_08078260: - adds r0, r1, r2 - strh r0, [r4, 0x36] -_08078264: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _08078272 -_0807826C: - adds r0, r4, 0 - bl sub_8078104 -_08078272: - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80781F0 - - thumb_func_start sub_8078278 -sub_8078278: @ 8078278 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080782CC - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl sine - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl cosine - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x2E] - adds r1, r0, r2 - strh r1, [r4, 0x2E] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080782B8 - ldr r2, _080782B4 - b _080782C0 - .align 2, 0 -_080782B4: .4byte 0xffffff00 -_080782B8: - cmp r0, 0 - bge _080782C4 - movs r2, 0x80 - lsls r2, 1 -_080782C0: - adds r0, r1, r2 - strh r0, [r4, 0x2E] -_080782C4: - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - b _080782D2 -_080782CC: - adds r0, r4, 0 - bl sub_8078104 -_080782D2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078278 - - thumb_func_start sub_80782D8 -sub_80782D8: @ 80782D8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _080782EC - subs r0, r2, 0x1 - strh r0, [r1, 0x2E] - b _080782F2 -_080782EC: - adds r0, r1, 0 - bl sub_8078104 -_080782F2: - pop {r0} - bx r0 - thumb_func_end sub_80782D8 - - thumb_func_start sub_80782F8 -sub_80782F8: @ 80782F8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078314 - ldr r1, _08078310 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078310: .4byte sub_8078364 - thumb_func_end sub_80782F8 - - thumb_func_start sub_8078314 -sub_8078314: @ 8078314 - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0807832A - ldrh r0, [r4, 0x2E] - negs r0, r0 - strh r0, [r4, 0x2E] -_0807832A: - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - subs r0, r1 - ldrh r5, [r4, 0x2E] - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - cmp r0, 0 - bge _08078344 - negs r0, r0 -_08078344: - strh r0, [r4, 0x2E] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - subs r0, r1 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x32] - strh r5, [r4, 0x30] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8078314 - - thumb_func_start sub_8078364 -sub_8078364: @ 8078364 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _08078388 - subs r0, r2, 0x1 - strh r0, [r1, 0x2E] - ldrh r0, [r1, 0x30] - ldrh r2, [r1, 0x24] - adds r0, r2 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - ldrh r3, [r1, 0x26] - adds r0, r3 - strh r0, [r1, 0x26] - b _0807838E -_08078388: - adds r0, r1, 0 - bl sub_8078104 -_0807838E: - pop {r0} - bx r0 - thumb_func_end sub_8078364 - - thumb_func_start sub_8078394 -sub_8078394: @ 8078394 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080783C4 - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r0, r1 - strh r0, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r3, [r2, 0x36] - adds r1, r3 - strh r1, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - b _080783CA -_080783C4: - adds r0, r2, 0 - bl sub_8078104 -_080783CA: - pop {r0} - bx r0 - thumb_func_end sub_8078394 - - thumb_func_start sub_80783D0 -sub_80783D0: @ 80783D0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08078400 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r1, r2 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - b _08078406 -_08078400: - adds r0, r4, 0 - bl sub_8078104 -_08078406: - adds r0, r4, 0 - bl sub_809D638 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80783D0 - - thumb_func_start unref_sub_8078414 -unref_sub_8078414: @ 8078414 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x34] - ldr r5, _08078450 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _08078454 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08078450: .4byte 0x0202f7c9 -_08078454: .4byte sub_80782F8 - thumb_func_end unref_sub_8078414 - - thumb_func_start sub_8078458 -sub_8078458: @ 8078458 - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x2E] - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - ble _0807849C - subs r0, r1, 0x1 - strh r0, [r3, 0x2E] - ldr r2, _08078498 - movs r4, 0x34 - ldrsh r1, [r3, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x30] - ldrh r4, [r0, 0x24] - adds r1, r4 - strh r1, [r0, 0x24] - movs r0, 0x34 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r3, 0x32] - ldrh r2, [r0, 0x26] - adds r1, r2 - strh r1, [r0, 0x26] - b _080784A2 - .align 2, 0 -_08078498: .4byte 0x02020004 -_0807849C: - adds r0, r3, 0 - bl sub_8078104 -_080784A2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078458 - - thumb_func_start sub_80784A8 -sub_80784A8: @ 80784A8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080784F8 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r1, r0 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - ldr r3, _080784F4 - movs r0, 0x38 - ldrsh r2, [r4, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - lsls r1, 16 - asrs r1, 24 - strh r1, [r0, 0x24] - movs r1, 0x38 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] - b _080784FE - .align 2, 0 -_080784F4: .4byte 0x02020004 -_080784F8: - adds r0, r4, 0 - bl sub_8078104 -_080784FE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80784A8 - - thumb_func_start sub_8078504 -sub_8078504: @ 8078504 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08078566 - subs r0, r1, 0x1 - strh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r1, r0 - strh r1, [r4, 0x32] - ldrh r1, [r4, 0x36] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r1, r0 - strh r1, [r4, 0x36] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _0807856C - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0807856C - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _0807856C -_08078566: - adds r0, r4, 0 - bl sub_8078104 -_0807856C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078504 - - thumb_func_start move_anim_8074EE0 -move_anim_8074EE0: @ 8078574 - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl move_anim_8072740 - pop {r4} - pop {r0} - bx r0 - thumb_func_end move_anim_8074EE0 - - thumb_func_start unref_sub_8078588 -unref_sub_8078588: @ 8078588 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x34] - ldr r5, _080785C4 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - ldr r0, _080785C8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080785C4: .4byte 0x0202f7c8 -_080785C8: .4byte sub_80782F8 - thumb_func_end unref_sub_8078588 - - thumb_func_start unref_sub_80785CC -unref_sub_80785CC: @ 80785CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - bl sub_8074078 - adds r0, r4, 0 - bl move_anim_8074EE0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80785CC - - thumb_func_start sub_80785E4 -sub_80785E4: @ 80785E4 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080785FA - adds r0, r2, 0 - bl sub_8078104 -_080785FA: - pop {r0} - bx r0 - thumb_func_end sub_80785E4 - - thumb_func_start sub_8078600 -sub_8078600: @ 8078600 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08078616 - adds r0, r2, 0 - bl sub_8078104 -_08078616: - pop {r0} - bx r0 - thumb_func_end sub_8078600 - - thumb_func_start sub_807861C -sub_807861C: @ 807861C - push {lr} - ldr r1, _08078630 - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_8072740 - pop {r0} - bx r0 - .align 2, 0 -_08078630: .4byte 0x04000050 - thumb_func_end sub_807861C - - thumb_func_start sub_8078634 -sub_8078634: @ 8078634 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0807864C - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_0807864C: .4byte 0x04000050 - thumb_func_end sub_8078634 - - thumb_func_start sub_8078650 -sub_8078650: @ 8078650 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _08078678 - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08078678: .4byte 0x0202f7c8 - thumb_func_end sub_8078650 - - thumb_func_start sub_807867C -sub_807867C: @ 807867C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - mov r8, r5 - ldr r7, _080786B4 - ldrb r0, [r7] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080786B8 - ldrb r0, [r0] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bhi _080786C8 - cmp r6, r0 - bcs _080786BC - lsls r0, r5, 16 - b _080786D8 - .align 2, 0 -_080786B4: .4byte 0x0202f7c8 -_080786B8: .4byte 0x0202f7c9 -_080786BC: - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080786D4 -_080786C8: - ldrh r1, [r4, 0x20] - lsls r0, r5, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r4, 0x20] - b _080786E0 -_080786D4: - mov r1, r8 - lsls r0, r1, 16 -_080786D8: - asrs r0, 16 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] -_080786E0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_807867C - - thumb_func_start sub_80786EC -sub_80786EC: @ 80786EC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - movs r5, 0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 8 - bl __divsi3 - strh r0, [r4, 0x3A] - strh r5, [r4, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80786EC - - thumb_func_start sub_8078718 -sub_8078718: @ 8078718 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _08078744 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - adds r0, r1 - strh r0, [r4, 0x3C] - lsls r0, 16 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl sine - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r0, 0 - b _08078746 -_08078744: - movs r0, 0x1 -_08078746: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8078718 - - thumb_func_start oamt_add_pos2_onto_pos1 -oamt_add_pos2_onto_pos1: @ 807874C - ldrh r1, [r0, 0x24] - ldrh r2, [r0, 0x20] - adds r1, r2 - movs r2, 0 - strh r1, [r0, 0x20] - ldrh r1, [r0, 0x26] - ldrh r3, [r0, 0x22] - adds r1, r3 - strh r1, [r0, 0x22] - strh r2, [r0, 0x24] - strh r2, [r0, 0x26] - bx lr - thumb_func_end oamt_add_pos2_onto_pos1 - - thumb_func_start sub_8078764 -sub_8078764: @ 8078764 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - cmp r1, 0 - bne _0807878C - ldr r4, _080787A8 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_0807878C: - ldr r4, _080787AC - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080787A8: .4byte 0x0202f7c9 -_080787AC: .4byte 0x03004b00 - thumb_func_end sub_8078764 - - thumb_func_start sub_80787B0 -sub_80787B0: @ 80787B0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - cmp r1, 0 - bne _080787D4 - ldr r4, _080787D0 - ldrb r0, [r4] - movs r1, 0 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - b _080787E8 - .align 2, 0 -_080787D0: .4byte 0x0202f7c8 -_080787D4: - ldr r4, _0807880C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 -_080787E8: - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _08078810 - movs r0, 0 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807880C: .4byte 0x0202f7c8 -_08078810: .4byte 0x03004b00 - thumb_func_end sub_80787B0 - - thumb_func_start battle_side_get_owner -battle_side_get_owner: @ 8078814 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08078824 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_08078824: .4byte 0x02024a72 - thumb_func_end battle_side_get_owner - - thumb_func_start battle_get_per_side_status -battle_get_per_side_status: @ 8078828 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08078834 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08078834: .4byte 0x02024a72 - thumb_func_end battle_get_per_side_status - - thumb_func_start battle_get_side_with_given_state -battle_get_side_with_given_state: @ 8078838 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r1, 0 - ldr r0, _0807886C - ldrb r2, [r0] - cmp r1, r2 - bcs _08078862 - ldr r4, _08078870 - ldrb r0, [r4] - cmp r0, r3 - beq _08078862 -_08078850: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r2 - bcs _08078862 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r3 - bne _08078850 -_08078862: - adds r0, r1, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0807886C: .4byte 0x02024a68 -_08078870: .4byte 0x02024a72 - thumb_func_end battle_get_side_with_given_state - - thumb_func_start sub_8078874 -sub_8078874: @ 8078874 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080788A0 - ldr r0, _08078898 - ldrb r0, [r0] - cmp r0, r4 - beq _080788EE - ldr r0, _0807889C - ldrb r0, [r0] - cmp r0, r4 - beq _080788EE - b _080788FC - .align 2, 0 -_08078898: .4byte 0x0202f7c8 -_0807889C: .4byte 0x0202f7c9 -_080788A0: - ldr r0, _080788C8 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080788FC - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080788D4 - ldr r1, _080788CC - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080788D0 - b _080788E2 - .align 2, 0 -_080788C8: .4byte 0x02024a72 -_080788CC: .4byte 0x02024a6a -_080788D0: .4byte 0x030045c0 -_080788D4: - ldr r1, _080788F4 - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080788F8 -_080788E2: - adds r0, r1 - movs r1, 0x39 - bl PokemonGetField - cmp r0, 0 - beq _080788FC -_080788EE: - movs r0, 0x1 - b _080788FE - .align 2, 0 -_080788F4: .4byte 0x02024a6a -_080788F8: .4byte 0x03004360 -_080788FC: - movs r0, 0 -_080788FE: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8078874 - - thumb_func_start battle_type_is_double -battle_type_is_double: @ 8078904 - ldr r0, _08078910 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_08078910: .4byte 0x020239f8 - thumb_func_end battle_type_is_double - - thumb_func_start sub_8078914 -sub_8078914: @ 8078914 - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08078938 - ldr r0, _08078930 - str r0, [r4] - ldr r0, _08078934 - str r0, [r4, 0x4] - movs r0, 0xE - b _08078942 - .align 2, 0 -_08078930: .4byte 0x06008000 -_08078934: .4byte 0x0600f000 -_08078938: - ldr r0, _0807894C - str r0, [r4] - ldr r0, _08078950 - str r0, [r4, 0x4] - movs r0, 0x8 -_08078942: - strb r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807894C: .4byte 0x06004000 -_08078950: .4byte 0x0600e000 - thumb_func_end sub_8078914 - - thumb_func_start sub_8078954 -sub_8078954: @ 8078954 - push {r4,lr} - adds r4, r0, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08078978 - ldr r0, _08078970 - str r0, [r4] - ldr r0, _08078974 - str r0, [r4, 0x4] - movs r0, 0xE - b _080789AA - .align 2, 0 -_08078970: .4byte 0x06008000 -_08078974: .4byte 0x0600f000 -_08078978: - ldr r0, _08078994 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080789A0 - ldr r0, _08078998 - str r0, [r4] - ldr r0, _0807899C - str r0, [r4, 0x4] - movs r0, 0x8 - b _080789AA - .align 2, 0 -_08078994: .4byte 0x0202f7c8 -_08078998: .4byte 0x06004000 -_0807899C: .4byte 0x0600e000 -_080789A0: - ldr r0, _080789B4 - str r0, [r4] - ldr r0, _080789B8 - str r0, [r4, 0x4] - movs r0, 0x9 -_080789AA: - strb r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080789B4: .4byte 0x06006000 -_080789B8: .4byte 0x0600f000 - thumb_func_end sub_8078954 - - thumb_func_start sub_80789BC -sub_80789BC: @ 80789BC - push {lr} - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080789CC - movs r0, 0x2 - b _080789CE -_080789CC: - movs r0, 0x1 -_080789CE: - pop {r1} - bx r1 - thumb_func_end sub_80789BC - - thumb_func_start sub_80789D4 -sub_80789D4: @ 80789D4 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _080789F4 - ldr r2, _080789F0 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - b _08078A2A - .align 2, 0 -_080789F0: .4byte 0x0400000e -_080789F4: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08078A14 - ldr r2, _08078A10 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - b _08078A2A - .align 2, 0 -_08078A10: .4byte 0x0400000e -_08078A14: - ldr r2, _08078A30 - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 -_08078A2A: - strb r0, [r2, 0x1] - pop {r0} - bx r0 - .align 2, 0 -_08078A30: .4byte 0x0400000e - thumb_func_end sub_80789D4 - - thumb_func_start sub_8078A34 -sub_8078A34: @ 8078A34 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_8078A5C - ldr r1, _08078A58 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078A58: .4byte sub_80783D0 - thumb_func_end sub_8078A34 - - thumb_func_start sub_8078A5C -sub_8078A5C: @ 8078A5C - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r0, r1 - ldrh r4, [r5, 0x36] - ldrh r1, [r5, 0x34] - subs r4, r1 - lsls r4, 24 - lsrs r4, 16 - lsls r0, 24 - asrs r0, 16 - movs r2, 0x2E - ldrsh r1, [r5, r2] - bl __divsi3 - movs r6, 0 - strh r0, [r5, 0x30] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2E - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl __divsi3 - strh r0, [r5, 0x32] - strh r6, [r5, 0x36] - strh r6, [r5, 0x34] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8078A5C - - thumb_func_start obj_translate_based_on_private_1_2_3_4 -obj_translate_based_on_private_1_2_3_4: @ 8078A9C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - movs r0, 0x32 - ldrsh r1, [r7, r0] - movs r2, 0x30 - ldrsh r0, [r7, r2] - subs r1, r0 - movs r3, 0x36 - ldrsh r2, [r7, r3] - movs r3, 0x34 - ldrsh r0, [r7, r3] - subs r2, r0 - lsrs r0, r1, 31 - mov r8, r0 - lsrs r3, r2, 31 - mov r9, r3 - cmp r1, 0 - bge _08078AC8 - negs r1, r1 -_08078AC8: - lsls r0, r1, 24 - lsrs r6, r0, 16 - adds r0, r2, 0 - cmp r0, 0 - bge _08078AD4 - negs r0, r0 -_08078AD4: - lsls r0, 24 - lsrs r5, r0, 16 - movs r0, 0x2E - ldrsh r4, [r7, r0] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r8 - cmp r2, 0 - beq _08078B00 - movs r0, 0x1 - orrs r6, r0 - b _08078B04 -_08078B00: - ldr r0, _08078B10 - ands r6, r0 -_08078B04: - mov r3, r9 - cmp r3, 0 - beq _08078B14 - movs r0, 0x1 - orrs r5, r0 - b _08078B18 - .align 2, 0 -_08078B10: .4byte 0x0000fffe -_08078B14: - ldr r0, _08078B30 - ands r5, r0 -_08078B18: - movs r0, 0 - strh r6, [r7, 0x30] - strh r5, [r7, 0x32] - strh r0, [r7, 0x36] - strh r0, [r7, 0x34] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08078B30: .4byte 0x0000fffe - thumb_func_end obj_translate_based_on_private_1_2_3_4 - - thumb_func_start sub_8078B34 -sub_8078B34: @ 8078B34 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _08078B58 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078B58: .4byte sub_8078BB8 - thumb_func_end sub_8078B34 - - thumb_func_start sub_8078B5C -sub_8078B5C: @ 8078B5C - push {r4-r6,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08078B6C - movs r0, 0x1 - b _08078BB0 -_08078B6C: - ldrh r1, [r2, 0x30] - ldrh r4, [r2, 0x32] - ldrh r6, [r2, 0x34] - ldrh r5, [r2, 0x36] - adds r0, r6, r1 - lsls r3, r0, 16 - lsrs r6, r3, 16 - adds r0, r5, r4 - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08078B8E - lsrs r0, r3, 24 - negs r0, r0 - b _08078B90 -_08078B8E: - lsrs r0, r3, 24 -_08078B90: - strh r0, [r2, 0x24] - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - beq _08078BA0 - lsrs r0, r5, 8 - negs r0, r0 - b _08078BA2 -_08078BA0: - lsrs r0, r5, 8 -_08078BA2: - strh r0, [r2, 0x26] - strh r6, [r2, 0x34] - strh r5, [r2, 0x36] - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0 -_08078BB0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8078B5C - - thumb_func_start sub_8078BB8 -sub_8078BB8: @ 8078BB8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _08078BCC - adds r0, r4, 0 - bl sub_8078104 -_08078BCC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078BB8 - - thumb_func_start sub_8078BD4 -sub_8078BD4: @ 8078BD4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - cmp r0, 0 - bge _08078BE8 - negs r0, r0 -_08078BE8: - lsls r0, 8 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078BD4 - - thumb_func_start sub_8078C00 -sub_8078C00: @ 8078C00 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_8078BD4 - ldr r1, _08078C24 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078C24: .4byte sub_8078BB8 - thumb_func_end sub_8078C00 - - thumb_func_start sub_8078C28 -sub_8078C28: @ 8078C28 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - movs r0, 0x32 - ldrsh r1, [r7, r0] - movs r2, 0x30 - ldrsh r0, [r7, r2] - subs r1, r0 - movs r3, 0x36 - ldrsh r2, [r7, r3] - movs r3, 0x34 - ldrsh r0, [r7, r3] - subs r2, r0 - lsrs r0, r1, 31 - mov r8, r0 - lsrs r3, r2, 31 - mov r9, r3 - cmp r1, 0 - bge _08078C54 - negs r1, r1 -_08078C54: - lsls r0, r1, 20 - lsrs r6, r0, 16 - adds r0, r2, 0 - cmp r0, 0 - bge _08078C60 - negs r0, r0 -_08078C60: - lsls r0, 20 - lsrs r5, r0, 16 - movs r0, 0x2E - ldrsh r4, [r7, r0] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r8 - cmp r2, 0 - beq _08078C8C - movs r0, 0x1 - orrs r6, r0 - b _08078C90 -_08078C8C: - ldr r0, _08078C9C - ands r6, r0 -_08078C90: - mov r3, r9 - cmp r3, 0 - beq _08078CA0 - movs r0, 0x1 - orrs r5, r0 - b _08078CA4 - .align 2, 0 -_08078C9C: .4byte 0x0000fffe -_08078CA0: - ldr r0, _08078CBC - ands r5, r0 -_08078CA4: - movs r0, 0 - strh r6, [r7, 0x30] - strh r5, [r7, 0x32] - strh r0, [r7, 0x36] - strh r0, [r7, 0x34] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08078CBC: .4byte 0x0000fffe - thumb_func_end sub_8078C28 - - thumb_func_start sub_8078CC0 -sub_8078CC0: @ 8078CC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_8078C28 - ldr r1, _08078CE4 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078CE4: .4byte sub_8078D44 - thumb_func_end sub_8078CC0 - - thumb_func_start sub_8078CE8 -sub_8078CE8: @ 8078CE8 - push {r4-r6,lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08078CF8 - movs r0, 0x1 - b _08078D3C -_08078CF8: - ldrh r1, [r2, 0x30] - ldrh r4, [r2, 0x32] - ldrh r6, [r2, 0x34] - ldrh r5, [r2, 0x36] - adds r0, r6, r1 - lsls r3, r0, 16 - lsrs r6, r3, 16 - adds r0, r5, r4 - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08078D1A - lsrs r0, r3, 20 - negs r0, r0 - b _08078D1C -_08078D1A: - lsrs r0, r3, 20 -_08078D1C: - strh r0, [r2, 0x24] - movs r0, 0x1 - ands r4, r0 - cmp r4, 0 - beq _08078D2C - lsrs r0, r5, 4 - negs r0, r0 - b _08078D2E -_08078D2C: - lsrs r0, r5, 4 -_08078D2E: - strh r0, [r2, 0x26] - strh r6, [r2, 0x34] - strh r5, [r2, 0x36] - ldrh r0, [r2, 0x2E] - subs r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0 -_08078D3C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8078CE8 - - thumb_func_start sub_8078D44 -sub_8078D44: @ 8078D44 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078CE8 - lsls r0, 24 - cmp r0, 0 - beq _08078D58 - adds r0, r4, 0 - bl sub_8078104 -_08078D58: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078D44 - - thumb_func_start sub_8078D60 -sub_8078D60: @ 8078D60 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x32 - ldrsh r1, [r4, r0] - movs r2, 0x30 - ldrsh r0, [r4, r2] - subs r0, r1, r0 - cmp r0, 0 - bge _08078D74 - negs r0, r0 -_08078D74: - lsls r0, 4 - movs r2, 0x2E - ldrsh r1, [r4, r2] - bl __divsi3 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078C28 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8078D60 - - thumb_func_start sub_8078D8C -sub_8078D8C: @ 8078D8C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, r4, 0 - bl sub_8078D60 - ldr r1, _08078DB0 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078DB0: .4byte sub_8078D44 - thumb_func_end sub_8078D8C - - thumb_func_start obj_id_set_rotscale -obj_id_set_rotscale: @ 8078DB4 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r5, _08078E2C - lsls r2, 16 - lsrs r1, 16 - orrs r1, r2 - str r1, [sp] - ldr r0, [sp, 0x4] - ands r0, r5 - orrs r0, r3 - str r0, [sp, 0x4] - bl sub_8078E38 - lsls r0, 24 - cmp r0, 0 - beq _08078DF0 - mov r0, sp - ldrh r0, [r0] - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - ands r1, r5 - orrs r1, r0 - str r1, [sp] -_08078DF0: - ldr r1, _08078E30 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x3] - lsls r4, 26 - lsrs r4, 27 - add r5, sp, 0x8 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - ldr r0, _08078E34 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r5] - strh r0, [r4] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x6] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08078E2C: .4byte 0xffff0000 -_08078E30: .4byte 0x02020004 -_08078E34: .4byte 0x030027f0 - thumb_func_end obj_id_set_rotscale - - thumb_func_start sub_8078E38 -sub_8078E38: @ 8078E38 - push {r4,lr} - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08078E68 - ldr r4, _08078E64 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0xC9 - beq _08078E68 - movs r0, 0x1 - b _08078E6A - .align 2, 0 -_08078E64: .4byte 0x02020004 -_08078E68: - movs r0, 0 -_08078E6A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8078E38 - - thumb_func_start sub_8078E70 -sub_8078E70: @ 8078E70 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r1, _08078F38 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r4, r0, r1 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08078EA6 - adds r0, r7, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08078EB4 -_08078EA6: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08078EB4: - ldr r1, _08078F38 - lsls r4, r6, 4 - adds r0, r4, r6 - lsls r0, 2 - adds r5, r0, r1 - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x1] - adds r2, r5, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08078F0E - ldrb r0, [r5, 0x1] - lsls r0, 30 - cmp r0, 0 - bne _08078F0E - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - ldr r1, _08078F3C - adds r0, r1 - ldrb r1, [r0, 0x6] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_08078F0E: - ldr r1, _08078F38 - adds r0, r4, r6 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x1] - movs r1, 0x3 - orrs r3, r1 - strb r3, [r0, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - bl CalcCenterToCornerVec - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08078F38: .4byte 0x02020004 -_08078F3C: .4byte 0x02017810 - thumb_func_end sub_8078E70 - - thumb_func_start sub_8078F40 -sub_8078F40: @ 8078F40 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r2, 0x80 - lsls r2, 1 - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldr r1, _08078F98 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - movs r2, 0xD - negs r2, r2 - ands r1, r2 - strb r1, [r0, 0x1] - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r1, 0x7F - ands r1, r2 - strb r1, [r3] - ldrb r3, [r0, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - bl CalcCenterToCornerVec - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08078F98: .4byte 0x02020004 - thumb_func_end sub_8078F40 - - thumb_func_start sub_8078F9C -sub_8078F9C: @ 8078F9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08078FD4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r0, 27 - ldr r1, _08078FD8 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x4] - movs r3, 0x4 - ldrsh r0, [r0, r3] - cmp r0, 0 - bge _08078FC8 - negs r0, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_08078FC8: - lsls r0, r1, 16 - asrs r0, 19 - strh r0, [r2, 0x26] - pop {r0} - bx r0 - .align 2, 0 -_08078FD4: .4byte 0x02020004 -_08078FD8: .4byte 0x030027f0 - thumb_func_end sub_8078F9C - - thumb_func_start sub_8078FDC -sub_8078FDC: @ 8078FDC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 16 - lsrs r7, r3, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08079082 - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - cmp r6, 0 - beq _0807902A - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec -_0807902A: - ldr r6, _08079090 - lsls r0, r7, 16 - orrs r5, r0 - str r5, [sp] - ldr r0, [sp, 0x4] - ands r0, r6 - mov r1, r8 - orrs r0, r1 - str r0, [sp, 0x4] - bl sub_8078E38 - lsls r0, 24 - cmp r0, 0 - beq _08079058 - mov r0, sp - ldrh r0, [r0] - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - ands r1, r6 - orrs r1, r0 - str r1, [sp] -_08079058: - ldrb r4, [r4, 0x3] - lsls r4, 26 - lsrs r4, 27 - add r5, sp, 0x8 - mov r0, sp - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - ldr r0, _08079094 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r5] - strh r0, [r4] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x6] -_08079082: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08079090: .4byte 0xffff0000 -_08079094: .4byte 0x030027f0 - thumb_func_end sub_8078FDC - - thumb_func_start sub_8079098 -sub_8079098: @ 8079098 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r3, 0x80 - lsls r3, 1 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_8078FDC - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8079098 - - thumb_func_start sub_80790D8 -sub_80790D8: @ 80790D8 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl ArcTan2 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80790D8 - - thumb_func_start sub_80790F0 -sub_80790F0: @ 80790F0 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - bl sub_80790D8 - lsls r0, 16 - negs r0, r0 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80790F0 - - thumb_func_start sub_8079108 -sub_8079108: @ 8079108 - push {r4-r7,lr} - lsls r1, 24 - lsls r0, 20 - lsrs r0, 16 - cmp r1, 0 - bne _08079184 - ldr r2, _08079178 - ldr r1, _0807917C - lsls r0, 1 - adds r4, r0, r1 - adds r5, r0, r2 - movs r6, 0xF -_08079120: - ldr r0, [r5] - lsls r2, r0, 27 - lsrs r2, 27 - lsls r1, r0, 22 - lsrs r1, 27 - adds r2, r1 - lsls r0, 17 - lsrs r0, 27 - adds r0, r2 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - ands r0, r1 - ldrb r1, [r4] - movs r3, 0x20 - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] - lsls r3, r0, 5 - ldrh r1, [r4] - ldr r7, _08079180 - adds r2, r7, 0 - ands r1, r2 - orrs r1, r3 - strh r1, [r4] - lsls r0, 2 - ldrb r1, [r4, 0x1] - movs r3, 0x7D - negs r3, r3 - adds r2, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x1] - adds r4, 0x2 - adds r5, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08079120 - b _08079194 - .align 2, 0 -_08079178: .4byte 0x0202eac8 -_0807917C: .4byte 0x0202eec8 -_08079180: .4byte 0xfffffc1f -_08079184: - lsls r1, r0, 1 - ldr r0, _0807919C - adds r0, r1, r0 - ldr r2, _080791A0 - adds r1, r2 - ldr r2, _080791A4 - bl CpuSet -_08079194: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807919C: .4byte 0x0202eac8 -_080791A0: .4byte 0x0202eec8 -_080791A4: .4byte 0x04000008 - thumb_func_end sub_8079108 - - thumb_func_start sub_80791A8 -sub_80791A8: @ 80791A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r4, [sp, 0x28] - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - lsls r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - lsls r5, 24 - lsrs r5, 24 - str r5, [sp] - lsls r6, 24 - lsrs r6, 24 - str r6, [sp, 0x4] - movs r4, 0 - cmp r0, 0 - beq _080791FE - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080791F2 - movs r4, 0xE - b _080791FE -_080791F2: - bl sub_80789BC - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x1 - lsls r4, r0 -_080791FE: - cmp r7, 0 - beq _08079210 - ldr r0, _08079288 - ldrb r0, [r0] - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_08079210: - mov r0, r8 - cmp r0, 0 - beq _08079224 - ldr r0, _0807928C - ldrb r0, [r0] - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_08079224: - mov r0, r9 - cmp r0, 0 - beq _0807924A - ldr r6, _08079288 - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807924A - ldrb r0, [r6] - eors r0, r5 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_0807924A: - mov r0, r10 - cmp r0, 0 - beq _08079270 - ldr r6, _0807928C - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079270 - ldrb r0, [r6] - eors r0, r5 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_08079270: - ldr r0, [sp] - cmp r0, 0 - beq _08079296 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08079290 - movs r0, 0x80 - lsls r0, 1 - b _08079294 - .align 2, 0 -_08079288: .4byte 0x0202f7c8 -_0807928C: .4byte 0x0202f7c9 -_08079290: - movs r0, 0x80 - lsls r0, 7 -_08079294: - orrs r4, r0 -_08079296: - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _080792AC - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080792AC - movs r0, 0x80 - lsls r0, 2 - orrs r4, r0 -_080792AC: - adds r0, r4, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80791A8 - - thumb_func_start sub_80792C0 -sub_80792C0: @ 80792C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r4, 0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080792EE - cmp r5, 0 - beq _0807939C - movs r4, 0x80 - lsls r4, 11 - b _0807939C -_080792EE: - cmp r5, 0 - beq _08079316 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079316 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r4, 0x1 - lsls r4, r0 -_08079316: - cmp r6, 0 - beq _08079342 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079342 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_08079342: - cmp r7, 0 - beq _0807936E - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807936E - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_0807936E: - mov r0, r8 - cmp r0, 0 - beq _0807939C - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _0807939C - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - orrs r4, r0 -_0807939C: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80792C0 - - thumb_func_start sub_80793A8 -sub_80793A8: @ 80793A8 - lsls r0, 24 - lsrs r0, 24 - bx lr - thumb_func_end sub_80793A8 - - thumb_func_start unref_sub_80793B0 -unref_sub_80793B0: @ 80793B0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end unref_sub_80793B0 - - thumb_func_start sub_80793C4 -sub_80793C4: @ 80793C4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08079402 - ldr r2, _080793F0 - movs r3, 0x6 - ldrsh r0, [r2, r3] - movs r1, 0 - cmp r0, 0 - bne _080793DE - movs r1, 0x1 -_080793DE: - movs r3, 0x4 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080793F4 - adds r0, r4, 0 - bl sub_80787B0 - b _080793FA - .align 2, 0 -_080793F0: .4byte 0x03004b00 -_080793F4: - adds r0, r4, 0 - bl sub_8078764 -_080793FA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _08079416 -_08079402: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _08079416 - adds r0, r4, 0 - bl move_anim_8074EE0 -_08079416: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80793C4 - - thumb_func_start sub_807941C -sub_807941C: @ 807941C - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _08079494 - movs r1, 0xA - ldrsh r0, [r6, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0 - cmp r0, 0 - bne _08079434 - movs r1, 0x1 -_08079434: - ldrb r0, [r6, 0xA] - movs r7, 0x1 - cmp r0, 0 - bne _0807943E - movs r7, 0x3 -_0807943E: - adds r0, r5, 0 - bl sub_80787B0 - ldr r0, _08079498 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08079458 - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_08079458: - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r4, _0807949C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - adds r1, r7, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - ldr r0, _080794A0 - str r0, [r5, 0x1C] - ldr r1, _080794A4 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08079494: .4byte 0x03004b00 -_08079498: .4byte 0x0202f7c8 -_0807949C: .4byte 0x0202f7c9 -_080794A0: .4byte sub_8078B34 -_080794A4: .4byte move_anim_8072740 - thumb_func_end sub_807941C - - thumb_func_start sub_80794A8 -sub_80794A8: @ 80794A8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _08079508 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080794C8 - ldr r1, _0807950C - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080794C8: - ldr r4, _0807950C - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _08079510 - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _08079514 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08079508: .4byte 0x0202f7c8 -_0807950C: .4byte 0x03004b00 -_08079510: .4byte 0x0202f7c9 -_08079514: .4byte sub_8079518 - thumb_func_end sub_80794A8 - - thumb_func_start sub_8079518 -sub_8079518: @ 8079518 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _0807952C - adds r0, r4, 0 - bl move_anim_8072740 -_0807952C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8079518 - - thumb_func_start sub_8079534 -sub_8079534: @ 8079534 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _08079548 - movs r2, 0xC - ldrsh r1, [r0, r2] - cmp r1, 0 - bne _0807954C - movs r4, 0x1 - movs r7, 0x3 - b _08079550 - .align 2, 0 -_08079548: .4byte 0x03004b00 -_0807954C: - movs r4, 0 - movs r7, 0x1 -_08079550: - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08079568 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80787B0 - ldr r0, _08079564 - b _08079572 - .align 2, 0 -_08079564: .4byte 0x0202f7c8 -_08079568: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8078764 - ldr r0, _080795D0 -_08079572: - ldrb r6, [r0] - ldr r0, _080795D4 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0807958A - ldr r1, _080795D8 - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_0807958A: - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8078764 - ldr r4, _080795D8 - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x2E] - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r5, 0x32] - adds r0, r6, 0 - adds r1, r7, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r5, 0x36] - ldr r0, _080795DC - str r0, [r5, 0x1C] - ldr r1, _080795E0 - adds r0, r5, 0 - bl oamt_set_x3A_32 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080795D0: .4byte 0x0202f7c9 -_080795D4: .4byte 0x0202f7c8 -_080795D8: .4byte 0x03004b00 -_080795DC: .4byte sub_8078B34 -_080795E0: .4byte move_anim_8072740 - thumb_func_end sub_8079534 - - thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode -duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80795E4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _0807964E - movs r6, 0 - ldr r2, _08079640 - lsls r0, r1, 4 - adds r0, r1 - lsls r1, r0, 2 -_08079600: - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r4, r0, r2 - adds r5, r4, 0 - adds r5, 0x3E - ldrb r0, [r5] - lsls r0, 31 - cmp r0, 0 - bne _08079644 - adds r0, r4, 0 - adds r1, r2 - movs r2, 0x44 - bl memcpy - ldrb r1, [r4, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4, 0x1] - ldrb r0, [r5] - adds r2, 0x8 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r5] - lsls r0, r6, 16 - asrs r0, 16 - b _08079652 - .align 2, 0 -_08079640: .4byte 0x02020004 -_08079644: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3F - bls _08079600 -_0807964E: - movs r0, 0x1 - negs r0, r0 -_08079652: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode - - thumb_func_start obj_delete_but_dont_free_vram -obj_delete_but_dont_free_vram: @ 8079658 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - bl DestroySprite - pop {r0} - bx r0 - thumb_func_end obj_delete_but_dont_free_vram - - thumb_func_start sub_8079670 -sub_8079670: @ 8079670 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r5, 0 - movs r3, 0 - ldr r4, _080796E4 - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r6, 0 - ldrsh r0, [r4, r6] - cmp r1, r0 - ble _0807968A - movs r3, 0x1 -_0807968A: - cmp r1, r0 - bge _08079690 - ldr r3, _080796E8 -_08079690: - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r6, 0x2 - ldrsh r0, [r4, r6] - cmp r1, r0 - ble _0807969E - movs r5, 0x1 -_0807969E: - cmp r1, r0 - bge _080796A4 - ldr r5, _080796E8 -_080796A4: - ldr r0, _080796EC - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r2, 0 - strh r2, [r1, 0x8] - ldrh r0, [r4, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - ldrh r0, [r4] - strh r0, [r1, 0xE] - ldrh r0, [r4, 0x2] - strh r0, [r1, 0x10] - strh r3, [r1, 0x12] - strh r5, [r1, 0x14] - ldrh r0, [r4, 0x4] - strh r0, [r1, 0x16] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0x18] - ldr r3, _080796F0 - ldrh r0, [r4, 0x2] - lsls r0, 8 - ldrh r2, [r4] - orrs r0, r2 - strh r0, [r3] - ldr r0, _080796F4 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080796E4: .4byte 0x03004b00 -_080796E8: .4byte 0x0000ffff -_080796EC: .4byte 0x03004b20 -_080796F0: .4byte 0x04000052 -_080796F4: .4byte sub_80796F8 - thumb_func_end sub_8079670 - - thumb_func_start sub_80796F8 -sub_80796F8: @ 80796F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08079744 - adds r3, r0, r1 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0xA - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _08079786 - movs r0, 0 - strh r0, [r3, 0x8] - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08079748 - ldrh r2, [r3, 0xE] - movs r5, 0xE - ldrsh r1, [r3, r5] - movs r5, 0x16 - ldrsh r0, [r3, r5] - cmp r1, r0 - beq _0807975C - ldrh r0, [r3, 0x12] - adds r0, r2, r0 - strh r0, [r3, 0xE] - b _0807975C - .align 2, 0 -_08079744: .4byte 0x03004b20 -_08079748: - ldrh r2, [r3, 0x10] - movs r0, 0x10 - ldrsh r1, [r3, r0] - movs r5, 0x18 - ldrsh r0, [r3, r5] - cmp r1, r0 - beq _0807975C - ldrh r0, [r3, 0x14] - adds r0, r2, r0 - strh r0, [r3, 0x10] -_0807975C: - ldr r2, _0807978C - ldrh r0, [r3, 0x10] - lsls r0, 8 - ldrh r1, [r3, 0xE] - orrs r0, r1 - strh r0, [r2] - movs r0, 0xE - ldrsh r1, [r3, r0] - movs r2, 0x16 - ldrsh r0, [r3, r2] - cmp r1, r0 - bne _08079786 - movs r5, 0x10 - ldrsh r1, [r3, r5] - movs r2, 0x18 - ldrsh r0, [r3, r2] - cmp r1, r0 - bne _08079786 - adds r0, r4, 0 - bl move_anim_task_del -_08079786: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807978C: .4byte 0x04000052 - thumb_func_end sub_80796F8 - - thumb_func_start sub_8079790 -sub_8079790: @ 8079790 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080797B0 - ldrb r0, [r0] - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xFF - bne _080797B4 - adds r0, r4, 0 - bl move_anim_task_del - b _080797DA - .align 2, 0 -_080797B0: .4byte 0x03004b00 -_080797B4: - ldr r1, _080797E0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080797E4 - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - lsls r1, 4 - ldr r3, _080797E8 - adds r2, r3, 0 - adds r1, r2 - strh r1, [r0, 0x8] - bl sub_80797EC -_080797DA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080797E0: .4byte 0x03004b20 -_080797E4: .4byte 0x02020004 -_080797E8: .4byte 0x00000101 - thumb_func_end sub_8079790 - - thumb_func_start sub_80797EC -sub_80797EC: @ 80797EC - ldr r3, _0807980C - ldrh r1, [r3, 0x2] - movs r2, 0 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - ldrh r1, [r3, 0x4] - strh r1, [r0, 0xE] - strh r2, [r0, 0x10] - ldrh r1, [r3, 0x6] - strh r1, [r0, 0x12] - strh r2, [r0, 0x14] - ldrh r1, [r3, 0x8] - strh r1, [r0, 0x16] - ldr r1, _08079810 - str r1, [r0] - bx lr - .align 2, 0 -_0807980C: .4byte 0x03004b00 -_08079810: .4byte sub_8079814 - thumb_func_end sub_80797EC - - thumb_func_start sub_8079814 -sub_8079814: @ 8079814 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0807986C - adds r4, r0, r1 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080798A4 - movs r0, 0 - strh r0, [r4, 0x10] - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08079870 - ldrh r2, [r4, 0xC] - adds r2, 0x1 - strh r2, [r4, 0xC] - ldrh r0, [r4, 0x8] - lsls r2, 24 - lsrs r2, 24 - ldrh r3, [r4, 0xA] - movs r1, 0xF - bl pal_fade_1 - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080798A4 - movs r0, 0x1 - strh r0, [r4, 0x14] - b _080798A4 - .align 2, 0 -_0807986C: .4byte 0x03004b20 -_08079870: - ldrh r2, [r4, 0xC] - subs r2, 0x1 - strh r2, [r4, 0xC] - ldrh r0, [r4, 0x8] - lsls r2, 24 - lsrs r2, 24 - ldrh r3, [r4, 0xA] - movs r1, 0xF - bl pal_fade_1 - movs r0, 0xC - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080798A4 - ldrh r0, [r4, 0x16] - subs r0, 0x1 - strh r0, [r4, 0x16] - lsls r0, 16 - cmp r0, 0 - beq _0807989E - strh r1, [r4, 0x10] - strh r1, [r4, 0x14] - b _080798A4 -_0807989E: - adds r0, r5, 0 - bl move_anim_task_del -_080798A4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8079814 - - thumb_func_start sub_80798AC -sub_80798AC: @ 80798AC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080798CC - ldrh r0, [r0] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080798D0 - adds r0, r4, 0 - bl move_anim_task_del - b _080798E6 - .align 2, 0 -_080798CC: .4byte 0x03004b00 -_080798D0: - ldr r1, _080798EC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - lsls r1, r2, 4 - ldr r2, _080798F0 - adds r1, r2 - strh r1, [r0, 0x8] - bl sub_80797EC -_080798E6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080798EC: .4byte 0x03004b20 -_080798F0: .4byte 0x00000101 - thumb_func_end sub_80798AC - - thumb_func_start sub_80798F4 -sub_80798F4: @ 80798F4 - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - strh r1, [r3, 0x16] - strh r1, [r3, 0x18] - strh r1, [r3, 0x1A] - strh r4, [r3, 0x26] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r3, 0x1C] - strh r0, [r3, 0x1E] - strh r1, [r3, 0x20] - adds r0, r3, 0 - adds r0, 0x22 - adds r3, 0x24 - adds r1, r3, 0 - bl sub_8079BF4 - adds r0, r4, 0 - movs r1, 0 - bl sub_8078E70 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80798F4 - - thumb_func_start sub_807992C -sub_807992C: @ 807992C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _080799CC - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - bl sub_8079BFC - movs r3, 0x16 - ldrsh r1, [r4, r3] - lsls r1, 3 - adds r1, r0, r1 - str r1, [r5] - movs r6, 0 - ldrsh r2, [r1, r6] - ldr r0, _080799D0 - cmp r2, r0 - beq _080799D4 - cmp r2, r0 - bgt _08079A34 - subs r0, 0x1 - cmp r2, r0 - beq _080799DA - ldrb r0, [r1, 0x5] - cmp r0, 0 - bne _0807997A - ldrh r0, [r1] - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x1E] - ldrb r0, [r1, 0x4] - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - adds r0, r1, 0 - adds r0, 0x8 - str r0, [r5] -_0807997A: - ldr r1, [r5] - ldrh r0, [r1] - ldrh r2, [r4, 0x1C] - adds r0, r2 - strh r0, [r4, 0x1C] - ldrh r0, [r1, 0x2] - ldrh r3, [r4, 0x1E] - adds r0, r3 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x20] - ldrb r1, [r1, 0x4] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1C - ldrsh r1, [r4, r6] - movs r3, 0x1E - ldrsh r2, [r4, r3] - ldrh r3, [r4, 0x20] - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079A64 - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - ldr r1, [r5] - ldrb r1, [r1, 0x5] - cmp r0, r1 - blt _08079A5A - movs r0, 0 - strh r0, [r4, 0x18] - b _08079A2C - .align 2, 0 -_080799CC: .4byte 0x0202f7d4 -_080799D0: .4byte 0x00007ffe -_080799D4: - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x16] - b _08079A5A -_080799DA: - ldrh r2, [r1, 0x2] - movs r6, 0x2 - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08079A2C - ldrh r1, [r4, 0x1A] - movs r3, 0x1A - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080799FA - subs r0, r1, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - cmp r0, 0 - bne _080799FC - b _08079A2C -_080799FA: - strh r2, [r4, 0x1A] -_080799FC: - movs r6, 0x16 - ldrsh r0, [r4, r6] - cmp r0, 0 - beq _08079A5A - ldr r3, _08079A24 - ldr r5, _08079A28 -_08079A08: - ldrh r2, [r4, 0x16] - subs r1, r2, 0x1 - strh r1, [r4, 0x16] - ldr r0, [r3] - subs r0, 0x8 - str r0, [r3] - movs r6, 0 - ldrsh r0, [r0, r6] - cmp r0, r5 - beq _08079A58 - lsls r0, r1, 16 - cmp r0, 0 - bne _08079A08 - b _08079A5A - .align 2, 0 -_08079A24: .4byte 0x0202f7d4 -_08079A28: .4byte 0x00007ffd -_08079A2C: - ldrh r0, [r4, 0x16] - adds r0, 0x1 - strh r0, [r4, 0x16] - b _08079A5A -_08079A34: - ldr r2, _08079A54 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8078F40 - movs r0, 0 - b _08079A5C - .align 2, 0 -_08079A54: .4byte 0x02020004 -_08079A58: - strh r2, [r4, 0x16] -_08079A5A: - movs r0, 0x1 -_08079A5C: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_807992C - - thumb_func_start sub_8079A64 -sub_8079A64: @ 8079A64 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8079B10 - lsls r0, 16 - lsrs r0, 15 - movs r1, 0x40 - subs r5, r1, r0 - ldr r1, _08079AB0 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrb r1, [r4, 0x3] - lsls r1, 26 - lsrs r1, 27 - lsls r0, r5, 8 - ldr r2, _08079AB4 - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - cmp r0, 0x80 - ble _08079AA0 - movs r0, 0x80 -_08079AA0: - subs r0, r5, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08079AB0: .4byte 0x02020004 -_08079AB4: .4byte 0x030027f0 - thumb_func_end sub_8079A64 - - thumb_func_start sub_8079AB8 -sub_8079AB8: @ 8079AB8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r0, 24 - bl sub_8079B10 - lsls r0, 16 - lsrs r0, 15 - movs r1, 0x40 - subs r5, r1, r0 - ldr r1, _08079B08 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r4, r0, r1 - ldrb r1, [r4, 0x3] - lsls r1, 26 - lsrs r1, 27 - lsls r0, r5, 8 - ldr r2, _08079B0C - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - cmp r0, 0x80 - ble _08079AF8 - movs r0, 0x80 -_08079AF8: - subs r0, r5, r0 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08079B08: .4byte 0x02020004 -_08079B0C: .4byte 0x030027f0 - thumb_func_end sub_8079AB8 - - thumb_func_start sub_8079B10 -sub_8079B10: @ 8079B10 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08079B44 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - lsls r0, 24 - movs r4, 0 - ldr r1, _08079B48 - ldr r6, _08079B4C - lsrs r5, r0, 22 -_08079B2C: - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, r2 - bne _08079BE0 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08079B54 - ldr r0, _08079B50 - ldrh r1, [r0] - b _08079B96 - .align 2, 0 -_08079B44: .4byte 0x02020004 -_08079B48: .4byte 0x02024be0 -_08079B4C: .4byte gUnknown_081E9114 -_08079B50: .4byte 0x02019348 -_08079B54: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08079B9E - ldr r0, _08079B88 - adds r1, r5, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08079B94 - ldr r1, _08079B8C - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08079B90 - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r1, r0, 16 - b _08079B96 - .align 2, 0 -_08079B88: .4byte 0x02017800 -_08079B8C: .4byte 0x02024a6a -_08079B90: .4byte 0x03004360 -_08079B94: - ldrh r1, [r1, 0x2] -_08079B96: - lsls r0, r1, 2 - adds r0, r6 - ldrb r0, [r0, 0x1] - b _08079BEC -_08079B9E: - ldr r0, _08079BC4 - adds r1, r5, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _08079BD0 - ldr r1, _08079BC8 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08079BCC - adds r0, r1 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r1, r0, 16 - b _08079BD2 - .align 2, 0 -_08079BC4: .4byte 0x02017800 -_08079BC8: .4byte 0x02024a6a -_08079BCC: .4byte 0x030045c0 -_08079BD0: - ldrh r1, [r1, 0x2] -_08079BD2: - ldr r0, _08079BDC - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _08079BEC - .align 2, 0 -_08079BDC: .4byte gUnknown_081E7C74 -_08079BE0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08079B2C - movs r0, 0x40 -_08079BEC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8079B10 - - thumb_func_start sub_8079BF4 -sub_8079BF4: @ 8079BF4 - strh r2, [r0] - asrs r2, 16 - strh r2, [r1] - bx lr - thumb_func_end sub_8079BF4 - - thumb_func_start sub_8079BFC -sub_8079BFC: @ 8079BFC - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - orrs r0, r1 - bx lr - thumb_func_end sub_8079BFC - - thumb_func_start sub_8079C08 -sub_8079C08: @ 8079C08 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r5, r3, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - ldr r6, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r3, r8 - strh r6, [r3, 0x18] - strh r1, [r3, 0x26] - strh r2, [r3, 0x1A] - strh r5, [r3, 0x1C] - strh r0, [r3, 0x22] - strh r4, [r3, 0x24] - lsls r0, 16 - asrs r0, 16 - lsls r2, 16 - asrs r2, 16 - subs r0, r2 - adds r1, r6, 0 - bl __divsi3 - mov r1, r8 - strh r0, [r1, 0x1E] - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - subs r4, r5 - adds r0, r4, 0 - adds r1, r6, 0 - bl __divsi3 - mov r3, r8 - strh r0, [r3, 0x20] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8079C08 - - thumb_func_start sub_8079C74 -sub_8079C74: @ 8079C74 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x18] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08079C86 - movs r0, 0 - b _08079CE2 -_08079C86: - subs r0, r1, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - cmp r0, 0 - beq _08079CA0 - ldrh r0, [r4, 0x1E] - ldrh r3, [r4, 0x1A] - adds r0, r3 - strh r0, [r4, 0x1A] - ldrh r0, [r4, 0x20] - ldrh r1, [r4, 0x1C] - adds r0, r1 - b _08079CA6 -_08079CA0: - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x1A] - ldrh r0, [r4, 0x24] -_08079CA6: - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1A - ldrsh r1, [r4, r2] - movs r3, 0x1C - ldrsh r2, [r4, r3] - movs r3, 0 - bl obj_id_set_rotscale - movs r0, 0x18 - ldrsh r3, [r4, r0] - cmp r3, 0 - beq _08079CD0 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079A64 - b _08079CE0 -_08079CD0: - ldr r2, _08079CE8 - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x26] -_08079CE0: - ldrb r0, [r4, 0x18] -_08079CE2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08079CE8: .4byte 0x02020004 - thumb_func_end sub_8079C74 - - thumb_func_start sub_8079CEC -sub_8079CEC: @ 8079CEC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08079D18 - ldrb r0, [r0] - movs r1, 0 - cmp r0, 0x1E - bls _08079D0A - movs r1, 0x1 - cmp r0, 0x64 - bls _08079D0A - movs r1, 0x3 - cmp r0, 0xC8 - bhi _08079D0A - movs r1, 0x2 -_08079D0A: - ldr r0, _08079D1C - strh r1, [r0, 0xE] - adds r0, r2, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08079D18: .4byte 0x0202f7be -_08079D1C: .4byte 0x03004b00 - thumb_func_end sub_8079CEC - - thumb_func_start unref_sub_8079D20 -unref_sub_8079D20: @ 8079D20 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldr r6, _08079E14 - ldrb r0, [r6] - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079D60 - ldr r2, _08079E18 - ldr r1, _08079E1C - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_08079D60: - ldr r0, _08079E20 - mov r8, r0 - ldrb r0, [r0] - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079D98 - ldr r2, _08079E18 - ldr r1, _08079E1C - mov r3, r8 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_08079D98: - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079DD0 - ldr r2, _08079E18 - ldr r1, _08079E1C - ldrb r0, [r6] - eors r0, r5 - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r4, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_08079DD0: - mov r1, r8 - ldrb r0, [r1] - eors r0, r5 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079E08 - ldr r2, _08079E18 - ldr r1, _08079E1C - mov r3, r8 - ldrb r0, [r3] - eors r0, r5 - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - ands r7, r0 - lsls r3, r7, 2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_08079E08: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08079E14: .4byte 0x0202f7c9 -_08079E18: .4byte 0x02020004 -_08079E1C: .4byte 0x02024be0 -_08079E20: .4byte 0x0202f7c8 - thumb_func_end unref_sub_8079D20 - - thumb_func_start sub_8079E24 -sub_8079E24: @ 8079E24 - push {r4-r6,lr} - movs r5, 0 - ldr r0, _08079E84 - ldrb r0, [r0] - cmp r5, r0 - bge _08079E7E - ldr r6, _08079E88 -_08079E32: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _08079E74 - adds r0, r4, 0 - bl sub_8079E90 - ldr r3, _08079E8C - adds r3, r5, r3 - ldrb r2, [r3] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r6 - adds r1, 0x43 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r2, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r2, r1 - movs r1, 0x8 - orrs r2, r1 - strb r2, [r0, 0x5] -_08079E74: - adds r5, 0x1 - ldr r0, _08079E84 - ldrb r0, [r0] - cmp r5, r0 - blt _08079E32 -_08079E7E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08079E84: .4byte 0x02024a68 -_08079E88: .4byte 0x02020004 -_08079E8C: .4byte 0x02024be0 - thumb_func_end sub_8079E24 - - thumb_func_start sub_8079E90 -sub_8079E90: @ 8079E90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08079EAC - cmp r4, 0x2 - bne _08079EA8 - movs r0, 0x1E - b _08079ECC -_08079EA8: - movs r0, 0x28 - b _08079ECC -_08079EAC: - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1E - cmp r0, 0 - beq _08079ECA - movs r1, 0x14 - cmp r0, 0x2 - beq _08079ECA - movs r1, 0x32 - cmp r0, 0x1 - bne _08079ECA - movs r1, 0x28 -_08079ECA: - adds r0, r1, 0 -_08079ECC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8079E90 - - thumb_func_start sub_8079ED4 -sub_8079ED4: @ 8079ED4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08079EF0 - movs r0, 0x2 - b _08079F08 -_08079EF0: - cmp r4, 0 - beq _08079EF8 - cmp r4, 0x3 - bne _08079F00 -_08079EF8: - ldr r0, _08079EFC - b _08079F02 - .align 2, 0 -_08079EFC: .4byte 0x0400000c -_08079F00: - ldr r0, _08079F10 -_08079F02: - ldr r0, [r0] - lsls r0, 30 - lsrs r0, 30 -_08079F08: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08079F10: .4byte 0x0400000a - thumb_func_end sub_8079ED4 - - thumb_func_start battle_get_per_side_status_permutated -battle_get_per_side_status_permutated: @ 8079F14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08079F3A - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08079F36 - cmp r0, 0x3 - bne _08079F3A -_08079F36: - movs r0, 0x2 - b _08079F3C -_08079F3A: - movs r0, 0x1 -_08079F3C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end battle_get_per_side_status_permutated - - thumb_func_start sub_8079F44 -sub_8079F44: @ 8079F44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - ldr r4, [sp, 0x38] - ldr r5, [sp, 0x3C] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp, 0x10] - lsls r5, 24 - lsrs r5, 24 - str r5, [sp, 0x14] - lsls r0, r7, 3 - ldr r1, _08079FE0 - adds r0, r1 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - ldr r1, _08079FE4 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x2] - bl AllocSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r8 - cmp r0, 0 - bne _08079FF0 - adds r0, r6, 0 - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x40] - bl species_and_otid_get_pal - lsls r1, r4, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r0, r6, 3 - ldr r1, _08079FE8 - adds r0, r1 - ldr r2, _08079FEC - lsls r5, r6, 2 - adds r2, r5, r2 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - str r3, [sp] - str r6, [sp, 0x4] - ldr r4, [sp, 0x40] - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - b _0807A02E - .align 2, 0 -_08079FE0: .4byte gUnknown_0837F5E0 -_08079FE4: .4byte gUnknown_0837F5B0 -_08079FE8: .4byte gMonFrontPicTable -_08079FEC: .4byte gUnknown_081E7C74 -_08079FF0: - adds r0, r6, 0 - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x40] - bl species_and_otid_get_pal - lsls r1, r4, 20 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r0, r6, 3 - ldr r1, _0807A068 - adds r0, r1 - ldr r2, _0807A06C - lsls r5, r6, 2 - adds r2, r5, r2 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - str r3, [sp] - str r6, [sp, 0x4] - ldr r4, [sp, 0x40] - str r4, [sp, 0x8] - movs r4, 0 - str r4, [sp, 0xC] - bl sub_800D378 -_0807A02E: - movs r2, 0x80 - lsls r2, 18 - mov r6, r10 - lsls r0, r6, 5 - ldr r1, _0807A070 - adds r0, r1 - ldr r1, _0807A074 - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _0807A078 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r2, r8 - cmp r2, 0 - bne _0807A084 - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - ldr r1, _0807A07C - adds r0, r1 - mov r3, r9 - lsls r1, r3, 16 - asrs r1, 16 - ldr r2, _0807A080 - adds r2, r5, r2 - ldrb r2, [r2, 0x1] - ldr r4, [sp, 0x10] - adds r2, r4 - b _0807A09E - .align 2, 0 -_0807A068: .4byte gMonBackPicTable -_0807A06C: .4byte gUnknown_081E9114 -_0807A070: .4byte 0x06010000 -_0807A074: .4byte 0x040000d4 -_0807A078: .4byte 0x84000200 -_0807A07C: .4byte gUnknown_0837F5B0 -_0807A080: .4byte gUnknown_081E7C74 -_0807A084: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 3 - ldr r1, _0807A0E4 - adds r0, r1 - mov r6, r9 - lsls r1, r6, 16 - asrs r1, 16 - ldr r2, _0807A0E8 - adds r2, r5, r2 - ldrb r2, [r2, 0x1] - ldr r3, [sp, 0x10] - adds r2, r3 -_0807A09E: - lsls r2, 16 - asrs r2, 16 - ldr r3, [sp, 0x14] - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807A0D0 - ldr r3, _0807A0EC - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x10 - adds r1, r0, r1 - ldr r2, _0807A0F0 - str r2, [r1] - adds r0, r3 - movs r1, 0 - bl StartSpriteAffineAnim -_0807A0D0: - adds r0, r4, 0 - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0807A0E4: .4byte gUnknown_0837F5B0 -_0807A0E8: .4byte gUnknown_081E9114 -_0807A0EC: .4byte 0x02020004 -_0807A0F0: .4byte gUnknown_081E7C18 - thumb_func_end sub_8079F44 - - thumb_func_start sub_807A0F4 -sub_807A0F4: @ 807A0F4 - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - thumb_func_end sub_807A0F4 - - thumb_func_start sub_807A100 -sub_807A100: @ 807A100 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0807A1A4 - ldr r2, _0807A130 - ldrb r1, [r2, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0807A134 - ldrh r7, [r2, 0x2] - ldr r2, [r2, 0x10] - b _0807A138 - .align 2, 0 -_0807A130: .4byte 0x02019348 -_0807A134: - ldrh r7, [r2] - ldr r2, [r2, 0x8] -_0807A138: - cmp r7, 0xC9 - bne _0807A184 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0807A170 - movs r0, 0xC9 - b _0807A17A -_0807A170: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_0807A17A: - lsls r1, r0, 2 - ldr r0, _0807A180 - b _0807A33C - .align 2, 0 -_0807A180: .4byte gUnknown_081E9114 -_0807A184: - ldr r0, _0807A19C - cmp r7, r0 - bne _0807A18C - b _0807A30C -_0807A18C: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - bhi _0807A258 - lsls r1, r7, 2 - ldr r0, _0807A1A0 - b _0807A33C - .align 2, 0 -_0807A19C: .4byte 0x00000181 -_0807A1A0: .4byte gUnknown_081E9114 -_0807A1A4: - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0807A26C - mov r0, r8 - lsls r2, r0, 2 - ldr r0, _0807A1EC - adds r1, r2, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _0807A1F8 - ldr r0, _0807A1F0 - mov r1, r8 - lsls r4, r1, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0807A1F4 - adds r0, r5 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r7, r0, 16 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0 - bl PokemonGetField - adds r2, r0, 0 - b _0807A200 - .align 2, 0 -_0807A1EC: .4byte 0x02017800 -_0807A1F0: .4byte 0x02024a6a -_0807A1F4: .4byte 0x03004360 -_0807A1F8: - ldrh r7, [r1, 0x2] - ldr r0, _0807A238 - adds r0, r2, r0 - ldr r2, [r0] -_0807A200: - cmp r7, 0xC9 - bne _0807A250 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0807A23C - movs r0, 0xC9 - b _0807A246 - .align 2, 0 -_0807A238: .4byte 0x02024e70 -_0807A23C: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_0807A246: - lsls r1, r0, 2 - ldr r0, _0807A24C - b _0807A33C - .align 2, 0 -_0807A24C: .4byte gUnknown_081E9114 -_0807A250: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - bls _0807A260 -_0807A258: - ldr r4, _0807A25C - b _0807A33E - .align 2, 0 -_0807A25C: .4byte gUnknown_081E9114 -_0807A260: - lsls r1, r7, 2 - ldr r0, _0807A268 - b _0807A33C - .align 2, 0 -_0807A268: .4byte gUnknown_081E9114 -_0807A26C: - mov r0, r8 - lsls r2, r0, 2 - ldr r0, _0807A2A8 - adds r1, r2, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _0807A2B4 - ldr r0, _0807A2AC - mov r1, r8 - lsls r4, r1, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0807A2B0 - adds r0, r5 - movs r1, 0xB - bl PokemonGetField - lsls r0, 16 - lsrs r7, r0, 16 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0 - bl PokemonGetField - adds r2, r0, 0 - b _0807A2BC - .align 2, 0 -_0807A2A8: .4byte 0x02017800 -_0807A2AC: .4byte 0x02024a6a -_0807A2B0: .4byte 0x030045c0 -_0807A2B4: - ldrh r7, [r1, 0x2] - ldr r0, _0807A2F4 - adds r0, r2, r0 - ldr r2, [r0] -_0807A2BC: - cmp r7, 0xC9 - bne _0807A306 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0807A2F8 - movs r0, 0xC9 - b _0807A302 - .align 2, 0 -_0807A2F4: .4byte 0x02024e70 -_0807A2F8: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_0807A302: - lsls r1, r0, 2 - b _0807A33A -_0807A306: - ldr r0, _0807A31C - cmp r7, r0 - bne _0807A328 -_0807A30C: - ldr r0, _0807A320 - add r0, r8 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _0807A324 - adds r4, r0, r1 - b _0807A33E - .align 2, 0 -_0807A31C: .4byte 0x00000181 -_0807A320: .4byte 0x02024e84 -_0807A324: .4byte gUnknown_0837F598 -_0807A328: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - bls _0807A338 - ldr r4, _0807A334 - b _0807A33E - .align 2, 0 -_0807A334: .4byte gUnknown_081E7C74 -_0807A338: - lsls r1, r7, 2 -_0807A33A: - ldr r0, _0807A350 -_0807A33C: - adds r4, r1, r0 -_0807A33E: - mov r0, r9 - cmp r0, 0x6 - bhi _0807A3EE - lsls r0, 2 - ldr r1, _0807A354 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807A350: .4byte gUnknown_081E7C74 -_0807A354: .4byte _0807A358 - .align 2, 0 -_0807A358: - .4byte _0807A374 - .4byte _0807A37E - .4byte _0807A3AA - .4byte _0807A3C2 - .4byte _0807A386 - .4byte _0807A398 - .4byte _0807A3DA -_0807A374: - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - lsls r0, 3 - b _0807A3F0 -_0807A37E: - ldrb r0, [r4] - lsrs r0, 4 - lsls r0, 3 - b _0807A3F0 -_0807A386: - mov r0, r8 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - lsrs r1, 4 - b _0807A3BC -_0807A398: - mov r0, r8 - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - lsrs r1, 4 - b _0807A3D4 -_0807A3AA: - mov r0, r8 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4] - movs r1, 0xF - ands r1, r2 -_0807A3BC: - lsls r1, 2 - subs r0, r1 - b _0807A3F0 -_0807A3C2: - mov r0, r8 - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4] - movs r1, 0xF - ands r1, r2 -_0807A3D4: - lsls r1, 2 - adds r0, r1 - b _0807A3F0 -_0807A3DA: - mov r0, r8 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - ldrb r1, [r4, 0x1] - subs r0, r1 - b _0807A3F0 -_0807A3EE: - movs r0, 0 -_0807A3F0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_807A100 - - thumb_func_start sub_807A3FC -sub_807A3FC: @ 807A3FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r2 - mov r10, r3 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _0807A41A - movs r5, 0 - movs r6, 0x1 - b _0807A41E -_0807A41A: - movs r5, 0x2 - movs r6, 0x3 -_0807A41E: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r7, r0, 24 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0807A470 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0807A470 - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r3, r0, 24 - mov r0, r8 - lsls r1, r0, 16 - lsls r2, r7, 16 - b _0807A47C -_0807A470: - mov r0, r8 - lsls r1, r0, 16 - lsrs r5, r1, 16 - lsls r0, r7, 16 - lsrs r3, r0, 16 - adds r2, r0, 0 -_0807A47C: - asrs r0, r1, 16 - adds r0, r5 - asrs r0, 1 - mov r1, r9 - strh r0, [r1] - asrs r0, r2, 16 - adds r0, r3 - asrs r0, 1 - mov r1, r10 - strh r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_807A3FC - - thumb_func_start sub_807A4A0 -sub_807A4A0: @ 807A4A0 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r6, r1, 24 - lsrs r6, 24 - ldr r0, _0807A538 - mov r10, r0 - bl object_new_hidden_with_callback - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0807A53C - mov r9, r0 - mov r0, r8 - lsls r3, r0, 4 - add r3, r8 - lsls r3, 2 - mov r0, r9 - adds r5, r3, r0 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - add r4, r9 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x44 - str r3, [sp] - bl memcpy - adds r2, r5, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrb r2, [r5, 0x5] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r5, 0x5] - ldrb r0, [r5, 0x1] - ands r1, r0 - movs r0, 0x8 - orrs r1, r0 - strb r1, [r5, 0x1] - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldrh r2, [r5, 0x4] - ldr r0, _0807A540 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r0, 0x1C - add r9, r0 - ldr r3, [sp] - add r3, r9 - mov r0, r10 - str r0, [r3] - mov r0, r8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0807A538: .4byte SpriteCallbackDummy -_0807A53C: .4byte 0x02020004 -_0807A540: .4byte 0xfffffc00 - thumb_func_end sub_807A4A0 - - thumb_func_start sub_807A544 -sub_807A544: @ 807A544 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _0807A57C - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0807A584 - ldr r2, _0807A580 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, 0 - b _0807A58E - .align 2, 0 -_0807A57C: .4byte 0x0202f7c8 -_0807A580: .4byte 0x03004b00 -_0807A584: - ldr r1, _0807A5B8 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] -_0807A58E: - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldr r1, _0807A5BC - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _0807A5C0 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807A5B8: .4byte 0x03004b00 -_0807A5BC: .4byte move_anim_8074EE0 -_0807A5C0: .4byte sub_8078504 - thumb_func_end sub_807A544 - - thumb_func_start sub_807A5C4 -sub_807A5C4: @ 807A5C4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0807A5EC - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0807A5F4 - ldr r2, _0807A5F0 - ldrh r0, [r4, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r4, 0x20] - movs r1, 0x6 - ldrsh r0, [r2, r1] - negs r0, r0 - strh r0, [r2, 0x6] - adds r1, r2, 0 - b _0807A5FE - .align 2, 0 -_0807A5EC: .4byte 0x0202f7c8 -_0807A5F0: .4byte 0x03004b00 -_0807A5F4: - ldr r1, _0807A630 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] -_0807A5FE: - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x38] - ldrb r1, [r1, 0xC] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r1, _0807A634 - adds r0, r4, 0 - bl oamt_set_x3A_32 - ldr r0, _0807A638 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807A630: .4byte 0x03004b00 -_0807A634: .4byte move_anim_8074EE0 -_0807A638: .4byte sub_8078504 - thumb_func_end sub_807A5C4 - - thumb_func_start sub_807A63C -sub_807A63C: @ 807A63C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078650 - ldr r0, _0807A660 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0807A668 - ldr r0, _0807A664 - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _0807A674 - .align 2, 0 -_0807A660: .4byte 0x0202f7c8 -_0807A664: .4byte 0x03004b00 -_0807A668: - ldr r1, _0807A690 - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_0807A674: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _0807A694 - str r0, [r4, 0x1C] - ldr r1, _0807A698 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807A690: .4byte 0x03004b00 -_0807A694: .4byte sub_8078600 -_0807A698: .4byte move_anim_8072740 - thumb_func_end sub_807A63C - - thumb_func_start sub_807A69C -sub_807A69C: @ 807A69C - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0807A730 - adds r5, r1, r0 - movs r0, 0 - bl obj_id_for_side_relative_to_move - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - strh r0, [r5, 0x8] - ldr r7, _0807A734 - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _0807A6D0 - movs r0, 0x8 - negs r0, r0 - adds r1, r0, 0 -_0807A6D0: - strh r1, [r5, 0xA] - strh r6, [r5, 0xC] - strh r6, [r5, 0xE] - ldr r4, _0807A738 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x24] - ldrh r2, [r5, 0x8] - subs r1, r2 - strh r1, [r0, 0x24] - ldr r0, _0807A73C - bl AllocSpritePalette - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x10] - strh r6, [r5, 0x12] - movs r1, 0x10 - ldrsh r0, [r5, r1] - adds r0, 0x10 - lsls r0, 20 - lsrs r6, r0, 16 - movs r0, 0x8 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - lsls r4, r0, 4 - ldrb r0, [r7] - bl sub_8079E90 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x14] - cmp r0, 0x14 - beq _0807A72C - cmp r0, 0x28 - bne _0807A740 -_0807A72C: - movs r0, 0x2 - b _0807A742 - .align 2, 0 -_0807A730: .4byte 0x03004b20 -_0807A734: .4byte 0x0202f7c8 -_0807A738: .4byte 0x02020004 -_0807A73C: .4byte 0x00002771 -_0807A740: - movs r0, 0x3 -_0807A742: - strh r0, [r5, 0x14] - lsls r0, r4, 1 - ldr r1, _0807A770 - adds r0, r1 - lsls r1, r6, 1 - ldr r2, _0807A774 - adds r1, r2 - ldr r2, _0807A778 - bl CpuSet - ldr r0, _0807A77C - ldrb r2, [r0, 0x2] - ldrh r3, [r0] - adds r0, r6, 0 - movs r1, 0x10 - bl pal_fade_1 - ldr r0, _0807A780 - str r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807A770: .4byte 0x0202eac8 -_0807A774: .4byte 0x0202eec8 -_0807A778: .4byte 0x04000008 -_0807A77C: .4byte 0x03004b00 -_0807A780: .4byte sub_807A784 - thumb_func_end sub_807A69C - - thumb_func_start sub_807A784 -sub_807A784: @ 807A784 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0807A7A8 - adds r4, r0, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0807A7E8 - cmp r0, 0x1 - bgt _0807A7AC - cmp r0, 0 - beq _0807A7B2 - b _0807A844 - .align 2, 0 -_0807A7A8: .4byte 0x03004b20 -_0807A7AC: - cmp r0, 0x2 - beq _0807A830 - b _0807A844 -_0807A7B2: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_807A850 - ldr r2, _0807A7E4 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0xA] - ldrh r2, [r0, 0x24] - adds r1, r2 - strh r1, [r0, 0x24] - ldrh r1, [r4, 0xE] - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _0807A844 - strh r1, [r4, 0xE] - b _0807A822 - .align 2, 0 -_0807A7E4: .4byte 0x02020004 -_0807A7E8: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_807A850 - ldr r3, _0807A82C - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x24] - ldrh r2, [r4, 0xA] - subs r1, r2 - strh r1, [r0, 0x24] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _0807A844 - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - strh r2, [r1, 0x24] -_0807A822: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _0807A844 - .align 2, 0 -_0807A82C: .4byte 0x02020004 -_0807A830: - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0807A844 - ldr r0, _0807A84C - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl move_anim_task_del -_0807A844: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807A84C: .4byte 0x00002771 - thumb_func_end sub_807A784 - - thumb_func_start sub_807A850 -sub_807A850: @ 807A850 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r0, 0 - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r7, r0, 16 - asrs r0, 16 - cmp r0, 0 - blt _0807A8C0 - ldr r5, _0807A8CC - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r3, r4, r5 - movs r0, 0x3 - ldrb r1, [r6, 0x14] - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldrb r1, [r6, 0x10] - lsls r1, 4 - movs r2, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - movs r0, 0x8 - strh r0, [r3, 0x2E] - mov r0, r8 - strh r0, [r3, 0x30] - strh r7, [r3, 0x32] - movs r0, 0x8 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r0, [r0, 0x24] - strh r0, [r3, 0x24] - adds r5, 0x1C - adds r4, r5 - ldr r0, _0807A8D0 - str r0, [r4] - ldrh r0, [r6, 0x12] - adds r0, 0x1 - strh r0, [r6, 0x12] -_0807A8C0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807A8CC: .4byte 0x02020004 -_0807A8D0: .4byte sub_807A8D4 - thumb_func_end sub_807A850 - - thumb_func_start sub_807A8D4 -sub_807A8D4: @ 807A8D4 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - subs r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _0807A8FE - ldr r2, _0807A904 - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x12] - subs r1, 0x1 - strh r1, [r0, 0x12] - adds r0, r3, 0 - bl obj_delete_but_dont_free_vram -_0807A8FE: - pop {r0} - bx r0 - .align 2, 0 -_0807A904: .4byte 0x03004b20 - thumb_func_end sub_807A8D4 - - thumb_func_start sub_807A908 -sub_807A908: @ 807A908 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _0807A93C - ldrb r0, [r4] - movs r1, 0x2 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0807A940 - movs r0, 0x5 - b _0807A942 - .align 2, 0 -_0807A93C: .4byte 0x0202f7c8 -_0807A940: - ldr r0, _0807A954 -_0807A942: - strh r0, [r5, 0x2E] - ldr r0, _0807A958 - strh r0, [r5, 0x30] - ldr r0, _0807A95C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807A954: .4byte 0x0000fff6 -_0807A958: .4byte 0x0000ffd8 -_0807A95C: .4byte sub_807A960 - thumb_func_end sub_807A908 - - thumb_func_start sub_807A960 -sub_807A960: @ 807A960 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r5, [r4, 0x30] - ldrh r2, [r4, 0x34] - adds r0, r5, r2 - strh r0, [r4, 0x34] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x34 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - lsls r0, r5, 16 - asrs r0, 16 - movs r1, 0x14 - negs r1, r1 - cmp r0, r1 - bge _0807A99C - adds r0, r5, 0x1 - strh r0, [r4, 0x30] -_0807A99C: - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _0807A9B4 - adds r0, r4, 0 - bl move_anim_8072740 -_0807A9B4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_807A960 - - thumb_func_start sub_807A9BC -sub_807A9BC: @ 807A9BC - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _0807A9F4 - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, _0807A9F8 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0807A9FC - ldrh r0, [r5, 0x8] - adds r0, 0x1E - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0xA] - subs r0, 0x14 - b _0807AA0A - .align 2, 0 -_0807A9F4: .4byte 0x03004b00 -_0807A9F8: .4byte 0x0202f7c9 -_0807A9FC: - ldrh r0, [r5, 0x8] - subs r0, 0x1E - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0xA] - subs r0, 0x50 -_0807AA0A: - strh r0, [r4, 0x22] - ldr r0, _0807AA20 - str r0, [r4, 0x1C] - ldr r1, _0807AA24 - adds r0, r4, 0 - bl oamt_set_x3A_32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0807AA20: .4byte sub_8078B34 -_0807AA24: .4byte move_anim_8072740 - thumb_func_end sub_807A9BC diff --git a/asm/rom5.s b/asm/rom5.s index 17e783f1c..e1d7c1da0 100644 --- a/asm/rom5.s +++ b/asm/rom5.s @@ -92,7 +92,7 @@ _0807AE20: ldr r4, _0807AE5C adds r0, r4, 0 bl SetUpWindowConfig - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _0807AE60 adds r1, r4, 0 bl InitWindowFromConfig @@ -324,7 +324,7 @@ _0807B010: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl sub_80748D0 + bl BeginHardwarePaletteFade ldr r2, _0807B05C ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -1278,7 +1278,7 @@ sub_807B7E0: @ 807B7E0 ldrb r2, [r4, 0x10] ldrh r3, [r4, 0xA] movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette ldrh r2, [r4, 0x12] movs r1, 0x12 ldrsh r0, [r4, r1] @@ -2431,7 +2431,7 @@ sub_807C0C8: @ 807C0C8 bl sub_8089668 bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r0, _0807C0E8 ldr r1, _0807C0EC ldrh r1, [r1] @@ -2534,7 +2534,7 @@ _0807C130: ldr r0, _0807C1D8 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _0807C1DC ldr r1, _0807C1E0 adds r0, r1 @@ -2667,7 +2667,7 @@ _0807C308: movs r1, 0x1 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0807C330 bl SetVBlankCallback ldr r0, _0807C334 @@ -2775,7 +2775,7 @@ _0807C40C: .4byte 0x0000019d _0807C410: .4byte 0x03001770 _0807C414: .4byte 0x0000043c _0807C418: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -2809,7 +2809,7 @@ sub_807C454: @ 807C454 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_807C454 @@ -3088,7 +3088,7 @@ _0807C67A: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0807C6B0 bl SetMainCallback2 b _0807C74E @@ -3124,7 +3124,7 @@ _0807C6C4: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0807C6F8 bl SetMainCallback2 b _0807C74E @@ -3168,7 +3168,7 @@ _0807C728: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0807C770 bl SetMainCallback2 _0807C74E: @@ -3189,7 +3189,7 @@ _0807C770: .4byte sub_807C790 thumb_func_start sub_807C774 sub_807C774: @ 807C774 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C786 @@ -3205,7 +3205,7 @@ _0807C78C: .4byte CB2_InitMainMenu thumb_func_start sub_807C790 sub_807C790: @ 807C790 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C7A2 @@ -3221,7 +3221,7 @@ _0807C7A8: .4byte sub_813BA88 thumb_func_start sub_807C7AC sub_807C7AC: @ 807C7AC push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C7BE @@ -3237,7 +3237,7 @@ _0807C7C4: .4byte c2_clear_save_data_screen_2 thumb_func_start sub_807C7C8 sub_807C7C8: @ 807C7C8 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0807C7DA @@ -4588,7 +4588,7 @@ _0807D214: adds r0, r6, 0 movs r1, 0x10 mov r2, r8 - bl pal_fade_1 + bl BlendPalette adds r0, r6, 0 adds r0, 0x10 lsls r0, 16 @@ -4743,7 +4743,7 @@ _0807D33C: adds r0, r5, 0 movs r1, 0x10 adds r2, r6, 0 - bl pal_fade_1 + bl BlendPalette adds r0, r5, 0 adds r0, 0x10 lsls r0, 16 @@ -4869,7 +4869,7 @@ sub_807D424: @ 807D424 lsls r1, 1 movs r0, 0 adds r2, r7, 0 - bl pal_fade_1 + bl BlendPalette ldr r0, [sp] lsls r1, r0, 27 lsrs r1, 27 @@ -4976,7 +4976,7 @@ _0807D510: ldrh r3, [r1] movs r1, 0x10 adds r2, r7, 0 - bl pal_fade_1 + bl BlendPalette adds r4, 0x1 mov r9, r4 _0807D524: @@ -5215,7 +5215,7 @@ _0807D6C2: str r4, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0807D6E8 ldr r3, _0807D6EC adds r0, r3 @@ -5251,7 +5251,7 @@ _0807D714: str r4, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0807D726: ldr r4, _0807D760 ldr r1, _0807D764 @@ -5397,7 +5397,7 @@ _0807D820: lsrs r3, 17 adds r0, r4, 0 movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette b _0807D868 .align 2, 0 _0807D84C: .4byte 0x0202eec8 @@ -5410,7 +5410,7 @@ _0807D858: adds r0, r4, 0 movs r1, 0x10 movs r2, 0xC - bl pal_fade_1 + bl BlendPalette _0807D868: pop {r4-r6} pop {r0} @@ -14947,7 +14947,7 @@ _080821D4: .4byte sub_80821D8 thumb_func_start sub_80821D8 sub_80821D8: @ 80821D8 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl RunTasks bl sub_811AAE8 lsls r0, 24 @@ -31138,7 +31138,7 @@ _08089D60: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08089D8C lsls r0, r4, 2 adds r0, r4 @@ -31437,7 +31437,7 @@ sub_8089FCC: @ 8089FCC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08089FFC lsls r0, r4, 2 adds r0, r4 @@ -31740,7 +31740,7 @@ sub_808A228: @ 808A228 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808A270 lsls r0, r4, 2 adds r0, r4 @@ -32225,7 +32225,7 @@ sub_808A630: @ 808A630 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808A670 lsls r0, r4, 2 adds r0, r4 @@ -32451,7 +32451,7 @@ sub_808A810: @ 808A810 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808A840 lsls r0, r4, 2 adds r0, r4 @@ -32727,7 +32727,7 @@ _0808AA2C: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0808AADA .align 2, 0 _0808AA78: .4byte gUnknown_0839F58C @@ -33629,7 +33629,7 @@ _0808B184: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _0808B1DC ldrb r0, [r2] cmp r0, 0x1 @@ -33707,7 +33707,7 @@ sub_808B224: @ 808B224 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808B254 lsls r0, r4, 2 adds r0, r4 @@ -33785,7 +33785,7 @@ sub_808B2B4: @ 808B2B4 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808B2E4 lsls r0, r4, 2 adds r0, r4 @@ -33818,7 +33818,7 @@ sub_808B2EC: @ 808B2EC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808B320 lsls r0, r4, 2 adds r0, r4 @@ -34203,7 +34203,7 @@ sub_808B610: @ 808B610 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_808B610 @@ -34213,7 +34213,7 @@ sub_808B628: @ 808B628 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_808B628 @@ -34349,7 +34349,7 @@ _0808B74C: .4byte 0x81000800 _0808B750: .4byte 0x03001770 _0808B754: .4byte 0x0000043c _0808B758: - bl sub_8073B94 + bl ResetPaletteFade bl remove_some_task bl ResetTasks bl ResetSpriteData @@ -34405,7 +34405,7 @@ _0808B7D0: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808B7E8 ldr r2, _0808B7EC adds r1, r2 @@ -34893,7 +34893,7 @@ sub_808BB80: @ 808BB80 str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808BC0C str r0, [r4] add sp, 0x4 @@ -35553,7 +35553,7 @@ sub_808C0B8: @ 808C0B8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_808C0B8 @@ -35871,7 +35871,7 @@ _0808C344: bl remove_some_task bl ResetTasks bl ResetSpriteData - bl sub_8073B94 + bl ResetPaletteFade bl FreeAllSpritePalettes ldr r1, _0808C374 movs r0, 0x8 @@ -36093,7 +36093,7 @@ unref_sub_808C540: @ 808C540 bl sub_8091060 bl remove_some_task bl ResetTasks - bl sub_8073B94 + bl ResetPaletteFade ldr r3, _0808C59C ldrh r2, [r3] movs r0, 0 @@ -36163,7 +36163,7 @@ sub_808C5F0: @ 808C5F0 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_808C5F0 @@ -36272,7 +36272,7 @@ _0808C68C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, [r7] add r0, r8 ldrh r1, [r0] @@ -36353,7 +36353,7 @@ _0808C774: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl sub_8091E3C ldr r1, _0808C7F4 lsls r3, r6, 2 @@ -36419,7 +36419,7 @@ _0808C814: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808C844 lsls r0, r6, 2 adds r0, r6 @@ -36607,7 +36607,7 @@ _0808C9A0: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808C9F0 lsls r0, r6, 2 adds r0, r6 @@ -37086,7 +37086,7 @@ _0808CD44: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808CDC8 lsls r0, r5, 2 adds r0, r5 @@ -37155,7 +37155,7 @@ _0808CE20: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl sub_8091E3C ldr r2, _0808CE68 lsls r1, r5, 2 @@ -37192,7 +37192,7 @@ _0808CE78: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808CEA8 lsls r0, r5, 2 adds r0, r5 @@ -37391,7 +37391,7 @@ _0808D024: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808D04C lsls r0, r6, 2 adds r0, r6 @@ -37412,7 +37412,7 @@ _0808D054: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0808D0A4 lsls r0, r6, 2 adds r0, r6 @@ -37869,7 +37869,7 @@ _0808D438: ldr r1, _0808D460 bl LZ77UnCompVram _0808D440: - bl sub_8073B94 + bl ResetPaletteFade cmp r5, 0 bne _0808D46C ldr r0, _0808D464 @@ -37996,7 +37996,7 @@ _0808D564: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808D584 bl SetVBlankCallback ldr r1, _0808D588 @@ -42053,7 +42053,7 @@ _0808F5B0: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808F5D0 ldr r0, [r0] bl SetVBlankCallback @@ -42201,7 +42201,7 @@ sub_808F6CC: @ 808F6CC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808F708 str r0, [r5] movs r0, 0x6C @@ -42226,7 +42226,7 @@ _0808F70C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808F740 str r0, [r5] movs r0, 0x3 @@ -42271,7 +42271,7 @@ _0808F77C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808F790 b _0808F7DA .align 2, 0 @@ -42283,7 +42283,7 @@ _0808F794: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808F7A8 b _0808F7DA .align 2, 0 @@ -42308,7 +42308,7 @@ _0808F7C8: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808F7E4 _0808F7DA: str r0, [r5] @@ -42763,7 +42763,7 @@ _0808FB9C: bl SetUpWindowConfig adds r0, r4, 0 bl sub_8071C4C - bl sub_8073B94 + bl ResetPaletteFade ldr r1, _0808FBBC ldr r0, _0808FBC0 adds r1, r0 @@ -42943,7 +42943,7 @@ _0808FD40: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808FD60 ldr r0, [r0] bl SetVBlankCallback @@ -43085,7 +43085,7 @@ _0808FE62: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808FEAC bl m4aMPlayContinue ldr r0, _0808FEB0 @@ -43132,7 +43132,7 @@ _0808FEDA: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808FF18 bl m4aMPlayContinue ldr r0, _0808FF1C @@ -43194,7 +43194,7 @@ _0808FF68: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0808FFA8 bl m4aMPlayContinue ldr r0, _0808FFAC @@ -43455,7 +43455,7 @@ _080901B4: .4byte 0x02024ea4 _080901B8: .4byte 0x03001770 _080901BC: .4byte 0x0000043c _080901C0: - bl sub_8073B94 + bl ResetPaletteFade ldr r1, _080901CC ldr r0, _080901D0 adds r1, r0 @@ -43615,7 +43615,7 @@ _08090318: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08090338 ldr r0, [r0] bl SetVBlankCallback @@ -43715,7 +43715,7 @@ sub_80903D0: @ 80903D0 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08090420 ldr r0, [r0] ldr r1, _08090424 @@ -43759,7 +43759,7 @@ _0809044A: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08090488 ldr r0, [r0] ldr r1, _0809048C @@ -44251,7 +44251,7 @@ _08090800: lsls r2, 2 movs r1, 0x2 bl sub_8091738 - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _08090858 movs r1, 0x21 movs r2, 0x9E @@ -44401,7 +44401,7 @@ _08090960: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080909B0 ldr r0, [r0] bl SetVBlankCallback @@ -44502,7 +44502,7 @@ sub_8090A3C: @ 8090A3C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _08090A94 ldr r0, _08090A98 lsls r1, r6, 2 @@ -44582,7 +44582,7 @@ _08090B0C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _08090B38 movs r0, 0xE ldrsh r1, [r5, r0] @@ -47265,7 +47265,7 @@ _08091FC0: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08091FD8 ldr r0, _08091FDC adds r1, r0 @@ -48247,7 +48247,7 @@ sub_80927B8: @ 80927B8 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080927E8 lsls r0, r4, 2 adds r0, r4 @@ -49579,7 +49579,7 @@ sub_809323C: @ 809323C bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_809323C @@ -49589,7 +49589,7 @@ sub_8093254: @ 8093254 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r2, _0809329C ldrb r0, [r2, 0x6] adds r0, 0x1 @@ -50290,7 +50290,7 @@ _080937A0: .4byte 0x0000080e thumb_func_start sub_80937A4 sub_80937A4: @ 80937A4 push {lr} - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks @@ -50412,7 +50412,7 @@ sub_8093864: @ 8093864 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -50540,7 +50540,7 @@ sub_8093954: @ 8093954 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0809397C ldrb r0, [r1] adds r0, 0x1 @@ -53860,7 +53860,7 @@ sub_809527C: @ 809527C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080952AC lsls r0, r4, 2 adds r0, r4 @@ -53924,7 +53924,7 @@ _08095300: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08095328 lsls r0, r4, 2 adds r0, r4 @@ -54215,7 +54215,7 @@ sub_8095544: @ 8095544 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r4} pop {r0} @@ -56585,7 +56585,7 @@ _08096800: .4byte 0x04000010 thumb_func_start sub_8096804 sub_8096804: @ 8096804 push {lr} - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl FreeSpriteTileRanges bl FreeAllSpritePalettes @@ -56884,7 +56884,7 @@ _08096AAC: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08096AC4 bl SetVBlankCallback b _08096AD8 @@ -56933,7 +56933,7 @@ sub_8096AFC: @ 8096AFC bl LoadOam bl ProcessSpriteCopyRequests bl sub_809CFF0 - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 @@ -57073,7 +57073,7 @@ _08096C16: movs r1, 0 _08096C38: movs r2, 0 - bl sub_8074B3C + bl BlendPalettes ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] @@ -57098,7 +57098,7 @@ _08096C64: .4byte sub_8096C84 thumb_func_start sub_8096C68 sub_8096C68: @ 8096C68 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08096C7A @@ -58422,13 +58422,13 @@ _080977A0: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _080977D4 _080977BC: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 @@ -58866,13 +58866,13 @@ _08097B5C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _08097B8E _08097B78: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08097B8E @@ -63296,13 +63296,13 @@ _08099E36: movs r1, 0x1 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08099E9A .align 2, 0 _08099E4C: .4byte 0x00000d08 _08099E50: .4byte 0x0000ffff _08099E54: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08099EA6 @@ -63320,13 +63320,13 @@ _08099E54: movs r1, 0x1 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08099E9A .align 2, 0 _08099E88: .4byte 0x00000d08 _08099E8C: .4byte 0x0000ffff _08099E90: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08099EA6 @@ -70792,7 +70792,7 @@ sub_809D844: @ 809D844 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_809D844 @@ -70826,7 +70826,7 @@ sub_809D85C: @ 809D85C strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 @@ -71474,7 +71474,7 @@ _0809DE00: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl sub_80748D0 + bl BeginHardwarePaletteFade ldr r0, _0809DE30 bl SetMainCallback2 ldr r2, _0809DE34 @@ -71830,7 +71830,7 @@ sub_809E0FC: @ 809E0FC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0809E134 lsls r0, r4, 2 adds r0, r4 @@ -82086,7 +82086,7 @@ sub_80A3118: @ 80A3118 bl BuildOamBuffer bl RunTasks bl sub_80A740C - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80A3118 @@ -82096,7 +82096,7 @@ sub_80A3134: @ 80A3134 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r1, _080A3168 ldr r2, _080A316C ldr r0, _080A3170 @@ -82191,7 +82191,7 @@ _080A320E: _080A3220: .4byte 0x02000000 _080A3224: .4byte 0x0001ffff _080A3228: - bl sub_8073B94 + bl ResetPaletteFade ldr r2, _080A3240 ldrb r0, [r2, 0x8] movs r1, 0x80 @@ -82408,7 +82408,7 @@ _080A3404: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _080A3450 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -87328,7 +87328,7 @@ sub_80A5AAC: @ 80A5AAC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080A5ADC lsls r0, r4, 2 adds r0, r4 @@ -88148,7 +88148,7 @@ _080A6128: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080A616E .align 2, 0 _080A6158: .4byte 0x03004b20 @@ -90049,7 +90049,7 @@ sub_80A7094: @ 80A7094 movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -90345,7 +90345,7 @@ _080A72F4: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080A735E .align 2, 0 _080A7344: .4byte 0x020219cc @@ -95902,7 +95902,7 @@ sub_80A9BBC: @ 80A9BBC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080A9BE0 movs r1, 0xFF bl CreateTask @@ -96503,7 +96503,7 @@ sub_80AA064: @ 80AA064 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _080AA088 ldrh r0, [r0, 0x2E] cmp r0, 0x4 @@ -96555,7 +96555,7 @@ sub_80AA090: @ 80AA090 strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 @@ -96586,7 +96586,7 @@ sub_80AA10C: @ 80AA10C bl SetVBlankCallback bl sub_80A9F50 bl dp12_8087EA4 - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes @@ -98066,7 +98066,7 @@ _080AACC0: .4byte 0x0203869c thumb_func_start sub_80AACC4 sub_80AACC4: @ 80AACC4 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _080AACF8 ldrb r1, [r0, 0x7] movs r0, 0x80 @@ -98116,7 +98116,7 @@ sub_80AAD08: @ 80AAD08 movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080AAD32: add sp, 0x4 pop {r4} @@ -99052,7 +99052,7 @@ _080AB4AA: bl sub_80AB320 bl sub_80AB1BC bl dp12_8087EA4 - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _080AB538 ldrb r1, [r0, 0x8] movs r2, 0x80 @@ -99144,7 +99144,7 @@ _080AB578: ldr r0, _080AB5BC strh r1, [r0] movs r0, 0x2 - bl sub_80744B0 + bl BeginFastPaletteFade ldr r2, _080AB5C0 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -99773,7 +99773,7 @@ sub_80ABAAC: @ 80ABAAC bl AnimateSprites bl RunTasks bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80ABAAC @@ -99829,7 +99829,7 @@ sub_80ABAC4: @ 80ABAC4 ldr r0, _080ABB6C ldrh r0, [r0] strh r0, [r1] - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests bl sub_8089668 @@ -104172,7 +104172,7 @@ _080ADF2C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ADF48 _080ADF3E: str r0, [r4] @@ -104233,7 +104233,7 @@ sub_80ADF98: @ 80ADF98 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _080ADFCC ldr r0, _080ADFD0 ldrb r1, [r0, 0x8] @@ -109061,7 +109061,7 @@ _080B040C: ldr r3, _080B0454 movs r1, 0x2 movs r2, 0 - bl pal_fade_1 + bl BlendPalette adds r0, r5, 0 bl DestroyTask _080B0444: @@ -109158,7 +109158,7 @@ _080B04DA: ldrb r2, [r1] movs r1, 0x2 ldr r3, _080B0514 - bl pal_fade_1 + bl BlendPalette _080B04F6: adds r0, r6, 0x1 lsls r0, 24 @@ -109395,14 +109395,14 @@ _080B069C: ldrb r2, [r5] movs r1, 0x1 mov r3, r10 - bl pal_fade_1 + bl BlendPalette adds r4, 0xC adds r4, r7 ldrb r2, [r5] adds r0, r4, 0 movs r1, 0x1 mov r3, r10 - bl pal_fade_1 + bl BlendPalette _080B06C2: adds r0, r7, 0x1 lsls r0, 24 @@ -109556,7 +109556,7 @@ _080B07D2: movs r1, 0x3 adds r2, r5, 0 ldr r3, _080B07FC - bl pal_fade_1 + bl BlendPalette cmp r5, 0 bne _080B0800 mov r0, r8 @@ -109603,7 +109603,7 @@ _080B0820: ldrh r3, [r1] movs r1, 0x3 adds r2, r5, 0 - bl pal_fade_1 + bl BlendPalette cmp r5, 0 bne _080B0858 mov r2, r8 @@ -109636,13 +109636,13 @@ _080B0858: movs r1, 0x1 movs r2, 0x4 movs r3, 0 - bl pal_fade_1 + bl BlendPalette adds r4, 0x5 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x4 movs r3, 0 - bl pal_fade_1 + bl BlendPalette b _080B08EA _080B0896: cmp r7, 0x3 @@ -109660,7 +109660,7 @@ _080B0896: movs r1, 0x3 adds r2, r5, 0 movs r3, 0 - bl pal_fade_1 + bl BlendPalette adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 @@ -112014,7 +112014,7 @@ _080B1AA4: ldrb r2, [r4, 0x10] ldr r3, _080B1B0C movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 @@ -112041,7 +112041,7 @@ _080B1AD6: movs r1, 0x1 movs r2, 0 movs r3, 0x1F - bl pal_fade_1 + bl BlendPalette adds r0, r5, 0 bl DestroyTask _080B1B06: @@ -112654,12 +112654,12 @@ _080B1F84: ldrh r3, [r4, 0x8] movs r0, 0x11 movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette ldrb r2, [r4, 0xA] ldrh r3, [r4, 0x8] movs r0, 0x1A movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette movs r2, 0xA ldrsh r1, [r4, r2] movs r2, 0xE @@ -114838,7 +114838,7 @@ sub_80B3094: @ 80B3094 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80B3094 @@ -114848,7 +114848,7 @@ sub_80B30AC: @ 80B30AC push {r4,lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r3, _080B30F0 ldr r1, _080B30F4 ldr r0, _080B30F8 @@ -114935,7 +114935,7 @@ BuyMenuDrawGraphics: @ 80B3108 movs r2, 0x20 bl LoadCompressedPalette bl FreeAllSpritePalettes - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl ResetTasks ldr r4, _080B3228 @@ -114975,7 +114975,7 @@ BuyMenuDrawGraphics: @ 80B3108 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade mov r2, r8 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -117230,7 +117230,7 @@ sub_80B43F0: @ 80B43F0 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080B4430 lsls r0, r4, 2 adds r0, r4 @@ -120237,7 +120237,7 @@ sub_80B5AA0: @ 80B5AA0 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80B5AA0 @@ -120247,7 +120247,7 @@ sub_80B5AB8: @ 80B5AB8 push {r4,lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r1, _080B5B00 ldr r4, _080B5B04 ldrh r0, [r4, 0x4] @@ -120651,7 +120651,7 @@ _080B5DE0: .4byte gWindowConfig_81E6E88 thumb_func_start NamingScreen_ResetObjects NamingScreen_ResetObjects: @ 80B5DE4 push {lr} - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes bl ResetTasks @@ -120752,7 +120752,7 @@ sub_80B5EA8: @ 80B5EA8 str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080B5ECC ldrb r0, [r1] adds r0, 0x1 @@ -120980,7 +120980,7 @@ sub_80B606C: @ 80B606C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080B6090 ldrb r0, [r1] adds r0, 0x1 @@ -129636,7 +129636,7 @@ sub_80BA0A8: @ 80BA0A8 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80BA0A8 @@ -129646,7 +129646,7 @@ sub_80BA0C0: @ 80BA0C0 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r0, _080BA0E8 ldrb r0, [r0] cmp r0, 0 @@ -129718,7 +129718,7 @@ unref_sub_80BA0EC: @ 80BA0EC ldr r0, _080BA21C str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r0, _080BA220 @@ -129731,7 +129731,7 @@ unref_sub_80BA0EC: @ 80BA0EC movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080BA228 strh r4, [r0] adds r0, 0x4 @@ -130169,7 +130169,7 @@ _080BA538: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080BA568 lsls r0, r4, 2 adds r0, r4 @@ -131891,7 +131891,7 @@ _080BB306: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080BB398 strh r4, [r0] adds r0, 0x2 @@ -146002,7 +146002,7 @@ sub_80C2358: @ 80C2358 bl SetVBlankCallback bl sub_80C2020 bl dp12_8087EA4 - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes @@ -146029,7 +146029,7 @@ sub_80C2358: @ 80C2358 str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrb r1, [r5, 0x8] movs r0, 0x7F ands r0, r1 @@ -146078,7 +146078,7 @@ sub_80C2430: @ 80C2430 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80C2430 @@ -146136,7 +146136,7 @@ sub_80C2448: @ 80C2448 strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 @@ -147340,7 +147340,7 @@ sub_80C2E14: @ 80C2E14 movs r1, 0 movs r2, 0 movs r3, 0x10 - bl sub_80748D0 + bl BeginHardwarePaletteFade ldr r1, _080C2E98 lsls r0, r5, 2 adds r0, r5 @@ -147403,7 +147403,7 @@ _080C2EE8: _080C2EEE: movs r1, 0x10 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] @@ -147521,17 +147521,17 @@ _080C2FB8: ldr r3, _080C3004 movs r0, 0x6B movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C3008 movs r0, 0x68 movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette ldrb r2, [r4, 0xA] ldr r3, _080C300C movs r0, 0x6E movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette _080C2FE6: ldr r1, _080C3000 lsls r0, r5, 2 @@ -149091,7 +149091,7 @@ sub_80C3BD8: @ 80C3BD8 ldr r3, _080C3C28 movs r0, 0x91 movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette movs r1, 0x22 ldrsh r0, [r4, r1] cmp r0, 0 @@ -150775,7 +150775,7 @@ sub_80C48C8: @ 80C48C8 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -150837,7 +150837,7 @@ sub_80C4940: @ 80C4940 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -153526,7 +153526,7 @@ sub_80C5DCC: @ 80C5DCC ldr r0, [r1, 0x10] ldr r2, _080C5E14 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes ldr r0, _080C5E18 bl sub_80C61B0 ldr r1, [r4] @@ -153774,7 +153774,7 @@ _080C5FBA: ldr r0, [r2, 0x10] ldr r2, _080C5FE4 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes ldr r0, _080C5FE8 bl SetHBlankCallback ldr r1, [r4] @@ -153792,7 +153792,7 @@ _080C5FEC: negs r0, r0 movs r1, 0x10 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes ldr r1, [r4] _080C6000: ldrh r0, [r1, 0x8] @@ -153940,7 +153940,7 @@ sub_80C60CC: @ 80C60CC ldr r0, [r0, 0x10] ldr r2, _080C6128 movs r1, 0 - bl sub_8074B3C + bl BlendPalettes ldr r0, _080C612C bl SetHBlankCallback _080C611C: @@ -160005,7 +160005,7 @@ unknown_ItemMenu_Confirm: @ 80C9014 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -160210,7 +160210,7 @@ ItemUseOutOfBattle_Mail: @ 80C9194 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080C91C4 lsls r0, r4, 2 adds r0, r4 @@ -161675,7 +161675,7 @@ sub_80C9C7C: @ 80C9C7C movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080C9CF4 .align 2, 0 _080C9CC8: .4byte 0x03005d00 @@ -162579,7 +162579,7 @@ sub_80CA3C0: @ 80CA3C0 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -167026,7 +167026,7 @@ _080CC650: adds r1, r4 ldrh r3, [r1] movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette ldrh r0, [r5, 0x20] ldrb r2, [r5, 0x1C] movs r3, 0x1E @@ -167035,7 +167035,7 @@ _080CC650: adds r1, r4 ldrh r3, [r1] movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] @@ -169058,7 +169058,7 @@ _080CD5D8: lsls r1, 24 lsrs r1, 24 ldr r2, _080CD634 - bl sub_8074B3C + bl BlendPalettes movs r3, 0x30 ldrsh r0, [r4, r3] cmp r0, 0x10 @@ -171018,7 +171018,7 @@ sub_80CE3EC: @ 80CE3EC movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080CE4D0 str r1, [r6] adds r0, r7, 0 @@ -171230,7 +171230,7 @@ _080CE618: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080CE640: ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -171504,7 +171504,7 @@ _080CE838: movs r1, 0x10 movs r2, 0xB movs r3, 0 - bl pal_fade_1 + bl BlendPalette movs r0, 0 strh r0, [r6, 0xE] movs r5, 0 @@ -177056,7 +177056,7 @@ sub_80D1318: @ 80D1318 ldrb r2, [r1, 0xA] ldrh r3, [r1, 0x8] movs r1, 0xF - bl pal_fade_1 + bl BlendPalette _080D133E: adds r0, r4, 0 movs r1, 0x1 @@ -178467,7 +178467,7 @@ sub_80D1D9C: @ 80D1D9C bl sub_80791A8 ldr r2, _080D1DF4 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes b _080D1E1E .align 2, 0 _080D1DEC: .4byte 0x03004b20 @@ -187119,7 +187119,7 @@ sub_80D6080: @ 80D6080 ldrb r2, [r1] ldrh r3, [r1, 0x2] movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette adds r0, r4, 0 bl move_anim_task_del add sp, 0xC @@ -204250,7 +204250,7 @@ _080DE500: ldr r3, _080DE540 movs r1, 0x10 movs r2, 0xA - bl pal_fade_1 + bl BlendPalette b _080DE604 .align 2, 0 _080DE534: .4byte 0x0202eac8 @@ -204514,7 +204514,7 @@ _080DE72C: ldr r3, _080DE73C movs r1, 0x10 movs r2, 0 - bl pal_fade_1 + bl BlendPalette b _080DE7AA .align 2, 0 _080DE73C: .4byte 0x00003c0d @@ -205439,7 +205439,7 @@ _080DEE8C: movs r1, 0 movs r2, 0x10 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080DEEDC str r0, [r4] _080DEEBA: @@ -209243,7 +209243,7 @@ _080E0C88: ldrh r3, [r2, 0x4] movs r1, 0x10 movs r2, 0xB - bl pal_fade_1 + bl BlendPalette _080E0C94: ldr r1, _080E0CC4 mov r2, r9 @@ -211462,7 +211462,7 @@ sub_80E1D84: @ 80E1D84 ldrb r3, [r4, 0x6] ldrh r4, [r4, 0x8] str r4, [sp] - bl pal_fade_maybe + bl BeginNormalPaletteFade adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] @@ -211563,7 +211563,7 @@ sub_80E1E2C: @ 80E1E2C bl sub_80E1DC4 ldrb r1, [r4, 0x8] ldrh r2, [r4, 0x6] - bl sub_8074B3C + bl BlendPalettes adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] @@ -211625,7 +211625,7 @@ _080E1EB8: lsrs r1, 24 ldrh r2, [r4, 0x34] adds r0, r3, 0 - bl sub_8074B3C + bl BlendPalettes b _080E1EEC _080E1EDE: ldrh r1, [r4, 0x3A] @@ -211633,7 +211633,7 @@ _080E1EDE: lsrs r1, 24 ldrh r2, [r4, 0x38] adds r0, r3, 0 - bl sub_8074B3C + bl BlendPalettes _080E1EEC: ldrh r0, [r4, 0x30] movs r2, 0x80 @@ -211668,7 +211668,7 @@ sub_80E1F0C: @ 80E1F0C bl sub_80E1DC4 movs r1, 0 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes adds r0, r4, 0 bl move_anim_8072740 _080E1F32: @@ -211785,7 +211785,7 @@ sub_80E1FDC: @ 80E1FDC str r2, [sp] adds r2, r5, 0 adds r3, r6, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] @@ -211930,7 +211930,7 @@ sub_80E20E4: @ 80E20E4 adds r0, r2, 0 adds r2, r5, 0 adds r3, r6, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] subs r0, 0x1 strh r0, [r4, 0xC] @@ -212045,7 +212045,7 @@ sub_80E21A8: @ 80E21A8 adds r0, r1, 0 movs r1, 0 adds r2, r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080E2210 str r0, [r4] add sp, 0x4 @@ -212116,7 +212116,7 @@ _080E2260: adds r0, r2, 0 movs r1, 0 adds r2, r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080E229E _080E228E: ldrb r3, [r4, 0x14] @@ -212125,7 +212125,7 @@ _080E228E: adds r0, r2, 0 movs r1, 0 adds r2, r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080E229E: ldr r0, _080E22C8 lsls r1, r5, 2 @@ -212184,7 +212184,7 @@ sub_80E22CC: @ 80E22CC movs r1, 0 movs r2, 0 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade adds r0, r4, 0 bl move_anim_task_del _080E2312: @@ -212249,7 +212249,7 @@ _080E2370: orrs r2, r0 _080E2382: adds r0, r2, 0 - bl sub_8074338 + bl InvertPlttBuffer mov r0, r8 bl move_anim_task_del add sp, 0xC @@ -212371,7 +212371,7 @@ _080E2464: movs r3, 0x16 ldrsb r3, [r4, r3] adds r0, r5, 0 - bl sub_8074380 + bl TintPlttBuffer movs r2, 0x8 ldrsh r1, [r4, r2] movs r2, 0xA @@ -212379,7 +212379,7 @@ _080E2464: cmp r1, r0 bne _080E248E adds r0, r5, 0 - bl sub_8074454 + bl UnfadePlttBuffer mov r0, r8 bl move_anim_task_del _080E248E: @@ -213486,7 +213486,7 @@ _080E2D10: ldrh r3, [r5, 0x12] adds r0, r6, 0 movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette _080E2D24: adds r0, r6, 0 adds r0, 0x10 @@ -213550,7 +213550,7 @@ sub_80E2D78: @ 80E2D78 ldrb r3, [r4, 0x6] ldrb r4, [r4, 0x8] str r4, [sp] - bl sub_80748D0 + bl BeginHardwarePaletteFade ldr r1, _080E2DB0 lsls r0, r5, 2 adds r0, r5 @@ -215029,7 +215029,7 @@ _080E3958: ldrb r2, [r4, 0xC] movs r1, 0x10 ldr r3, _080E39AC - bl pal_fade_1 + bl BlendPalette _080E3972: movs r1, 0x24 ldrsh r0, [r4, r1] @@ -215045,7 +215045,7 @@ _080E3972: ldrb r2, [r4, 0xC] movs r1, 0x10 movs r3, 0 - bl pal_fade_1 + bl BlendPalette _080E3992: adds r0, r5, 0x1 lsls r0, 16 @@ -220514,7 +220514,7 @@ _080E6344: strh r0, [r1] movs r0, 0 bl SetVBlankCallback - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl dp12_8087EA4 bl remove_some_task @@ -220572,7 +220572,7 @@ _080E63D8: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080E6402 _080E63EA: movs r1, 0x80 @@ -221430,7 +221430,7 @@ sub_80E6A6C: @ 80E6A6C bl LoadOam bl ProcessSpriteCopyRequests bl sub_80EAC5C - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 @@ -221454,7 +221454,7 @@ _080E6AA4: .4byte 0x02001000 thumb_func_start sub_80E6AA8 sub_80E6AA8: @ 80E6AA8 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080E6ABA @@ -222785,13 +222785,13 @@ _080E7544: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x24] adds r0, 0x1 strh r0, [r4, 0x24] b _080E756C _080E755C: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080E756C @@ -231921,7 +231921,7 @@ _080EBB08: bl SetVBlankCallback b _080EBBC0 _080EBB10: - bl sub_8073B94 + bl ResetPaletteFade b _080EBBC0 _080EBB16: bl ResetSpriteData @@ -232171,7 +232171,7 @@ sub_80EBD18: @ 80EBD18 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_80F1FF0 pop {r0} bx r0 @@ -232182,7 +232182,7 @@ sub_80EBD30: @ 80EBD30 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_80FB260 bl sub_80EFE7C pop {r0} @@ -232194,7 +232194,7 @@ sub_80EBD4C: @ 80EBD4C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_80F5BF0 bl sub_8089668 pop {r0} @@ -232206,7 +232206,7 @@ sub_80EBD68: @ 80EBD68 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_80F6F64 pop {r0} bx r0 @@ -232233,7 +232233,7 @@ sub_80EBD90: @ 80EBD90 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl sub_80F19FC pop {r0} bx r0 @@ -232439,7 +232439,7 @@ _080EBF54: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _080EBF70 movs r0, 0xC1 lsls r0, 2 @@ -232664,7 +232664,7 @@ _080EC12A: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080EC150 bl SetVBlankCallback movs r2, 0xC1 @@ -233175,7 +233175,7 @@ _080EC552: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -233271,7 +233271,7 @@ _080EC61E: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -233459,7 +233459,7 @@ _080EC7A0: movs r2, 0 str r2, [sp] movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _080EC7B6: movs r0, 0xC1 lsls r0, 2 @@ -233896,7 +233896,7 @@ _080ECB2E: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ECB54 bl SetVBlankCallback movs r2, 0xC1 @@ -234224,7 +234224,7 @@ _080ECDFC: movs r2, 0 str r2, [sp] movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 @@ -234364,7 +234364,7 @@ _080ECF10: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ECF38 bl SetVBlankCallback movs r2, 0xC1 @@ -234574,7 +234574,7 @@ _080ED0E2: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -234730,7 +234730,7 @@ _080ED220: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ED248 bl SetVBlankCallback movs r2, 0xC1 @@ -235010,7 +235010,7 @@ _080ED462: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ED494 bl SetVBlankCallback movs r0, 0xC1 @@ -235097,7 +235097,7 @@ _080ED524: movs r2, 0 str r2, [sp] movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -235162,7 +235162,7 @@ _080ED5A4: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ED5DC bl SetVBlankCallback movs r2, 0xC1 @@ -235286,7 +235286,7 @@ _080ED6C6: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -235379,7 +235379,7 @@ _080ED78A: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080ED7BC bl SetVBlankCallback movs r2, 0xC1 @@ -235792,7 +235792,7 @@ _080EDAE8: str r4, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r5, r2 @@ -235923,7 +235923,7 @@ _080EDC32: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -236061,7 +236061,7 @@ _080EDD52: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080EDD78 bl SetVBlankCallback movs r2, 0xC1 @@ -236224,7 +236224,7 @@ _080EDE96: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080EDEC4 _080EDEAE: ldr r0, _080EDECC @@ -236300,7 +236300,7 @@ _080EDF38: movs r2, 0 str r2, [sp] movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080EE03C _080EDF50: ldr r0, _080EDF78 @@ -236390,7 +236390,7 @@ _080EDFF8: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080EE018 bl SetVBlankCallback b _080EE03C @@ -236741,7 +236741,7 @@ _080EE2E0: movs r2, 0 str r2, [sp] movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -236811,7 +236811,7 @@ _080EE37A: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r2, 0xC1 lsls r2, 2 adds r1, r4, r2 @@ -236920,7 +236920,7 @@ _080EE466: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0xC1 lsls r0, 2 adds r1, r4, r0 @@ -237004,7 +237004,7 @@ _080EE516: str r2, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080EE548 bl SetVBlankCallback movs r0, 0xC1 @@ -237481,7 +237481,7 @@ _080EE91A: str r2, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _080EE94C _080EE932: ldr r0, _080EE954 @@ -237532,7 +237532,7 @@ sub_80EE96C: @ 80EE96C movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] @@ -258207,7 +258207,7 @@ _080F8AB0: .align 2, 0 _080F8AC4: .4byte 0x01000200 _080F8AC8: - bl sub_8073B94 + bl ResetPaletteFade b _080F8D30 _080F8ACE: bl ResetTasks @@ -258475,7 +258475,7 @@ _080F8CC6: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _080F8D24 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -258752,7 +258752,7 @@ sub_80F8F18: @ 80F8F18 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80F8F18 @@ -258783,7 +258783,7 @@ _080F8F54: .4byte 0x02000000 thumb_func_start sub_80F8F58 sub_80F8F58: @ 80F8F58 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080F8F6C @@ -258815,7 +258815,7 @@ sub_80F8F78: @ 80F8F78 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _080F8FAC adds r0, 0xF0 ldr r1, _080F8FB0 @@ -258833,7 +258833,7 @@ _080F8FB0: .4byte sub_80F8FB4 thumb_func_start sub_80F8FB4 sub_80F8FB4: @ 80F8FB4 push {r4,lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080F9012 @@ -258872,7 +258872,7 @@ _080F9002: lsls r2, 1 movs r1, 0 bl memset - bl sub_8073B94 + bl ResetPaletteFade _080F9012: pop {r4} pop {r0} @@ -260234,7 +260234,7 @@ sub_80F99CC: @ 80F99CC str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -260265,7 +260265,7 @@ sub_80F9A0C: @ 80F9A0C str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -260296,7 +260296,7 @@ sub_80F9A4C: @ 80F9A4C str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -265313,7 +265313,7 @@ _080FC0C4: strh r1, [r0] adds r0, 0x2 strh r1, [r0] - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl FreeSpriteTileRanges bl FreeAllSpritePalettes @@ -265395,7 +265395,7 @@ _080FC1AA: negs r0, r0 movs r1, 0x10 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes ldr r0, _080FC1C0 bl SetVBlankCallback b _080FC1E6 @@ -265443,7 +265443,7 @@ sub_80FC214: @ 80FC214 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80FC214 @@ -265926,13 +265926,13 @@ _080FC5CC: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _080FC5F4 _080FC5E4: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080FC5F4 @@ -266039,13 +266039,13 @@ _080FC6B4: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _080FC792 _080FC6CC: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080FC792 @@ -276793,7 +276793,7 @@ sub_8101954: @ 8101954 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8101954 @@ -276803,7 +276803,7 @@ sub_810196C: @ 810196C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r1, _081019A8 ldr r2, _081019AC adds r0, r2, 0 @@ -277211,7 +277211,7 @@ _08101C9C: .4byte gWindowConfig_81E7128 thumb_func_start sub_8101CA0 sub_8101CA0: @ 8101CA0 push {lr} - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData ldr r1, _08101CBC movs r0, 0x80 @@ -277313,7 +277313,7 @@ sub_8101D5C: @ 8101D5C str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r4, _08101D88 ldrb r0, [r4, 0x2] bl sub_810423C @@ -278249,7 +278249,7 @@ sub_8102424: @ 8102424 str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -283565,7 +283565,7 @@ sub_8104B3C: @ 8104B3C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -283615,7 +283615,7 @@ sub_8104B80: @ 8104B80 str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -283645,7 +283645,7 @@ sub_8104BC8: @ 8104BC8 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -283678,7 +283678,7 @@ sub_8104BFC: @ 8104BFC str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -287245,7 +287245,7 @@ _081066B4: _081066D0: .4byte 0x03005e8c _081066D4: .4byte 0x02015de0 _081066D8: - bl sub_8073B94 + bl ResetPaletteFade movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 @@ -287350,7 +287350,7 @@ _0810678C: str r1, [r0, 0x8] ldr r0, [r0, 0x8] movs r0, 0x2 - bl sub_80744B0 + bl BeginFastPaletteFade ldr r0, _081067FC bl SetVBlankCallback ldr r0, _08106800 @@ -287383,7 +287383,7 @@ _08106804: .4byte sub_8106808 sub_8106808: @ 8106808 push {lr} bl sub_810682C - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8106808 @@ -287461,7 +287461,7 @@ _08106892: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _081068A4: ldr r0, _081068B8 ldrb r0, [r0] @@ -287723,7 +287723,7 @@ sub_8106AAC: @ 8106AAC bl sub_8106A58 bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8106AAC @@ -294615,7 +294615,7 @@ sub_8109E6C: @ 8109E6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8109E6C @@ -294702,7 +294702,7 @@ sub_8109E80: @ 8109E80 bl remove_some_task bl ResetTasks bl ResetSpriteData - bl sub_8073B94 + bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _0810A0BC movs r1, 0 @@ -294725,7 +294725,7 @@ sub_8109E80: @ 8109E80 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _0810A0D4 ldrh r2, [r3] mov r0, r9 @@ -294906,7 +294906,7 @@ sub_810A11C: @ 810A11C bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810A11C @@ -295653,7 +295653,7 @@ sub_810A704: @ 810A704 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_810A704 @@ -295785,7 +295785,7 @@ _0810A816: bl remove_some_task bl ResetTasks bl ResetSpriteData - bl sub_8073B94 + bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _0810A854 bl LoadCompressedObjectPic @@ -295820,7 +295820,7 @@ sub_810A864: @ 810A864 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _0810A8D0 ldrh r2, [r3] strh r5, [r3] @@ -296149,7 +296149,7 @@ sub_810AB3C: @ 810AB3C bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810AB3C @@ -296433,7 +296433,7 @@ sub_810AD58: @ 810AD58 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0810AD98 str r0, [r4] add sp, 0x4 @@ -296535,7 +296535,7 @@ sub_810AE28: @ 810AE28 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0810AE58 lsls r0, r4, 2 adds r0, r4 @@ -297650,7 +297650,7 @@ sub_810B674: @ 810B674 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810B674 @@ -297660,7 +297660,7 @@ sub_810B68C: @ 810B68C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer ldr r1, _0810B6B0 ldr r2, _0810B6B4 ldr r0, _0810B6B8 @@ -297743,7 +297743,7 @@ _0810B764: bl remove_some_task b _0810B91C _0810B76A: - bl sub_8073B94 + bl ResetPaletteFade ldr r2, _0810B780 ldrb r0, [r2, 0x8] movs r1, 0x80 @@ -297952,7 +297952,7 @@ _0810B934: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _0810B958 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -299215,7 +299215,7 @@ sub_810C31C: @ 810C31C movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0810C358 ldrb r0, [r0] cmp r0, 0x1 @@ -299443,7 +299443,7 @@ sub_810C508: @ 810C508 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0810C538 lsls r0, r4, 2 adds r0, r4 @@ -299808,7 +299808,7 @@ _0810C808: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0810C84C mov r2, r8 lsls r0, r2, 2 @@ -299870,7 +299870,7 @@ sub_810C854: @ 810C854 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0810C8CC lsls r0, r5, 2 adds r0, r5 @@ -300394,7 +300394,7 @@ sub_810CC54: @ 810CC54 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810CC54 @@ -300404,7 +300404,7 @@ sub_810CC6C: @ 810CC6C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_810CC6C @@ -300465,7 +300465,7 @@ sub_810CC80: @ 810CC80 ldr r0, _0810CD44 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade bl ResetTasks bl ResetSpriteData ldr r3, _0810CD48 @@ -301706,7 +301706,7 @@ mapldr_080CA5C0: @ 810D64C str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl sp109_CreatePCMenu bl sub_80B5838 ldr r0, _0810D680 @@ -307988,7 +307988,7 @@ _081106C8: lsls r2, 7 adds r0, r2, 0 strh r0, [r1] - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeSpriteTileRanges @@ -308058,7 +308058,7 @@ _08110770: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _081107C0 _08110782: ldr r1, _0811079C @@ -308107,7 +308107,7 @@ sub_81107DC: @ 81107DC push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81107DC @@ -308121,7 +308121,7 @@ sub_81107F0: @ 81107F0 bl sub_8111110 bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 @@ -309530,7 +309530,7 @@ _0811129C: strh r0, [r1, 0xC] b _081112B2 _081112A2: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _081112B2 @@ -309608,13 +309608,13 @@ _0811132C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _08111358 _08111344: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08111358 @@ -309648,13 +309648,13 @@ _08111378: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] b _081113A4 _08111390: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _081113A4 @@ -309769,7 +309769,7 @@ _0811147C: .4byte 0x04000012 _08111480: .4byte 0x0000fff8 _08111484: .4byte 0x0400001a _08111488: - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes b _08111540 @@ -309822,7 +309822,7 @@ _081114F0: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08111540 _08111502: ldr r1, _0811151C @@ -309959,7 +309959,7 @@ _081115F8: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0811163C _0811160A: ldr r0, _08111630 @@ -310289,7 +310289,7 @@ _0811188E: thumb_func_start sub_8111894 sub_8111894: @ 8111894 push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 @@ -310323,7 +310323,7 @@ _081118CC: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -310458,7 +310458,7 @@ evolution_cutscene: @ 8111984 ldr r4, _08111C18 adds r0, r4, 0 bl SetUpWindowConfig - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _08111C1C strh r5, [r0] ldr r0, _08111C20 @@ -310797,7 +310797,7 @@ sub_8111C90: @ 8111C90 ldr r4, _08111E28 adds r0, r4, 0 bl SetUpWindowConfig - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _08111E2C strh r5, [r0] ldr r0, _08111E30 @@ -310902,7 +310902,7 @@ sub_8111C90: @ 8111C90 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0xC pop {r3-r5} mov r8, r3 @@ -311064,7 +311064,7 @@ _08111F88: adds r0, 0x4 bl sub_8064F08 bl sub_8071EF4 - bl sub_8073B94 + bl ResetPaletteFade ldr r1, _08111FCC ldr r0, _08111FD0 adds r1, r0 @@ -311183,7 +311183,7 @@ _081120B4: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081120E0 bl SetMainCallback2 movs r1, 0x80 @@ -311381,7 +311381,7 @@ sub_8112270: @ 8112270 bl BuildOamBuffer ldr r0, _0811228C bl sub_800374C - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 @@ -311398,7 +311398,7 @@ sub_8112290: @ 8112290 ldr r0, [r0] adds r0, 0x4 bl sub_80035AC - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 @@ -311664,7 +311664,7 @@ _081124F8: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _08112530 ldr r0, _08112534 ldrb r1, [r0] @@ -311767,7 +311767,7 @@ _081125CC: movs r1, 0x4 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl _08112FD0 .align 2, 0 _081125F4: .4byte 0x00000179 @@ -311961,7 +311961,7 @@ _08112762: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08112992 .align 2, 0 _08112794: .4byte 0x03004b20 @@ -312100,7 +312100,7 @@ _081128C4: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081128E0 mov r3, r8 adds r1, r3, r7 @@ -312166,7 +312166,7 @@ _08112948: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade mov r3, r8 adds r1, r3, r7 lsls r1, 3 @@ -312572,7 +312572,7 @@ _08112CBC: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _08112CE2: ldr r0, _08112D2C ldrh r1, [r0, 0x2E] @@ -313066,7 +313066,7 @@ _0811311C: movs r1, 0x4 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade bl _08113B3A .align 2, 0 _08113144: .4byte 0x00000179 @@ -313262,7 +313262,7 @@ _081132B6: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _081132E2: ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -313852,7 +313852,7 @@ _081137E4: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0811380A: ldr r0, _0811386C ldrh r1, [r0, 0x2E] @@ -316901,7 +316901,7 @@ sub_8114FD4: @ 8114FD4 strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 @@ -316955,7 +316955,7 @@ sub_811505C: @ 811505C strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8089668 pop {r0} bx r0 @@ -317021,7 +317021,7 @@ sub_8115124: @ 8115124 sub sp, 0x4 bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer bl sub_8117434 ldr r2, _08115188 ldr r3, _0811518C @@ -317375,7 +317375,7 @@ _08115438: .4byte 0x06004000 _0811543C: .4byte 0x03001770 _08115440: .4byte 0x0000043c _08115444: - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl ResetTasks ldr r1, _08115458 @@ -317524,7 +317524,7 @@ _0811558C: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl sub_80748D0 + bl BeginHardwarePaletteFade ldr r0, _08115618 movs r1, 0 bl CreateTask @@ -317650,7 +317650,7 @@ sub_81156BC: @ 81156BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 @@ -320183,7 +320183,7 @@ _08116B0C: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl sub_80748D0 + bl BeginHardwarePaletteFade ldr r1, _08116B38 lsls r0, r5, 2 adds r0, r5 @@ -320206,7 +320206,7 @@ sub_8116B40: @ 8116B40 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -320224,7 +320224,7 @@ sub_8116B40: @ 8116B40 strh r4, [r1] bl sub_80F9368 bl FreeAllSpritePalettes - bl sub_8073B94 + bl ResetPaletteFade bl ResetSpriteData bl sub_80F9020 ldr r0, _08116BB0 @@ -321525,7 +321525,7 @@ sub_811755C: @ 811755C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _081175B4 ldrb r1, [r2, 0x8] lsls r1, 26 @@ -321536,7 +321536,7 @@ sub_811755C: @ 811755C ands r0, r3 orrs r0, r1 strb r0, [r2, 0x4] - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r1, _081175B8 lsls r0, r4, 2 adds r0, r4 @@ -328667,7 +328667,7 @@ _0811AD32: adds r0, r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0811AD54: ldr r2, _0811AD7C ldrh r0, [r4, 0xC] @@ -328760,7 +328760,7 @@ sub_811ADE4: @ 811ADE4 movs r1, 0x4 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0811AE54 ldr r1, _0811AE58 movs r2, 0x14 @@ -328958,7 +328958,7 @@ sub_811AF7C: @ 811AF7C movs r1, 0x4 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0811AFE4 ldr r0, _0811AFE8 movs r2, 0x16 @@ -330789,7 +330789,7 @@ _0811BD9E: movs r2, 0 str r2, [sp] movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0811BDEC: movs r5, 0x10 ldrsh r0, [r6, r5] @@ -331818,7 +331818,7 @@ sub_811C5B4: @ 811C5B4 negs r0, r0 ldr r2, _0811C5E4 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes movs r0, 0xFF strh r0, [r4, 0xE] strh r6, [r5, 0xE] @@ -332902,7 +332902,7 @@ sub_811CE14: @ 811CE14 negs r0, r0 ldr r2, _0811CE48 movs r1, 0x10 - bl sub_8074B3C + bl BlendPalettes ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -333895,7 +333895,7 @@ _0811D5B4: negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, _0811D5DC - bl sub_8074B3C + bl BlendPalettes _0811D5C0: movs r2, 0x16 ldrsh r0, [r4, r2] @@ -333946,7 +333946,7 @@ _0811D60E: negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, _0811D640 - bl sub_8074B3C + bl BlendPalettes _0811D61A: movs r0, 0x16 ldrsh r1, [r4, r0] @@ -334001,7 +334001,7 @@ sub_811D67C: @ 811D67C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_811D67C @@ -334054,7 +334054,7 @@ sub_811D6D4: @ 811D6D4 negs r0, r0 movs r1, 0x10 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes pop {r0} bx r0 thumb_func_end sub_811D6D4 @@ -340409,7 +340409,7 @@ sub_8120A58: @ 8120A58 movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade bl dp01_tbl3_exec_completed ldr r1, _08120A9C ldrb r0, [r4] @@ -343508,7 +343508,7 @@ _08122354: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08122384 lsls r0, r4, 2 adds r0, r4 @@ -343699,7 +343699,7 @@ _081224D0: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _081224FC lsls r0, r4, 2 adds r0, r4 @@ -343886,7 +343886,7 @@ sub_812265C: @ 812265C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0812268C lsls r0, r4, 2 adds r0, r4 @@ -344631,7 +344631,7 @@ sub_8122C18: @ 8122C18 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08122C5C str r0, [r4] _08122C4E: @@ -345186,7 +345186,7 @@ sub_81230BC: @ 81230BC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _081230EC lsls r0, r4, 2 adds r0, r4 @@ -345248,7 +345248,7 @@ sub_8123138: @ 8123138 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08123168 lsls r0, r4, 2 adds r0, r4 @@ -345365,7 +345365,7 @@ sub_8123218: @ 8123218 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -345524,7 +345524,7 @@ _08123384: bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes - bl sub_8073B94 + bl ResetPaletteFade bl sub_807C828 movs r4, 0 ldr r0, _081233D4 @@ -345855,7 +345855,7 @@ _08123678: movs r1, 0x3 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081236A4 movs r1, 0x1 bl sub_8074F6C @@ -345931,7 +345931,7 @@ mainloop: @ 8123724 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl sound_something pop {r0} bx r0 @@ -345967,7 +345967,7 @@ _08123766: bls _08123766 bl ResetTasks bl ResetSpriteData - bl sub_8073B94 + bl ResetPaletteFade ldr r2, _0812385C movs r3, 0x80 lsls r3, 10 @@ -346240,7 +346240,7 @@ _0812397E: movs r1, 0x3 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0x4 bl play_sound_effect b _081239D6 @@ -346620,7 +346620,7 @@ sub_8123C40: @ 8123C40 strh r0, [r1] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r4} pop {r0} bx r0 @@ -363671,7 +363671,7 @@ sub_812BC14: @ 812BC14 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0812BC44 ldr r2, _0812BC48 ldrb r0, [r2] @@ -364138,7 +364138,7 @@ sub_812BF54: @ 812BF54 movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade bl dp01_tbl6_exec_completed ldr r0, _0812BFA4 ldrh r1, [r0] @@ -364251,7 +364251,7 @@ sub_812C01C: @ 812C01C movs r1, 0x4 movs r2, 0 movs r3, 0x8 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0812C07C movs r1, 0 bl CreateTask @@ -364333,7 +364333,7 @@ _0812C0D0: movs r1, 0x4 movs r2, 0x8 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0812C110 .align 2, 0 _0812C104: .4byte sub_812C118 @@ -372541,7 +372541,7 @@ sub_813003C: @ 813003C ldrh r3, [r1] movs r1, 0x10 movs r2, 0x8 - bl pal_fade_1 + bl BlendPalette ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -372564,7 +372564,7 @@ _0813008C: movs r1, 0x10 movs r2, 0 movs r3, 0 - bl pal_fade_1 + bl BlendPalette adds r0, r5, 0 bl move_anim_task_del _0813009E: @@ -376126,7 +376126,7 @@ _08131B94: ldr r3, _08131C18 movs r1, 0x10 movs r2, 0x6 - bl pal_fade_1 + bl BlendPalette _08131BF2: ldr r0, _08131C1C mov r3, r8 @@ -377465,7 +377465,7 @@ sub_813265C: @ 813265C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813265C @@ -377484,7 +377484,7 @@ sub_8132670: @ 8132670 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 @@ -377575,7 +377575,7 @@ sub_81326D8: @ 81326D8 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _081327A0 bl SetMainCallback2 pop {r4,r5} @@ -377651,7 +377651,7 @@ sub_81327A4: @ 81327A4 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _0813286C bl SetMainCallback2 pop {r4,r5} @@ -377719,7 +377719,7 @@ _081328C8: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r4} pop {r0} bx r0 @@ -377830,7 +377830,7 @@ _081329BC: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r1, 0x80 lsls r1, 19 movs r2, 0x9A @@ -378256,7 +378256,7 @@ _08132D4C: str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08132FD6 .align 2, 0 _08132D64: .4byte 0x030007b0 @@ -378311,7 +378311,7 @@ _08132DC6: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08132FD6 _08132DD8: movs r0, 0x1 @@ -378320,7 +378320,7 @@ _08132DD8: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08132DF4 ldr r1, [r0] ldrb r0, [r1] @@ -378350,7 +378350,7 @@ _08132E18: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r5, _08132E74 ldr r1, [r5] ldrb r0, [r1] @@ -385013,7 +385013,7 @@ sub_81361E4: @ 81361E4 bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r4, [r4] ldr r1, [r4] ldr r0, _08136224 @@ -385044,7 +385044,7 @@ sub_813622C: @ 813622C bl sub_81368A4 bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_813622C @@ -385058,7 +385058,7 @@ sub_8136244: @ 8136244 bl _call_via_r0 bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 .align 2, 0 @@ -385070,7 +385070,7 @@ sub_8136264: @ 8136264 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer movs r0, 0x6 bl sub_80F5CDC bl sub_8089668 @@ -385483,7 +385483,7 @@ _081365E4: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08136608 bl SetVBlankCallback ldr r1, [r4] @@ -385771,7 +385771,7 @@ _08136824: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, [r5] adds r1, 0x50 ldrb r0, [r1] @@ -385889,7 +385889,7 @@ _0813694C: negs r0, r0 movs r1, 0x10 movs r2, 0 - bl sub_8074B3C + bl BlendPalettes b _08136982 _0813695A: movs r1, 0x80 @@ -385910,7 +385910,7 @@ _0813696C: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _08136982: ldr r0, _08136994 ldr r1, [r0] @@ -386148,7 +386148,7 @@ _08136B6E: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08136B9C _08136B80: ldr r0, _08136B94 @@ -391110,7 +391110,7 @@ sub_81393EC: @ 81393EC str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813941C ldr r2, _08139420 ldrb r0, [r2] @@ -392111,7 +392111,7 @@ sub_8139BB8: @ 8139BB8 movs r0, 0x5 bl sub_8074D28 movs r0, 0x3 - bl sub_80744B0 + bl BeginFastPaletteFade bl dp01_tbl5_exec_completed ldr r0, _08139C08 ldrh r1, [r0] @@ -395606,7 +395606,7 @@ sub_813B784: @ 813B784 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813B784 @@ -395617,7 +395617,7 @@ CB2_813B798: @ 813B798 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _0813B7C8 ldrh r0, [r0, 0x2E] cmp r0, 0 @@ -395654,7 +395654,7 @@ _0813B7E8: .4byte 0x03005ed0 thumb_func_start CB2_813B7EC CB2_813B7EC: @ 813B7EC push {lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0813B7FE @@ -395789,7 +395789,7 @@ _0813B890: ldr r0, _0813B998 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 @@ -395806,7 +395806,7 @@ _0813B890: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813B9A0 movs r2, 0xE0 lsls r2, 3 @@ -395837,7 +395837,7 @@ _0813B890: ldr r0, _0813B9B8 bl GameCubeMultiBoot_Init _0813B962: - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _0813B9BC ldr r2, _0813B9C0 adds r0, r2 @@ -395879,7 +395879,7 @@ _0813B9C4: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] @@ -395887,7 +395887,7 @@ _0813B9C4: .align 2, 0 _0813B9EC: .4byte 0x03005ee0 _0813B9F0: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _0813BA38 @@ -396187,7 +396187,7 @@ task_intro_2: @ 813BC8C movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0813BCE0 bl SetVBlankCallback movs r1, 0x80 @@ -396444,7 +396444,7 @@ _0813BEAC: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813BEE4 lsls r0, r4, 2 adds r0, r4 @@ -396614,7 +396614,7 @@ _0813BFDA: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _0813C078 bl SetVBlankCallback movs r1, 0x80 @@ -396665,7 +396665,7 @@ sub_813C080: @ 813C080 movs r1, 0x10 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813C1C8 lsls r0, r4, 2 adds r0, r4 @@ -396902,7 +396902,7 @@ task_intro_10: @ 813C230 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813C2D8 ldr r2, _0813C2DC adds r0, r2, 0 @@ -396999,7 +396999,7 @@ _0813C330: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0813C36E: add sp, 0x4 pop {r4,r5} @@ -397526,7 +397526,7 @@ _0813C790: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0813C7AE: mov r3, r8 ldr r1, [r3] @@ -397885,7 +397885,7 @@ _0813CA88: movs r1, 0x4 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade _0813CAA4: mov r3, r8 ldr r1, [r3] @@ -397995,7 +397995,7 @@ _0813CB60: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813CBB4 ldr r2, _0813CBB8 adds r0, r2, 0 @@ -398041,7 +398041,7 @@ _0813CBC4: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813CC18 ldr r2, _0813CC1C adds r0, r2, 0 @@ -398087,7 +398087,7 @@ _0813CC28: movs r1, 0x5 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813CC9C ldr r2, _0813CCA0 adds r0, r2, 0 @@ -400762,7 +400762,7 @@ _0813DF54: movs r1, 0 movs r2, 0x10 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade mov r2, r8 strh r2, [r7, 0x2E] b _0813E0F8 @@ -402724,7 +402724,7 @@ sub_813EEE4: @ 813EEE4 str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade add sp, 0x4 pop {r4} pop {r0} @@ -402743,7 +402743,7 @@ sub_813EFB0: @ 813EFB0 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_813EFB0 @@ -402754,7 +402754,7 @@ sub_813EFC4: @ 813EFC4 bl sub_813EFDC bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_813EFC4 @@ -402838,7 +402838,7 @@ _0813F078: str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _0813F098 ldr r2, _0813F09C adds r1, r2 @@ -403659,7 +403659,7 @@ _0813F732: ldrb r2, [r4, 0xC] ldr r3, _0813F758 movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0x10 @@ -403687,7 +403687,7 @@ _0813F76A: ldrb r2, [r4, 0xC] ldr r3, _0813F794 movs r1, 0x1 - bl pal_fade_1 + bl BlendPalette movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 @@ -405452,7 +405452,7 @@ _08140502: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _0814058C .align 2, 0 _08140548: .4byte 0x04000050 @@ -407246,7 +407246,7 @@ sub_8141314: @ 8141314 ldrh r3, [r1] movs r1, 0x10 movs r2, 0 - bl pal_fade_1 + bl BlendPalette movs r0, 0x1 strh r0, [r5, 0xA] b _081413AA @@ -407266,7 +407266,7 @@ _08141384: ldrh r3, [r1] movs r1, 0x10 movs r2, 0x10 - bl pal_fade_1 + bl BlendPalette movs r0, 0x10 strh r0, [r5, 0x8] ldr r0, _081413D0 @@ -407280,7 +407280,7 @@ _081413AA: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade mov r0, r8 add sp, 0x4 pop {r3,r4} @@ -407328,7 +407328,7 @@ sub_81413DC: @ 81413DC adds r1, r3 ldrh r3, [r1] movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 @@ -407356,7 +407356,7 @@ _08141434: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade adds r0, r5, 0 bl DestroyTask _0814145C: @@ -407395,7 +407395,7 @@ sub_814146C: @ 814146C movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081414B8 str r0, [r4] _081414A4: @@ -407440,7 +407440,7 @@ sub_81414BC: @ 81414BC adds r1, r3 ldrh r3, [r1] movs r1, 0x10 - bl pal_fade_1 + bl BlendPalette ldrh r0, [r4, 0xA] ldrh r1, [r4, 0x8] adds r0, r1 @@ -408630,7 +408630,7 @@ sub_8141E38: @ 8141E38 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8141E38 @@ -408641,7 +408641,7 @@ sub_8141E4C: @ 8141E4C bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8141E4C @@ -408696,7 +408696,7 @@ _08141EC6: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08141F04 bl SetVBlankCallback ldr r3, _08141F08 @@ -408753,7 +408753,7 @@ _08141F4C: .4byte 0x00003f42 _08141F50: .4byte 0x03001770 _08141F54: .4byte 0x0000043c _08141F58: - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _08141F7C ldrb r1, [r0, 0x7] movs r0, 0x80 @@ -409492,7 +409492,7 @@ _081424C4: movs r1, 0 movs r2, 0xC movs r3, 0xC - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0 ldrsh r1, [r6, r0] lsls r0, r1, 4 @@ -409547,7 +409547,7 @@ sub_8142570: @ 8142570 str r1, [sp] movs r2, 0 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r3, 0 lsls r1, r4, 2 adds r0, r1, r4 @@ -409695,7 +409695,7 @@ _08142698: movs r1, 0 movs r2, 0xC movs r3, 0xC - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0 movs r1, 0xE movs r2, 0x1D @@ -409922,7 +409922,7 @@ sub_8142850: @ 8142850 movs r1, 0x8 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08142898 lsls r0, r4, 2 adds r0, r4 @@ -410071,7 +410071,7 @@ _081429BC: .4byte 0x0000043c _081429C0: bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade bl sub_80C5DCC lsls r0, 24 cmp r0, 0 @@ -410393,7 +410393,7 @@ _08142C3C: ldr r0, _08142CB0 ldr r2, _08142CB4 movs r1, 0xC - bl sub_8074B3C + bl BlendPalettes ldr r3, _08142CB8 ldr r1, _08142CBC adds r0, r3, 0 @@ -410545,7 +410545,7 @@ _08142D36: str r0, [r2] ldr r2, _08142DE8 movs r1, 0xC - bl sub_8074B78 + bl BlendPalettesUnfaded movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 2 @@ -411502,7 +411502,7 @@ _0814350A: orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _0814356C movs r1, 0 movs r2, 0x20 @@ -412023,7 +412023,7 @@ sub_8143948: @ 8143948 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8143948 @@ -412034,7 +412034,7 @@ sub_814395C: @ 814395C bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _081439B8 ldrh r1, [r0, 0x2C] movs r0, 0x2 @@ -412060,7 +412060,7 @@ sub_814395C: @ 814395C bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r1, _081439CC movs r0, 0x1 strb r0, [r1] @@ -412086,7 +412086,7 @@ sub_81439D0: @ 81439D0 bl sub_8144130 movs r0, 0 bl SetVBlankCallback - bl sub_8073B94 + bl ResetPaletteFade bl ResetTasks ldr r0, _08143AF0 movs r1, 0 @@ -412163,7 +412163,7 @@ _08143A0E: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _08143B14 ldrh r2, [r3] mov r0, r8 @@ -412302,7 +412302,7 @@ _08143BA4: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08143BD0 b _08143BEE .align 2, 0 @@ -412319,7 +412319,7 @@ _08143BD4: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08143BF8 _08143BEE: str r0, [r4] @@ -412394,7 +412394,7 @@ c2_080C9BFC: @ 8143C40 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _08143CAC ldrh r2, [r3] strh r4, [r3] @@ -412619,7 +412619,7 @@ _08143E0C: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08143EA8 strh r5, [r0] ldr r1, _08143EAC @@ -412687,7 +412687,7 @@ _08143EE4: movs r1, 0xC movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08143F00 str r0, [r4] _08143EF8: @@ -412737,7 +412737,7 @@ sub_8143F3C: @ 8143F3C lsls r5, 24 lsrs r5, 24 bl sub_8144130 - bl sub_8073B94 + bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 @@ -412752,7 +412752,7 @@ sub_8143F3C: @ 8143F3C movs r1, 0x8 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08143FC4 movs r2, 0xE0 lsls r2, 3 @@ -412829,7 +412829,7 @@ _08144004: movs r1, 0x6 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08144020 str r0, [r4] _08144018: @@ -412865,7 +412865,7 @@ sub_8144024: @ 8144024 movs r1, 0 movs r2, 0 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08144078 lsls r0, r5, 2 adds r0, r5 @@ -412922,7 +412922,7 @@ _081440AE: movs r1, 0x8 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081440DC str r0, [r4] b _08144104 @@ -413235,7 +413235,7 @@ _0814433A: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08144446 .align 2, 0 _08144348: .4byte 0x00001967 @@ -413327,7 +413327,7 @@ _081443E6: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade b _08144446 .align 2, 0 _081443F4: .4byte 0x00001967 @@ -416576,7 +416576,7 @@ sub_8145D74: @ 8145D74 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8145D74 @@ -416655,7 +416655,7 @@ sub_8145D88: @ 8145D88 bl remove_some_task bl ResetTasks bl ResetSpriteData - bl sub_8073B94 + bl ResetPaletteFade bl FreeAllSpritePalettes ldr r0, _08145ED0 movs r1, 0 @@ -416672,7 +416672,7 @@ sub_8145D88: @ 8145D88 movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _08145EDC ldrh r2, [r3] strh r5, [r3] @@ -416742,7 +416742,7 @@ sub_8145EFC: @ 8145EFC bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8145EFC @@ -416792,7 +416792,7 @@ sub_8145F44: @ 8145F44 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08145F84 lsls r0, r4, 2 adds r0, r4 @@ -416881,7 +416881,7 @@ sub_8146014: @ 8146014 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8146014 @@ -416897,7 +416897,7 @@ sub_814602C: @ 814602C strh r1, [r0] bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 .align 2, 0 @@ -416953,7 +416953,7 @@ _081460B4: .align 2, 0 _081460C8: .4byte 0x04000050 _081460CC: - bl sub_8073B94 + bl ResetPaletteFade ldr r2, _081460E4 ldrb r0, [r2, 0x8] movs r1, 0x80 @@ -417115,7 +417115,7 @@ _08146224: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _08146248 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -417386,7 +417386,7 @@ sub_8146440: @ 8146440 str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08146478 lsls r0, r4, 2 adds r0, r4 @@ -417986,7 +417986,7 @@ sub_8146900: @ 8146900 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8146900 @@ -418039,7 +418039,7 @@ CB2_InitMysteryEventMenu: @ 8146930 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade movs r0, 0 movs r1, 0 movs r2, 0x2 @@ -418487,7 +418487,7 @@ _08146D6C: movs r2, 0 movs r3, 0x10 _08146D78: - bl pal_fade_maybe + bl BeginNormalPaletteFade _08146D7C: ldr r1, _08146D8C ldr r0, _08146D90 @@ -418540,7 +418540,7 @@ _08146DE4: bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl fade_and_return_progress_probably + bl UpdatePaletteFade add sp, 0x8 pop {r4-r6} pop {r0} @@ -418580,7 +418580,7 @@ sub_8146E3C: @ 8146E3C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8146E3C @@ -418676,7 +418676,7 @@ _08146E6C: bl LZ77UnCompVram bl ResetSpriteData bl ResetTasks - bl sub_8073B94 + bl ResetPaletteFade ldr r0, _08146FEC movs r1, 0 movs r2, 0x40 @@ -418710,7 +418710,7 @@ _08146E6C: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r3, _08147000 ldrh r2, [r3] strh r4, [r3] @@ -418775,7 +418775,7 @@ _08147010: .4byte 0x00000703 _08147014: .4byte 0x00000602 _08147018: .4byte 0x00001f08 _0814701C: - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _08147032 @@ -418970,7 +418970,7 @@ sub_81471A4: @ 81471A4 str r2, [sp] movs r1, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081471E4 bl SetVBlankCallback ldr r0, _081471E8 @@ -418989,7 +418989,7 @@ _081471E8: .4byte sub_81471EC thumb_func_start sub_81471EC sub_81471EC: @ 81471EC push {r4,r5,lr} - bl fade_and_return_progress_probably + bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -419833,7 +419833,7 @@ sub_8147890: @ 8147890 bl AnimateSprites bl BuildOamBuffer bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8147890 @@ -419843,7 +419843,7 @@ sub_81478A8: @ 81478A8 push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81478A8 @@ -419897,7 +419897,7 @@ _0814791C: _08147930: .4byte 0x03001770 _08147934: .4byte 0x0000043c _08147938: - bl sub_8073B94 + bl ResetPaletteFade ldr r2, _08147948 ldrb r0, [r2, 0x8] movs r1, 0x80 @@ -420060,7 +420060,7 @@ _08147A8C: str r1, [sp] movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _08147AC8 ldrb r1, [r2, 0x8] movs r0, 0x7F @@ -420638,7 +420638,7 @@ sub_8147F4C: @ 8147F4C str r1, [sp] movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r1, _08147F7C lsls r0, r4, 2 adds r0, r4 @@ -421676,7 +421676,7 @@ sub_814881C: @ 814881C push {lr} bl LoadOam bl ProcessSpriteCopyRequests - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_814881C @@ -421821,7 +421821,7 @@ _08148950: .4byte sub_8148B34 sub_8148954: @ 8148954 push {lr} bl RunTasks - bl fade_and_return_progress_probably + bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_8148954 @@ -421829,7 +421829,7 @@ sub_8148954: @ 8148954 thumb_func_start sub_8148964 sub_8148964: @ 8148964 push {lr} - bl copy_pal_bg_faded_to_pal_ram + bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8148964 @@ -421904,7 +421904,7 @@ _08148986: ldr r0, _08148ABC str r0, [r1, 0x8] ldr r0, [r1, 0x8] - bl sub_8073B94 + bl ResetPaletteFade ldr r2, _08148AC0 ldr r0, _08148AC4 strh r0, [r2] @@ -421952,7 +421952,7 @@ _08148A2C: movs r1, 0 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r2, _08148AEC ldrh r1, [r2] movs r0, 0 @@ -422010,7 +422010,7 @@ _08148AF8: .4byte sub_8148964 _08148AFC: .4byte 0x0400000e _08148B00: .4byte 0x00000703 _08148B04: - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _08148B20 ldrb r1, [r0, 0x7] movs r0, 0x80 @@ -422053,7 +422053,7 @@ _08148B48: movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade movs r0, 0x1 strb r0, [r4] b _08148B80 @@ -422062,7 +422062,7 @@ _08148B60: .4byte 0x03001770 _08148B64: .4byte 0x0000043c _08148B68: .4byte 0x0000ffff _08148B6C: - bl fade_and_return_progress_probably + bl UpdatePaletteFade ldr r0, _08148B88 ldrb r1, [r0, 0x7] movs r0, 0x80 @@ -423868,7 +423868,7 @@ sub_81499A0: @ 81499A0 movs r1, 0xA movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _081499EC str r0, [r5] movs r0, 0x8C @@ -424242,7 +424242,7 @@ sub_8149C50: @ 8149C50 movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08149CAC str r0, [r5] movs r0, 0xCA @@ -424307,7 +424307,7 @@ _08149D00: movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _08149D10: ldr r0, _08149D28 adds r1, r5, r6 @@ -424403,7 +424403,7 @@ sub_8149D8C: @ 8149D8C movs r1, 0 movs r2, 0 movs r3, 0x10 - bl pal_fade_maybe + bl BeginNormalPaletteFade ldr r0, _08149DE8 str r0, [r5] movs r0, 0xCA @@ -424468,7 +424468,7 @@ _08149E3C: movs r1, 0x10 movs r2, 0x10 movs r3, 0 - bl pal_fade_maybe + bl BeginNormalPaletteFade _08149E4C: ldr r0, _08149E64 adds r1, r5, r6 diff --git a/asm/rom_8074BAC.s b/asm/rom_8074BAC.s new file mode 100644 index 000000000..bcf480dc6 --- /dev/null +++ b/asm/rom_8074BAC.s @@ -0,0 +1,12466 @@ + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sound_sources_off +sound_sources_off: @ 8074BAC + push {lr} + ldr r1, _08074BBC + movs r0, 0 + strb r0, [r1] + bl map_music_set_to_zero + pop {r0} + bx r0 + .align 2, 0 +_08074BBC: .4byte 0x03004aec + thumb_func_end sound_sources_off + + thumb_func_start sound_something +sound_something: @ 8074BC0 + push {r4,r5,lr} + ldr r0, _08074BD8 + ldrb r1, [r0] + adds r2, r0, 0 + cmp r1, 0x7 + bhi _08074CA2 + lsls r0, r1, 2 + ldr r1, _08074BDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08074BD8: .4byte 0x030006d8 +_08074BDC: .4byte _08074BE0 + .align 2, 0 +_08074BE0: + .4byte _08074CA2 + .4byte _08074C00 + .4byte _08074CA2 + .4byte _08074CA2 + .4byte _08074CA2 + .4byte _08074C14 + .4byte _08074C34 + .4byte _08074C70 +_08074C00: + movs r0, 0x2 + strb r0, [r2] + ldr r0, _08074C10 + ldrh r0, [r0] + bl sub_8075474 + b _08074CA2 + .align 2, 0 +_08074C10: .4byte 0x030006d4 +_08074C14: + bl sub_8075028 + lsls r0, 24 + cmp r0, 0 + beq _08074CA2 + ldr r0, _08074C2C + movs r1, 0 + strh r1, [r0] + ldr r0, _08074C30 + strb r1, [r0] + b _08074CA2 + .align 2, 0 +_08074C2C: .4byte 0x030006d6 +_08074C30: .4byte 0x030006d8 +_08074C34: + bl sub_8075028 + lsls r0, 24 + cmp r0, 0 + beq _08074CA2 + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + beq _08074CA2 + ldr r2, _08074C64 + ldr r1, _08074C68 + ldrh r0, [r1] + strh r0, [r2] + movs r0, 0 + strh r0, [r1] + ldr r1, _08074C6C + movs r0, 0x2 + strb r0, [r1] + ldrh r0, [r2] + bl sub_8075474 + b _08074CA2 + .align 2, 0 +_08074C64: .4byte 0x030006d4 +_08074C68: .4byte 0x030006d6 +_08074C6C: .4byte 0x030006d8 +_08074C70: + bl sub_8075028 + lsls r0, 24 + cmp r0, 0 + beq _08074CA2 + bl task_is_not_running_overworld_fanfare + lsls r0, 24 + cmp r0, 0 + beq _08074CA2 + ldr r4, _08074CA8 + ldrh r0, [r4] + ldr r5, _08074CAC + ldrb r1, [r5] + bl sub_8074F6C + ldr r1, _08074CB0 + ldrh r0, [r4] + strh r0, [r1] + movs r2, 0 + strh r2, [r4] + ldr r1, _08074CB4 + movs r0, 0x2 + strb r0, [r1] + strb r2, [r5] +_08074CA2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08074CA8: .4byte 0x030006d6 +_08074CAC: .4byte 0x030006d9 +_08074CB0: .4byte 0x030006d4 +_08074CB4: .4byte 0x030006d8 + thumb_func_end sound_something + + thumb_func_start map_music_set_to_zero +map_music_set_to_zero: @ 8074CB8 + ldr r0, _08074CCC + movs r1, 0 + strh r1, [r0] + ldr r0, _08074CD0 + strh r1, [r0] + ldr r0, _08074CD4 + strb r1, [r0] + ldr r0, _08074CD8 + strb r1, [r0] + bx lr + .align 2, 0 +_08074CCC: .4byte 0x030006d4 +_08074CD0: .4byte 0x030006d6 +_08074CD4: .4byte 0x030006d8 +_08074CD8: .4byte 0x030006d9 + thumb_func_end map_music_set_to_zero + + thumb_func_start current_map_music_get +current_map_music_get: @ 8074CDC + ldr r0, _08074CE4 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08074CE4: .4byte 0x030006d4 + thumb_func_end current_map_music_get + + thumb_func_start current_map_music_set +current_map_music_set: @ 8074CE8 + ldr r1, _08074CFC + strh r0, [r1] + ldr r1, _08074D00 + movs r0, 0 + strh r0, [r1] + ldr r1, _08074D04 + movs r0, 0x1 + strb r0, [r1] + bx lr + .align 2, 0 +_08074CFC: .4byte 0x030006d4 +_08074D00: .4byte 0x030006d6 +_08074D04: .4byte 0x030006d8 + thumb_func_end current_map_music_set + + thumb_func_start sub_8074D08 +sub_8074D08: @ 8074D08 + ldr r0, _08074D1C + movs r1, 0 + strh r1, [r0] + ldr r0, _08074D20 + strh r1, [r0] + ldr r1, _08074D24 + movs r0, 0x1 + strb r0, [r1] + bx lr + .align 2, 0 +_08074D1C: .4byte 0x030006d4 +_08074D20: .4byte 0x030006d6 +_08074D24: .4byte 0x030006d8 + thumb_func_end sub_8074D08 + + thumb_func_start sub_8074D28 +sub_8074D28: @ 8074D28 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8074E14 + lsls r0, 24 + cmp r0, 0 + beq _08074D3E + adds r0, r4, 0 + bl play_sound_effect +_08074D3E: + ldr r0, _08074D54 + movs r1, 0 + strh r1, [r0] + ldr r0, _08074D58 + strh r1, [r0] + ldr r1, _08074D5C + movs r0, 0x5 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074D54: .4byte 0x030006d4 +_08074D58: .4byte 0x030006d6 +_08074D5C: .4byte 0x030006d8 + thumb_func_end sub_8074D28 + + thumb_func_start sub_8074D60 +sub_8074D60: @ 8074D60 + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + bl sub_8074D28 + ldr r1, _08074D88 + movs r0, 0 + strh r0, [r1] + ldr r0, _08074D8C + strh r4, [r0] + ldr r1, _08074D90 + movs r0, 0x6 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074D88: .4byte 0x030006d4 +_08074D8C: .4byte 0x030006d6 +_08074D90: .4byte 0x030006d8 + thumb_func_end sub_8074D60 + + thumb_func_start sub_8074D94 +sub_8074D94: @ 8074D94 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 24 + lsrs r5, 24 + bl sub_8074D28 + ldr r1, _08074DC8 + movs r0, 0 + strh r0, [r1] + ldr r0, _08074DCC + strh r4, [r0] + ldr r1, _08074DD0 + movs r0, 0x7 + strb r0, [r1] + ldr r0, _08074DD4 + strb r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08074DC8: .4byte 0x030006d4 +_08074DCC: .4byte 0x030006d6 +_08074DD0: .4byte 0x030006d8 +_08074DD4: .4byte 0x030006d9 + thumb_func_end sub_8074D94 + + thumb_func_start unref_sub_8074DD8 +unref_sub_8074DD8: @ 8074DD8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8074F6C + ldr r0, _08074E04 + strh r4, [r0] + ldr r0, _08074E08 + movs r2, 0 + strh r2, [r0] + ldr r1, _08074E0C + movs r0, 0x2 + strb r0, [r1] + ldr r0, _08074E10 + strb r2, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074E04: .4byte 0x030006d4 +_08074E08: .4byte 0x030006d6 +_08074E0C: .4byte 0x030006d8 +_08074E10: .4byte 0x030006d9 + thumb_func_end unref_sub_8074DD8 + + thumb_func_start sub_8074E14 +sub_8074E14: @ 8074E14 + push {lr} + ldr r0, _08074E2C + ldrb r0, [r0] + cmp r0, 0x6 + beq _08074E30 + cmp r0, 0x5 + beq _08074E30 + cmp r0, 0x7 + beq _08074E30 + movs r0, 0x1 + b _08074E32 + .align 2, 0 +_08074E2C: .4byte 0x030006d8 +_08074E30: + movs r0, 0 +_08074E32: + pop {r1} + bx r1 + thumb_func_end sub_8074E14 + + thumb_func_start pause_music_for_sound_maybe +pause_music_for_sound_maybe: @ 8074E38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08074E60 + bl m4aMPlayStop + ldr r0, _08074E64 + lsls r4, 2 + adds r4, r0 + ldrh r0, [r4] + ldr r2, _08074E68 + ldrh r1, [r4, 0x2] + strh r1, [r2] + bl m4aSongNumStart + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074E60: .4byte 0x03007380 +_08074E64: .4byte gUnknown_0837DEF4 +_08074E68: .4byte 0x030006da + thumb_func_end pause_music_for_sound_maybe + + thumb_func_start ducking_tick +ducking_tick: @ 8074E6C + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r2, _08074E84 + ldrh r0, [r2] + cmp r0, 0 + beq _08074E88 + subs r0, 0x1 + strh r0, [r2] + movs r0, 0 + b _08074EA0 + .align 2, 0 +_08074E84: .4byte 0x030006da +_08074E88: + cmp r1, 0 + bne _08074E98 + ldr r0, _08074E94 + bl m4aMPlayContinue + b _08074E9E + .align 2, 0 +_08074E94: .4byte 0x03007380 +_08074E98: + movs r0, 0 + bl m4aSongNumStart +_08074E9E: + movs r0, 0x1 +_08074EA0: + pop {r1} + bx r1 + thumb_func_end ducking_tick + + thumb_func_start unref_sub_8074EA4 +unref_sub_8074EA4: @ 8074EA4 + push {lr} + lsls r0, 24 + ldr r1, _08074EB8 + lsrs r0, 22 + adds r0, r1 + ldrh r0, [r0] + bl m4aSongNumStop + pop {r0} + bx r0 + .align 2, 0 +_08074EB8: .4byte gUnknown_0837DEF4 + thumb_func_end unref_sub_8074EA4 + + thumb_func_start fanfare_play +fanfare_play: @ 8074EBC + push {lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r1, 0 + ldr r2, _08074EDC +_08074EC6: + ldrh r0, [r2] + cmp r0, r3 + bne _08074EE0 + lsls r0, r1, 24 + lsrs r0, 24 + bl pause_music_for_sound_maybe + bl task_add_50_overworld_fanfare_if_not_running + b _08074EF2 + .align 2, 0 +_08074EDC: .4byte gUnknown_0837DEF4 +_08074EE0: + adds r2, 0x4 + adds r1, 0x1 + cmp r1, 0xB + bls _08074EC6 + movs r0, 0 + bl pause_music_for_sound_maybe + bl task_add_50_overworld_fanfare_if_not_running +_08074EF2: + pop {r0} + bx r0 + thumb_func_end fanfare_play + + thumb_func_start task_is_not_running_overworld_fanfare +task_is_not_running_overworld_fanfare: @ 8074EF8 + push {lr} + ldr r0, _08074F0C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08074F10 + movs r0, 0x1 + b _08074F12 + .align 2, 0 +_08074F0C: .4byte task50_overworld_fanfare +_08074F10: + movs r0, 0 +_08074F12: + pop {r1} + bx r1 + thumb_func_end task_is_not_running_overworld_fanfare + + thumb_func_start task50_overworld_fanfare +task50_overworld_fanfare: @ 8074F18 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08074F2C + ldrh r0, [r1] + cmp r0, 0 + beq _08074F30 + subs r0, 0x1 + strh r0, [r1] + b _08074F3C + .align 2, 0 +_08074F2C: .4byte 0x030006da +_08074F30: + ldr r0, _08074F44 + bl m4aMPlayContinue + adds r0, r4, 0 + bl DestroyTask +_08074F3C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074F44: .4byte 0x03007380 + thumb_func_end task50_overworld_fanfare + + thumb_func_start task_add_50_overworld_fanfare_if_not_running +task_add_50_overworld_fanfare_if_not_running: @ 8074F48 + push {r4,lr} + ldr r4, _08074F68 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08074F62 + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask +_08074F62: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08074F68: .4byte task50_overworld_fanfare + thumb_func_end task_add_50_overworld_fanfare_if_not_running + + thumb_func_start sub_8074F6C +sub_8074F6C: @ 8074F6C + push {r4-r6,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r0, _08074FAC + ldrb r0, [r0] + cmp r0, 0 + beq _08074F80 + movs r5, 0 +_08074F80: + adds r0, r5, 0 + bl m4aSongNumStart + ldr r4, _08074FB0 + adds r0, r4, 0 + bl m4aMPlayImmInit + ldr r1, _08074FB4 + adds r0, r4, 0 + movs r2, 0 + bl m4aMPlayVolumeControl + adds r0, r5, 0 + bl m4aSongNumStop + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_81DE0F0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08074FAC: .4byte 0x03004aec +_08074FB0: .4byte 0x03007380 +_08074FB4: .4byte 0x0000ffff + thumb_func_end sub_8074F6C + + thumb_func_start sub_8074FB8 +sub_8074FB8: @ 8074FB8 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08074FCC + bl sub_81DE0D0 + pop {r0} + bx r0 + .align 2, 0 +_08074FCC: .4byte 0x03007380 + thumb_func_end sub_8074FB8 + + thumb_func_start sub_8074FD0 +sub_8074FD0: @ 8074FD0 + push {lr} + ldr r0, _08074FE8 + ldr r1, [r0, 0x4] + cmp r1, 0 + blt _08074FF0 + ldr r0, _08074FEC + ands r1, r0 + cmp r1, 0 + beq _08074FF0 + movs r0, 0 + b _08074FF2 + .align 2, 0 +_08074FE8: .4byte 0x03007380 +_08074FEC: .4byte 0x0000ffff +_08074FF0: + movs r0, 0x1 +_08074FF2: + pop {r1} + bx r1 + thumb_func_end sub_8074FD0 + + thumb_func_start sub_8074FF8 +sub_8074FF8: @ 8074FF8 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _0807500C + bl sub_81DE0F0 + pop {r0} + bx r0 + .align 2, 0 +_0807500C: .4byte 0x03007380 + thumb_func_end sub_8074FF8 + + thumb_func_start play_sound_effect +play_sound_effect: @ 8075010 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08075024 + bl m4aMPlayFadeOut + pop {r0} + bx r0 + .align 2, 0 +_08075024: .4byte 0x03007380 + thumb_func_end play_sound_effect + + thumb_func_start sub_8075028 +sub_8075028: @ 8075028 + push {lr} + ldr r0, _08075038 + ldrh r0, [r0, 0x4] + cmp r0, 0 + beq _0807503C + movs r0, 0 + b _0807503E + .align 2, 0 +_08075038: .4byte 0x03007380 +_0807503C: + movs r0, 0x1 +_0807503E: + pop {r1} + bx r1 + thumb_func_end sub_8075028 + + thumb_func_start cry_related +cry_related: @ 8075044 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08075084 + ldr r1, _08075088 + movs r2, 0x55 + bl m4aMPlayVolumeControl + lsls r4, 24 + asrs r4, 24 + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80751C0 + ldr r1, _0807508C + movs r0, 0x2 + strb r0, [r1] + bl sub_8075450 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08075084: .4byte 0x03007380 +_08075088: .4byte 0x0000ffff +_0807508C: .4byte 0x0202f7a0 + thumb_func_end cry_related + + thumb_func_start sub_8075090 +sub_8075090: @ 8075090 + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r0, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r1, 24 + asrs r1, 24 + lsls r2, 24 + asrs r2, 24 + movs r4, 0 + str r4, [sp] + bl sub_80751C0 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8075090 + + thumb_func_start sub_80750B4 +sub_80750B4: @ 80750B4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + cmp r4, 0x1 + bne _080750DA + lsls r1, r5, 24 + asrs r1, 24 + str r4, [sp] + adds r0, r6, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80751C0 + b _080750FE +_080750DA: + ldr r0, _08075108 + ldr r1, _0807510C + movs r2, 0x55 + bl m4aMPlayVolumeControl + lsls r1, r5, 24 + asrs r1, 24 + str r4, [sp] + adds r0, r6, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80751C0 + ldr r1, _08075110 + movs r0, 0x2 + strb r0, [r1] + bl sub_8075450 +_080750FE: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075108: .4byte 0x03007380 +_0807510C: .4byte 0x0000ffff +_08075110: .4byte 0x0202f7a0 + thumb_func_end sub_80750B4 + + thumb_func_start sub_8075114 +sub_8075114: @ 8075114 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r0, 16 + adds r6, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + lsls r2, 24 + lsrs r2, 24 + adds r4, r2, 0 + cmp r2, 0x1 + bne _0807513E + lsls r1, 24 + asrs r1, 24 + str r2, [sp] + movs r2, 0x7D + movs r3, 0xA + bl sub_80751C0 + b _08075164 +_0807513E: + ldr r0, _0807516C + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08075154 + ldr r0, _08075170 + ldr r1, _08075174 + movs r2, 0x55 + bl m4aMPlayVolumeControl +_08075154: + lsls r1, r5, 24 + asrs r1, 24 + str r4, [sp] + adds r0, r6, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80751C0 +_08075164: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807516C: .4byte 0x020239f8 +_08075170: .4byte 0x03007380 +_08075174: .4byte 0x0000ffff + thumb_func_end sub_8075114 + + thumb_func_start sub_8075178 +sub_8075178: @ 8075178 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080751B4 + ldr r1, _080751B8 + movs r2, 0x55 + bl m4aMPlayVolumeControl + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x7D + movs r3, 0xA + bl sub_80751C0 + ldr r1, _080751BC + movs r0, 0x2 + strb r0, [r1] + bl sub_8075450 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080751B4: .4byte 0x03007380 +_080751B8: .4byte 0x0000ffff +_080751BC: .4byte 0x0202f7a0 + thumb_func_end sub_8075178 + + thumb_func_start sub_80751C0 +sub_80751C0: @ 80751C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, [sp, 0x28] + lsls r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0807520C + adds r0, r1 + lsrs r0, 16 + mov r8, r0 + movs r0, 0 + mov r9, r0 + movs r6, 0 + movs r7, 0x8C + movs r5, 0xF0 + lsls r5, 6 + movs r1, 0 + str r1, [sp, 0x4] + cmp r4, 0x5 + bhi _08075260 + lsls r0, r4, 2 + ldr r1, _08075210 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807520C: .4byte 0xffff0000 +_08075210: .4byte _08075214 + .align 2, 0 +_08075214: + .4byte _08075260 + .4byte _0807522C + .4byte _08075232 + .4byte _08075244 + .4byte _08075250 + .4byte _0807525C +_0807522C: + movs r7, 0x14 + movs r6, 0xE1 + b _08075260 +_08075232: + movs r7, 0x1E + movs r6, 0xE1 + ldr r5, _08075240 + movs r2, 0x14 + str r2, [sp, 0x4] + movs r2, 0x50 + b _08075260 + .align 2, 0 +_08075240: .4byte 0x00003cf0 +_08075244: + movs r7, 0x32 + movs r6, 0xC8 + ldr r5, _0807524C + b _08075260 + .align 2, 0 +_0807524C: .4byte 0x000039d0 +_08075250: + movs r7, 0x14 + movs r6, 0xDC + ldr r5, _08075258 + b _08075260 + .align 2, 0 +_08075258: .4byte 0x00003db8 +_0807525C: + movs r6, 0xC8 + ldr r5, _080752B8 +_08075260: + adds r0, r2, 0 + bl sub_81DF50C + mov r1, r10 + lsls r0, r1, 24 + asrs r0, 24 + bl sub_81DF520 + adds r0, r5, 0 + bl sub_81DF538 + adds r0, r7, 0 + bl sub_81DF570 + movs r0, 0 + bl sub_81DF588 + adds r0, r6, 0 + bl sub_81DF57C + ldr r0, [sp, 0x4] + bl sub_81DF5AC + ldr r0, [sp] + bl sub_81DF618 + mov r0, r8 + bl speciesid_conv + mov r8, r0 + movs r1, 0x7F + mov r2, r8 + ands r1, r2 + lsrs r0, r2, 7 + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + cmp r0, 0x1 + beq _080752EC + cmp r0, 0x1 + bgt _080752BC + cmp r0, 0 + beq _080752C6 + b _0807535A + .align 2, 0 +_080752B8: .4byte 0x000038a4 +_080752BC: + cmp r2, 0x2 + beq _08075310 + cmp r2, 0x3 + beq _08075334 + b _0807535A +_080752C6: + mov r0, r9 + cmp r0, 0 + beq _080752DC + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080752D8 + b _08075350 + .align 2, 0 +_080752D8: .4byte gUnknown_084537C0 +_080752DC: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080752E8 + b _08075350 + .align 2, 0 +_080752E8: .4byte gUnknown_08452590 +_080752EC: + mov r2, r9 + cmp r2, 0 + beq _08075300 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080752FC + b _08075350 + .align 2, 0 +_080752FC: .4byte gUnknown_08453DC0 +_08075300: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0807530C + b _08075350 + .align 2, 0 +_0807530C: .4byte gUnknown_08452B90 +_08075310: + mov r0, r9 + cmp r0, 0 + beq _08075324 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08075320 + b _08075350 + .align 2, 0 +_08075320: .4byte gUnknown_084543C0 +_08075324: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08075330 + b _08075350 + .align 2, 0 +_08075330: .4byte gUnknown_08453190 +_08075334: + mov r2, r9 + cmp r2, 0 + beq _08075348 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08075344 + b _08075350 + .align 2, 0 +_08075344: .4byte gUnknown_084549C0 +_08075348: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0807536C +_08075350: + adds r0, r1 + bl sub_81DF43C + ldr r1, _08075370 + str r0, [r1] +_0807535A: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807536C: .4byte gUnknown_08453790 +_08075370: .4byte 0x0202f79c + thumb_func_end sub_80751C0 + + thumb_func_start sub_8075374 +sub_8075374: @ 8075374 + push {lr} + ldr r0, _0807538C + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08075390 + bl ClearPokemonCrySongs + movs r0, 0x1 + b _08075392 + .align 2, 0 +_0807538C: .4byte sub_8075408 +_08075390: + movs r0, 0 +_08075392: + pop {r1} + bx r1 + thumb_func_end sub_8075374 + + thumb_func_start sub_8075398 +sub_8075398: @ 8075398 + push {lr} + ldr r0, _080753AC + ldr r0, [r0] + bl m4aMPlayStop + bl ClearPokemonCrySongs + pop {r0} + bx r0 + .align 2, 0 +_080753AC: .4byte 0x0202f79c + thumb_func_end sub_8075398 + + thumb_func_start sub_80753B0 +sub_80753B0: @ 80753B0 + push {lr} + ldr r0, _080753C0 + ldr r0, [r0] + bl m4aMPlayStop + pop {r0} + bx r0 + .align 2, 0 +_080753C0: .4byte 0x0202f79c + thumb_func_end sub_80753B0 + + thumb_func_start sub_80753C4 +sub_80753C4: @ 80753C4 + push {lr} + ldr r0, _080753DC + ldr r0, [r0] + bl sub_81DF594 + cmp r0, 0 + bne _080753E0 + bl ClearPokemonCrySongs + movs r0, 0 + b _080753E2 + .align 2, 0 +_080753DC: .4byte 0x0202f79c +_080753E0: + movs r0, 0x1 +_080753E2: + pop {r1} + bx r1 + thumb_func_end sub_80753C4 + + thumb_func_start sub_80753E8 +sub_80753E8: @ 80753E8 + push {lr} + ldr r0, _080753FC + ldr r0, [r0] + bl sub_81DF594 + cmp r0, 0 + bne _08075400 + movs r0, 0 + b _08075402 + .align 2, 0 +_080753FC: .4byte 0x0202f79c +_08075400: + movs r0, 0x1 +_08075402: + pop {r1} + bx r1 + thumb_func_end sub_80753E8 + + thumb_func_start sub_8075408 +sub_8075408: @ 8075408 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0807541C + ldrb r0, [r1] + cmp r0, 0 + beq _08075420 + subs r0, 0x1 + strb r0, [r1] + b _0807543E + .align 2, 0 +_0807541C: .4byte 0x0202f7a0 +_08075420: + ldr r0, _08075444 + ldr r0, [r0] + bl sub_81DF594 + cmp r0, 0 + bne _0807543E + ldr r0, _08075448 + ldr r1, _0807544C + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + adds r0, r4, 0 + bl DestroyTask +_0807543E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075444: .4byte 0x0202f79c +_08075448: .4byte 0x03007380 +_0807544C: .4byte 0x0000ffff + thumb_func_end sub_8075408 + + thumb_func_start sub_8075450 +sub_8075450: @ 8075450 + push {r4,lr} + ldr r4, _08075470 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0807546A + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask +_0807546A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075470: .4byte sub_8075408 + thumb_func_end sub_8075450 + + thumb_func_start sub_8075474 +sub_8075474: @ 8075474 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r0, _08075490 + ldrb r0, [r0] + cmp r0, 0 + beq _08075484 + movs r1, 0 +_08075484: + adds r0, r1, 0 + bl m4aSongNumStart + pop {r0} + bx r0 + .align 2, 0 +_08075490: .4byte 0x03004aec + thumb_func_end sub_8075474 + + thumb_func_start audio_play +audio_play: @ 8075494 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl m4aSongNumStart + pop {r0} + bx r0 + thumb_func_end audio_play + + thumb_func_start audio_play_and_stuff +audio_play_and_stuff: @ 80754A4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 24 + lsrs r4, 24 + bl m4aSongNumStart + ldr r6, _080754EC + adds r0, r6, 0 + bl m4aMPlayImmInit + ldr r0, _080754F0 + mov r8, r0 + bl m4aMPlayImmInit + ldr r5, _080754F4 + lsls r4, 24 + asrs r4, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080754EC: .4byte 0x030073c0 +_080754F0: .4byte 0x03007400 +_080754F4: .4byte 0x0000ffff + thumb_func_end audio_play_and_stuff + + thumb_func_start sub_80754F8 +sub_80754F8: @ 80754F8 + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 24 + lsrs r4, 24 + bl m4aSongNumStart + ldr r5, _08075524 + adds r0, r5, 0 + bl m4aMPlayImmInit + ldr r1, _08075528 + lsls r4, 24 + asrs r4, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08075524: .4byte 0x030073c0 +_08075528: .4byte 0x0000ffff + thumb_func_end sub_80754F8 + + thumb_func_start sub_807552C +sub_807552C: @ 807552C + push {r4,r5,lr} + adds r4, r1, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 24 + lsrs r4, 24 + bl m4aSongNumStart + ldr r5, _08075558 + adds r0, r5, 0 + bl m4aMPlayImmInit + ldr r1, _0807555C + lsls r4, 24 + asrs r4, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08075558: .4byte 0x03007400 +_0807555C: .4byte 0x0000ffff + thumb_func_end sub_807552C + + thumb_func_start sub_8075560 +sub_8075560: @ 8075560 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, _08075584 + ldr r5, _08075588 + lsls r4, 24 + asrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + ldr r0, _0807558C + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08075584: .4byte 0x030073c0 +_08075588: .4byte 0x0000ffff +_0807558C: .4byte 0x03007400 + thumb_func_end sub_8075560 + + thumb_func_start mplay_has_finished_maybe +mplay_has_finished_maybe: @ 8075590 + push {lr} + ldr r0, _080755C0 + ldr r1, [r0, 0x4] + movs r2, 0x80 + lsls r2, 24 + adds r3, r0, 0 + cmp r1, 0 + bge _080755AA + ldr r0, _080755C4 + ldr r0, [r0, 0x4] + ands r0, r2 + cmp r0, 0 + bne _080755BC +_080755AA: + ldr r1, _080755C8 + ldrh r0, [r3, 0x4] + cmp r0, 0 + bne _080755CC + ldr r0, _080755C4 + ldr r0, [r0, 0x4] + ands r0, r1 + cmp r0, 0 + bne _080755CC +_080755BC: + movs r0, 0 + b _080755CE + .align 2, 0 +_080755C0: .4byte 0x030073c0 +_080755C4: .4byte 0x03007400 +_080755C8: .4byte 0x0000ffff +_080755CC: + movs r0, 0x1 +_080755CE: + pop {r1} + bx r1 + thumb_func_end mplay_has_finished_maybe + + thumb_func_start sub_80755D4 +sub_80755D4: @ 80755D4 + push {lr} + ldr r0, _080755EC + ldr r1, [r0, 0x4] + cmp r1, 0 + blt _080755F4 + ldr r0, _080755F0 + ands r1, r0 + cmp r1, 0 + beq _080755F4 + movs r0, 0x1 + b _080755F6 + .align 2, 0 +_080755EC: .4byte 0x03007380 +_080755F0: .4byte 0x0000ffff +_080755F4: + movs r0, 0 +_080755F6: + pop {r1} + bx r1 + thumb_func_end sub_80755D4 + + thumb_func_start sub_80755FC +sub_80755FC: @ 80755FC + push {lr} + ldr r0, _08075614 + ldr r1, [r0, 0x4] + cmp r1, 0 + blt _0807561C + ldr r0, _08075618 + ands r1, r0 + cmp r1, 0 + beq _0807561C + movs r0, 0x1 + b _0807561E + .align 2, 0 +_08075614: .4byte 0x03007450 +_08075618: .4byte 0x0000ffff +_0807561C: + movs r0, 0 +_0807561E: + pop {r1} + bx r1 + thumb_func_end sub_80755FC + + thumb_func_start sub_8075624 +sub_8075624: @ 8075624 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080756B8 + movs r1, 0 + strb r1, [r0] + ldr r0, _080756BC + strb r1, [r0] + ldr r0, _080756C0 + strb r1, [r0] + ldr r0, _080756C4 + strb r1, [r0] + ldr r0, _080756C8 + movs r1, 0 + str r1, [r0] + ldr r0, _080756CC + str r1, [r0] + ldr r0, _080756D0 + movs r2, 0 + strh r1, [r0] + ldr r0, _080756D4 + strb r2, [r0] + ldr r4, _080756D8 + ldr r5, _080756DC + ldr r6, _080756E0 + ldr r7, _080756E4 + ldr r0, _080756E8 + mov r12, r0 + ldr r1, _080756EC + mov r8, r1 + ldr r0, _080756F0 + mov r9, r0 + ldr r1, _080756F4 + adds r3, r1, 0 + ldr r1, _080756F8 + movs r2, 0x7 +_0807566E: + ldrh r0, [r1] + orrs r0, r3 + strh r0, [r1] + adds r1, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _0807566E + ldr r1, _080756FC + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xE +_08075684: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _08075684 + movs r1, 0 + movs r0, 0xFF + strb r0, [r4] + movs r0, 0x1 + negs r0, r0 + strb r0, [r4, 0x1] + strb r1, [r5] + strb r1, [r6] + movs r0, 0 + strh r1, [r7] + mov r1, r12 + strb r0, [r1] + mov r1, r8 + strb r0, [r1] + mov r1, r9 + strb r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080756B8: .4byte 0x0202f7b0 +_080756BC: .4byte 0x0202f7b1 +_080756C0: .4byte 0x0202f7b2 +_080756C4: .4byte 0x0202f7b3 +_080756C8: .4byte 0x0202f7b4 +_080756CC: .4byte 0x0202f7b8 +_080756D0: .4byte 0x0202f7bc +_080756D4: .4byte 0x0202f7be +_080756D8: .4byte 0x0202f7c2 +_080756DC: .4byte 0x0202f7c4 +_080756E0: .4byte 0x0202f7c5 +_080756E4: .4byte 0x0202f7c6 +_080756E8: .4byte 0x0202f7c8 +_080756EC: .4byte 0x0202f7c9 +_080756F0: .4byte 0x0202f7d2 +_080756F4: .4byte 0x0000ffff +_080756F8: .4byte 0x03004b10 +_080756FC: .4byte 0x03004b00 + thumb_func_end sub_8075624 + + thumb_func_start move_anim_start_t1 +move_anim_start_t1: @ 8075700 + push {lr} + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _08075724 + ldr r0, _08075728 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, _0807572C + ldr r0, _08075730 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _08075734 + movs r2, 0x1 + bl move_something + pop {r0} + bx r0 + .align 2, 0 +_08075724: .4byte 0x0202f7c8 +_08075728: .4byte 0x02024c07 +_0807572C: .4byte 0x0202f7c9 +_08075730: .4byte 0x02024c08 +_08075734: .4byte gUnknown_081C7168 + thumb_func_end move_anim_start_t1 + + thumb_func_start move_something +move_something: @ 8075738 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + lsls r1, 16 + lsrs r1, 16 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080757D8 + bl sub_8079E24 + movs r0, 0 + bl sub_8043EB4 + movs r4, 0 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r6, _0807578C + movs r7, 0x64 + ldr r5, _08075790 +_08075774: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08075798 + ldrh r0, [r6] + muls r0, r7 + ldr r1, _08075794 + b _0807579E + .align 2, 0 +_0807578C: .4byte 0x02024a6a +_08075790: .4byte 0x0202f7ca +_08075794: .4byte 0x030045c0 +_08075798: + ldrh r0, [r6] + muls r0, r7 + ldr r1, _080757C0 +_0807579E: + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + strh r0, [r5] + adds r6, 0x2 + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _08075774 + ldr r3, _080757C4 + ldr r5, _080757C8 + ldr r1, _080757CC + mov r12, r1 + ldr r7, _080757D0 + ldr r6, _080757D4 + b _080757FC + .align 2, 0 +_080757C0: .4byte 0x03004360 +_080757C4: .4byte 0x0202f7c6 +_080757C8: .4byte 0x0202f7c2 +_080757CC: .4byte 0x0202f7b1 +_080757D0: .4byte 0x0202f7ac +_080757D4: .4byte sub_80759D0 +_080757D8: + ldr r3, _08075808 + ldr r5, _0807580C + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r1, _08075810 + mov r12, r1 + ldr r7, _08075814 + ldr r6, _08075818 + ldr r2, _0807581C + ldr r1, _08075820 + movs r4, 0x3 +_080757F0: + ldrh r0, [r2] + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080757F0 +_080757FC: + mov r0, r9 + cmp r0, 0 + bne _08075824 + strh r0, [r3] + b _08075828 + .align 2, 0 +_08075808: .4byte 0x0202f7c6 +_0807580C: .4byte 0x0202f7c2 +_08075810: .4byte 0x0202f7b1 +_08075814: .4byte 0x0202f7ac +_08075818: .4byte sub_80759D0 +_0807581C: .4byte 0x02019348 +_08075820: .4byte 0x0202f7ca +_08075824: + mov r1, r8 + strh r1, [r3] +_08075828: + ldr r1, _0807587C + movs r2, 0 + adds r0, r1, 0 + adds r0, 0xE +_08075830: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _08075830 + movs r0, 0xFF + strb r0, [r5] + movs r0, 0x1 + negs r0, r0 + strb r0, [r5, 0x1] + ldr r0, [sp] + add r0, r10 + ldr r0, [r0] + ldr r1, _08075880 + str r0, [r1] + movs r0, 0x1 + mov r1, r12 + strb r0, [r1] + movs r0, 0 + ldr r1, _08075884 + strb r0, [r1] + str r6, [r7] + ldr r0, _08075888 + adds r2, r0, 0 + ldr r1, _0807588C + movs r4, 0x7 +_08075862: + ldrh r0, [r1] + orrs r0, r2 + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08075862 + mov r1, r9 + cmp r1, 0 + beq _080758AE + movs r4, 0 + ldr r2, _08075890 + b _08075896 + .align 2, 0 +_0807587C: .4byte 0x03004b00 +_08075880: .4byte 0x0202f7a4 +_08075884: .4byte 0x0202f7b0 +_08075888: .4byte 0x0000ffff +_0807588C: .4byte 0x03004b10 +_08075890: .4byte gUnknown_081C7160 +_08075894: + adds r4, 0x1 +_08075896: + lsls r0, r4, 1 + adds r0, r2 + ldrh r0, [r0] + ldr r1, _080758D0 + cmp r0, r1 + beq _080758AE + cmp r8, r0 + bne _08075894 + ldr r0, _080758D4 + movs r2, 0x80 + bl m4aMPlayVolumeControl +_080758AE: + ldr r0, _080758D8 + movs r1, 0 + strh r1, [r0] + ldr r0, _080758DC + strh r1, [r0] + ldr r0, _080758E0 + strh r1, [r0] + ldr r0, _080758E4 + strh r1, [r0] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080758D0: .4byte 0x0000ffff +_080758D4: .4byte 0x03007380 +_080758D8: .4byte 0x030042c4 +_080758DC: .4byte 0x03004240 +_080758E0: .4byte 0x03004200 +_080758E4: .4byte 0x03004244 + thumb_func_end move_something + + thumb_func_start move_anim_8072740 +move_anim_8072740: @ 80758E8 + push {r4,lr} + adds r4, r0, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + ldr r1, _08075904 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075904: .4byte 0x0202f7b2 + thumb_func_end move_anim_8072740 + + thumb_func_start move_anim_task_del +move_anim_task_del: @ 8075908 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r1, _08075920 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08075920: .4byte 0x0202f7b2 + thumb_func_end move_anim_task_del + + thumb_func_start move_anim_related_task_del +move_anim_related_task_del: @ 8075924 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r1, _0807593C + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0807593C: .4byte 0x0202f7b3 + thumb_func_end move_anim_related_task_del + + thumb_func_start sub_8075940 +sub_8075940: @ 8075940 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r4, _08075958 + ldr r1, _0807595C +_0807594C: + ldrh r0, [r1] + cmp r0, r4 + bne _08075960 + strh r3, [r1] + b _08075968 + .align 2, 0 +_08075958: .4byte 0x0000ffff +_0807595C: .4byte 0x03004b10 +_08075960: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _0807594C +_08075968: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8075940 + + thumb_func_start sub_8075970 +sub_8075970: @ 8075970 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r0, _0807598C + adds r4, r0, 0 + ldr r1, _08075990 +_0807597E: + ldrh r0, [r1] + cmp r0, r3 + bne _08075994 + orrs r0, r4 + strh r0, [r1] + b _0807599C + .align 2, 0 +_0807598C: .4byte 0x0000ffff +_08075990: .4byte 0x03004b10 +_08075994: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x7 + ble _0807597E +_0807599C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8075970 + + thumb_func_start move_anim_waiter +move_anim_waiter: @ 80759A4 + push {lr} + ldr r2, _080759BC + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0 + bgt _080759C8 + ldr r0, _080759C0 + ldr r1, _080759C4 + str r1, [r0] + movs r0, 0 + b _080759CA + .align 2, 0 +_080759BC: .4byte 0x0202f7b0 +_080759C0: .4byte 0x0202f7ac +_080759C4: .4byte sub_80759D0 +_080759C8: + subs r0, r1, 0x1 +_080759CA: + strb r0, [r2] + pop {r0} + bx r0 + thumb_func_end move_anim_waiter + + thumb_func_start sub_80759D0 +sub_80759D0: @ 80759D0 + push {r4,lr} + ldr r4, _08075A00 +_080759D4: + ldr r0, _08075A04 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08075A08 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + bne _080759F8 + ldr r0, _08075A0C + ldrb r0, [r0] + cmp r0, 0 + bne _080759D4 +_080759F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075A00: .4byte gUnknown_0837F4B8 +_08075A04: .4byte 0x0202f7a4 +_08075A08: .4byte 0x0202f7b0 +_08075A0C: .4byte 0x0202f7b1 + thumb_func_end sub_80759D0 + + thumb_func_start ma00_load_graphics +ma00_load_graphics: @ 8075A10 + push {r4-r6,lr} + ldr r6, _08075A5C + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + lsls r5, r4, 3 + ldr r0, _08075A60 + adds r0, r5, r0 + bl LoadCompressedObjectPic + ldr r0, _08075A64 + adds r5, r0 + adds r0, r5, 0 + bl LoadCompressedObjectPalette + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + ldr r0, _08075A68 + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_8075940 + ldr r1, _08075A6C + movs r0, 0x1 + strb r0, [r1] + ldr r1, _08075A70 + ldr r0, _08075A74 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075A5C: .4byte 0x0202f7a4 +_08075A60: .4byte gBattleAnimPicTable - (10000 * 8) +_08075A64: .4byte gBattleAnimPaletteTable - (10000 * 8) +_08075A68: .4byte 0xffffd8f0 +_08075A6C: .4byte 0x0202f7b0 +_08075A70: .4byte 0x0202f7ac +_08075A74: .4byte move_anim_waiter + thumb_func_end ma00_load_graphics + + thumb_func_start ma01_080728D0 +ma01_080728D0: @ 8075A78 + push {r4-r6,lr} + ldr r6, _08075AB8 + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + ldr r1, _08075ABC + ldr r0, _08075AC0 + adds r4, r0 + lsls r0, r4, 3 + adds r0, r1 + ldrh r5, [r0, 0x6] + adds r0, r5, 0 + bl FreeSpriteTilesByTag + adds r0, r5, 0 + bl FreeSpritePaletteByTag + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + bl sub_8075970 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08075AB8: .4byte 0x0202f7a4 +_08075ABC: .4byte gBattleAnimPicTable +_08075AC0: .4byte 0xffffd8f0 + thumb_func_end ma01_080728D0 + + thumb_func_start ma02_instanciate_template +ma02_instanciate_template: @ 8075AC4 + push {r4-r7,lr} + ldr r5, _08075B2C + ldr r1, [r5] + adds r3, r1, 0x1 + str r3, [r5] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r7, r2, r0 + adds r0, r1, 0x5 + str r0, [r5] + ldrb r4, [r1, 0x5] + adds r0, r1, 0x6 + str r0, [r5] + ldrb r0, [r1, 0x6] + adds r1, 0x7 + str r1, [r5] + cmp r0, 0 + beq _08075B14 + adds r6, r5, 0 + ldr r5, _08075B30 + adds r3, r0, 0 +_08075AFC: + ldr r2, [r6] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r5] + adds r2, 0x2 + str r2, [r6] + adds r5, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _08075AFC +_08075B14: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _08075B44 + movs r0, 0x80 + eors r4, r0 + cmp r4, 0x3F + bls _08075B34 + adds r0, r4, 0 + subs r0, 0x40 + b _08075B36 + .align 2, 0 +_08075B2C: .4byte 0x0202f7a4 +_08075B30: .4byte 0x03004b00 +_08075B34: + negs r0, r4 +_08075B36: + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08075B40 + b _08075B56 + .align 2, 0 +_08075B40: .4byte 0x0202f7c9 +_08075B44: + cmp r4, 0x3F + bls _08075B4E + adds r0, r4, 0 + subs r0, 0x40 + b _08075B50 +_08075B4E: + negs r0, r4 +_08075B50: + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08075BAC +_08075B56: + ldrb r0, [r0] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 24 + asrs r1, 24 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0x2 + bgt _08075B74 + movs r6, 0x3 +_08075B74: + ldr r5, _08075BB0 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + lsls r3, r6, 24 + lsrs r3, 24 + adds r0, r7, 0 + adds r1, r4, 0 + bl CreateSpriteAndAnimate + ldr r1, _08075BB4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075BAC: .4byte 0x0202f7c8 +_08075BB0: .4byte 0x0202f7c9 +_08075BB4: .4byte 0x0202f7b2 + thumb_func_end ma02_instanciate_template + + thumb_func_start sub_8075BB8 +sub_8075BB8: @ 8075BB8 + push {r4-r7,lr} + ldr r4, _08075C28 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r6, r2, r0 + adds r0, r1, 0x5 + str r0, [r4] + ldrb r7, [r1, 0x5] + adds r0, r1, 0x6 + str r0, [r4] + ldrb r0, [r1, 0x6] + adds r1, 0x7 + str r1, [r4] + cmp r0, 0 + beq _08075C08 + adds r5, r4, 0 + ldr r4, _08075C2C + adds r3, r0, 0 +_08075BF0: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r4] + adds r2, 0x2 + str r2, [r5] + adds r4, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _08075BF0 +_08075C08: + adds r0, r6, 0 + adds r1, r7, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r6 + ldr r1, _08075C30 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075C28: .4byte 0x0202f7a4 +_08075C2C: .4byte 0x03004b00 +_08075C30: .4byte 0x0202f7b2 + thumb_func_end sub_8075BB8 + + thumb_func_start ma04_wait_countdown +ma04_wait_countdown: @ 8075C34 + push {r4,lr} + ldr r1, _08075C64 + ldr r0, [r1] + adds r2, r0, 0x1 + str r2, [r1] + ldr r3, _08075C68 + ldrb r0, [r0, 0x1] + strb r0, [r3] + lsls r0, 24 + cmp r0, 0 + bne _08075C52 + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + strb r0, [r3] +_08075C52: + adds r0, r2, 0x1 + str r0, [r1] + ldr r1, _08075C6C + ldr r0, _08075C70 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075C64: .4byte 0x0202f7a4 +_08075C68: .4byte 0x0202f7b0 +_08075C6C: .4byte 0x0202f7ac +_08075C70: .4byte move_anim_waiter + thumb_func_end ma04_wait_countdown + + thumb_func_start sub_8075C74 +sub_8075C74: @ 8075C74 + push {lr} + ldr r0, _08075C8C + ldrb r2, [r0] + cmp r2, 0 + bne _08075C98 + ldr r0, _08075C90 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, _08075C94 + strb r2, [r0] + b _08075C9E + .align 2, 0 +_08075C8C: .4byte 0x0202f7b2 +_08075C90: .4byte 0x0202f7a4 +_08075C94: .4byte 0x0202f7b0 +_08075C98: + ldr r1, _08075CA4 + movs r0, 0x1 + strb r0, [r1] +_08075C9E: + pop {r0} + bx r0 + .align 2, 0 +_08075CA4: .4byte 0x0202f7b0 + thumb_func_end sub_8075C74 + + thumb_func_start nullsub_53 +nullsub_53: @ 8075CA8 + bx lr + thumb_func_end nullsub_53 + + thumb_func_start nullsub_88 +nullsub_88: @ 8075CAC + bx lr + thumb_func_end nullsub_88 + + thumb_func_start sub_8075CB0 +sub_8075CB0: @ 8075CB0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r0, 0 + mov r8, r0 + ldr r0, _08075CE0 + ldrb r0, [r0] + cmp r0, 0 + bne _08075CD8 + ldr r0, _08075CE4 + ldrb r0, [r0] + cmp r0, 0 + bne _08075CD8 + ldr r1, _08075CE8 + ldrb r0, [r1] + cmp r0, 0xFF + bne _08075CD8 + ldrb r0, [r1, 0x1] + cmp r0, 0xFF + beq _08075CF0 +_08075CD8: + ldr r1, _08075CEC + movs r0, 0 + strh r0, [r1] + b _08075D0A + .align 2, 0 +_08075CE0: .4byte 0x0202f7b2 +_08075CE4: .4byte 0x0202f7b3 +_08075CE8: .4byte 0x0202f7c2 +_08075CEC: .4byte 0x03004af0 +_08075CF0: + bl mplay_has_finished_maybe + lsls r0, 24 + cmp r0, 0 + beq _08075D28 + ldr r1, _08075D14 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bhi _08075D1C +_08075D0A: + ldr r1, _08075D18 + movs r0, 0x1 + strb r0, [r1] + b _08075D8E + .align 2, 0 +_08075D14: .4byte 0x03004af0 +_08075D18: .4byte 0x0202f7b0 +_08075D1C: + ldr r0, _08075D98 + bl m4aMPlayStop + ldr r0, _08075D9C + bl m4aMPlayStop +_08075D28: + ldr r1, _08075DA0 + movs r0, 0 + strh r0, [r1] + movs r5, 0 + ldr r7, _08075DA4 + ldr r6, _08075DA8 + ldr r4, _08075DAC +_08075D36: + ldrh r0, [r4] + cmp r0, r7 + beq _08075D5A + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x6] + bl FreeSpriteTilesByTag + ldrh r0, [r4] + lsls r0, 3 + adds r0, r6 + ldrh r0, [r0, 0x6] + bl FreeSpritePaletteByTag + ldrh r1, [r4] + adds r0, r7, 0 + orrs r0, r1 + strh r0, [r4] +_08075D5A: + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x7 + ble _08075D36 + mov r1, r8 + cmp r1, 0 + bne _08075D8E + ldr r0, _08075DB0 + ldr r1, _08075DA4 + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08075D88 + bl sub_8079E24 + movs r0, 0x1 + bl sub_8043EB4 +_08075D88: + ldr r0, _08075DB4 + mov r1, r8 + strb r1, [r0] +_08075D8E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075D98: .4byte 0x030073c0 +_08075D9C: .4byte 0x03007400 +_08075DA0: .4byte 0x03004af0 +_08075DA4: .4byte 0x0000ffff +_08075DA8: .4byte gBattleAnimPicTable +_08075DAC: .4byte 0x03004b10 +_08075DB0: .4byte 0x03007380 +_08075DB4: .4byte 0x0202f7b1 + thumb_func_end sub_8075CB0 + + thumb_func_start ma09_play_sound +ma09_play_sound: @ 8075DB8 + push {r4,lr} + ldr r4, _08075DDC + ldr r0, [r4] + adds r1, r0, 0x1 + str r1, [r4] + ldrb r0, [r0, 0x1] + ldrb r1, [r1, 0x1] + lsls r1, 8 + orrs r0, r1 + bl audio_play + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08075DDC: .4byte 0x0202f7a4 + thumb_func_end ma09_play_sound + + thumb_func_start sub_8075DE0 +sub_8075DE0: @ 8075DE0 + push {r4-r7,lr} + ldr r0, _08075DF4 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r6, [r2, 0x1] + cmp r6, 0 + bne _08075DF8 + movs r6, 0x2 + b _08075E02 + .align 2, 0 +_08075DF4: .4byte 0x0202f7a4 +_08075DF8: + cmp r6, 0x1 + bne _08075DFE + movs r6, 0x3 +_08075DFE: + cmp r6, 0 + beq _08075E06 +_08075E02: + cmp r6, 0x2 + bne _08075E10 +_08075E06: + ldr r0, _08075E0C + b _08075E12 + .align 2, 0 +_08075E0C: .4byte 0x0202f7c8 +_08075E10: + ldr r0, _08075E44 +_08075E12: + ldrb r5, [r0] + adds r0, r5, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08075ECE + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08075E3E + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08075E48 +_08075E3E: + movs r7, 0 + b _08075E4A + .align 2, 0 +_08075E44: .4byte 0x0202f7c9 +_08075E48: + movs r7, 0x1 +_08075E4A: + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8076034 + ldr r0, _08075E98 + adds r0, r5, r0 + ldrb r4, [r0] + ldr r0, _08075E9C + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08075EA0 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + strh r4, [r2, 0x8] + ldr r1, _08075EA4 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x24] + ldrh r4, [r0, 0x20] + adds r1, r4 + strh r1, [r2, 0xA] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r2, 0xC] + cmp r7, 0 + bne _08075EB0 + ldr r0, _08075EA8 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075EAC + b _08075EB8 + .align 2, 0 +_08075E98: .4byte 0x02024be0 +_08075E9C: .4byte task_pA_ma0A_obj_to_bg_pal +_08075EA0: .4byte 0x03004b20 +_08075EA4: .4byte 0x02020004 +_08075EA8: .4byte 0x030042c0 +_08075EAC: .4byte 0x030041b4 +_08075EB0: + ldr r0, _08075F04 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075F08 +_08075EB8: + ldrh r0, [r0] + strh r0, [r2, 0x10] + ldr r0, _08075F0C + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r7, [r1, 0x12] + strh r5, [r1, 0x14] + ldr r0, _08075F10 + strb r3, [r0] +_08075ECE: + movs r0, 0x2 + eors r5, r0 + cmp r6, 0x1 + bls _08075F9A + adds r0, r5, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08075F9A + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08075F00 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08075F14 +_08075F00: + movs r7, 0 + b _08075F16 + .align 2, 0 +_08075F04: .4byte 0x03004288 +_08075F08: .4byte 0x03004280 +_08075F0C: .4byte 0x03004b20 +_08075F10: .4byte 0x0202f7c2 +_08075F14: + movs r7, 0x1 +_08075F16: + adds r0, r5, 0 + adds r1, r7, 0 + bl sub_8076034 + ldr r0, _08075F64 + adds r0, r5, r0 + ldrb r4, [r0] + ldr r0, _08075F68 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08075F6C + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + strh r4, [r2, 0x8] + ldr r1, _08075F70 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x24] + ldrh r4, [r0, 0x20] + adds r1, r4 + strh r1, [r2, 0xA] + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + strh r1, [r2, 0xC] + cmp r7, 0 + bne _08075F7C + ldr r0, _08075F74 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075F78 + b _08075F84 + .align 2, 0 +_08075F64: .4byte 0x02024be0 +_08075F68: .4byte task_pA_ma0A_obj_to_bg_pal +_08075F6C: .4byte 0x03004b20 +_08075F70: .4byte 0x02020004 +_08075F74: .4byte 0x030042c0 +_08075F78: .4byte 0x030041b4 +_08075F7C: + ldr r0, _08075FA8 + ldrh r0, [r0] + strh r0, [r2, 0xE] + ldr r0, _08075FAC +_08075F84: + ldrh r0, [r0] + strh r0, [r2, 0x10] + ldr r0, _08075FB0 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + strh r7, [r1, 0x12] + strh r5, [r1, 0x14] + ldr r0, _08075FB4 + strb r3, [r0, 0x1] +_08075F9A: + ldr r1, _08075FB8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08075FA8: .4byte 0x03004288 +_08075FAC: .4byte 0x03004280 +_08075FB0: .4byte 0x03004b20 +_08075FB4: .4byte 0x0202f7c2 +_08075FB8: .4byte 0x0202f7a4 + thumb_func_end sub_8075DE0 + + thumb_func_start b_side_obj__get_some_boolean +b_side_obj__get_some_boolean: @ 8075FBC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08075FDC + ldr r0, _08075FD8 + ldrb r0, [r0] + cmp r4, r0 + beq _0807601C + b _0807602C + .align 2, 0 +_08075FD8: .4byte 0x0202f7c8 +_08075FDC: + adds r0, r4, 0 + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _0807602C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0807601C + lsls r0, r5, 2 + ldr r1, _08076020 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0807601C + ldr r2, _08076024 + ldr r0, _08076028 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _0807602C +_0807601C: + movs r0, 0x1 + b _0807602E + .align 2, 0 +_08076020: .4byte 0x02017800 +_08076024: .4byte 0x02020004 +_08076028: .4byte 0x02024be0 +_0807602C: + movs r0, 0 +_0807602E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end b_side_obj__get_some_boolean + + thumb_func_start sub_8076034 +sub_8076034: @ 8076034 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + cmp r1, 0 + beq _0807604E + b _08076220 +_0807604E: + add r4, sp, 0x10 + adds r0, r4, 0 + bl sub_8078914 + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 6 + add r6, sp, 0x1C + add r0, sp, 0x20 + mov r10, r0 + mov r1, r9 + lsls r1, 5 + str r1, [sp, 0x24] + movs r5, 0 + ldr r1, _08076194 + movs r4, 0x80 + lsls r4, 5 + mov r12, r6 + ldr r7, _08076198 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_0807607A: + str r5, [sp, 0x1C] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _0807607A + str r5, [sp, 0x1C] + str r6, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0xC + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, [sp, 0x14] + movs r0, 0xFF + mov r3, r10 + strh r0, [r3] + ldr r0, _08076194 + str r3, [r0] + str r1, [r0, 0x4] + ldr r1, _0807619C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r2, _080761A0 + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + ldr r0, _080761A4 + add r0, r9 + ldrb r4, [r0] + ldr r5, _080761A8 + ldr r0, _080761AC + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x24] + ldrh r1, [r1, 0x20] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r5] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807611C + ldr r0, _080761B0 + ldrh r0, [r0] + bl sub_80AEB1C + lsls r0, 24 + cmp r0, 0 + beq _0807611C + ldrh r0, [r5] + subs r0, 0x1 + strh r0, [r5] +_0807611C: + ldr r3, _080761B4 + ldr r2, _080761AC + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + strh r0, [r3] + ldr r0, _080761A4 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r1, _080761B8 + ldr r0, _080761A8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r3] + strh r0, [r1] + ldr r4, _080761BC + ldr r0, [sp, 0x24] + adds r4, r0, r4 + mov r2, sp + ldrb r1, [r2, 0x18] + lsls r1, 4 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + mov r3, sp + ldrb r0, [r3, 0x18] + lsls r0, 5 + movs r1, 0xA0 + lsls r1, 19 + adds r0, r1 + ldr r1, _08076194 + str r4, [r1] + str r0, [r1, 0x4] + ldr r0, _080761C0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080761C4 + movs r2, 0 + b _080761CE + .align 2, 0 +_08076194: .4byte 0x040000d4 +_08076198: .4byte 0x85000400 +_0807619C: .4byte 0x81000800 +_080761A0: .4byte 0x0400000a +_080761A4: .4byte 0x02024be0 +_080761A8: .4byte 0x030042c0 +_080761AC: .4byte 0x02020004 +_080761B0: .4byte 0x02019348 +_080761B4: .4byte 0x030041b4 +_080761B8: .4byte 0x04000014 +_080761BC: .4byte 0x0202ecc8 +_080761C0: .4byte 0x84000008 +_080761C4: + mov r0, r9 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r2, r0, 24 +_080761CE: + mov r0, sp + ldrb r3, [r0, 0x18] + ldr r0, [sp, 0x10] + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + ldr r4, [sp, 0x14] + movs r1, 0xFA + lsls r1, 24 + adds r0, r4, r1 + cmp r0, 0 + bge _080761EA + ldr r1, _08076218 + adds r0, r4, r1 +_080761EA: + asrs r0, 11 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + ldr r0, _0807621C + ldr r0, [r0] + lsls r0, 28 + lsrs r0, 30 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + bl sub_80E4EF8 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08076210 + b _08076338 +_08076210: + bl sub_8076380 + b _08076338 + .align 2, 0 +_08076218: .4byte 0xfa0007ff +_0807621C: .4byte 0x0400000a +_08076220: + ldr r3, _08076348 + movs r5, 0x80 + lsls r5, 6 + add r6, sp, 0x1C + ldr r2, _0807634C + mov r10, r2 + mov r0, r9 + lsls r0, 5 + str r0, [sp, 0x24] + movs r4, 0 + ldr r1, _08076350 + movs r2, 0x80 + lsls r2, 5 + mov r12, r6 + ldr r7, _08076354 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_08076244: + str r4, [sp, 0x1C] + mov r0, r12 + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r2 + subs r5, r2 + cmp r5, r2 + bhi _08076244 + str r4, [sp, 0x1C] + str r6, [r1] + str r3, [r1, 0x4] + lsrs r0, r5, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0xC + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, _08076358 + movs r0, 0 + str r0, [sp, 0x1C] + ldr r5, _08076350 + str r6, [r5] + str r1, [r5, 0x4] + ldr r0, _0807635C + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + ldr r6, _08076360 + ldrb r1, [r6] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r6] + ldrb r1, [r6, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r6, 0x1] + ldrb r1, [r6, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r6, 0x1] + ldr r2, _08076364 + add r2, r9 + ldrb r4, [r2] + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r10 + ldrh r0, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r0, r3 + negs r0, r0 + adds r0, 0x20 + ldr r3, _08076368 + strh r0, [r3] + ldrh r0, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r0, r1 + negs r0, r0 + adds r0, 0x20 + ldr r1, _0807636C + strh r0, [r1] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r1, _08076370 + ldrh r0, [r3] + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0807636C + ldrh r0, [r2] + strh r0, [r1] + ldr r3, [sp, 0x24] + ldr r0, _08076374 + adds r4, r3, r0 + adds r0, r4, 0 + movs r1, 0x90 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08076378 + str r4, [r5] + str r0, [r5, 0x4] + ldr r0, _0807637C + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + mov r0, r9 + bl battle_get_per_side_status + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0xC0 + lsls r0, 7 + str r0, [sp] + movs r0, 0x1E + str r0, [sp, 0x4] + ldr r0, [r6] + lsls r0, 28 + lsrs r0, 30 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0 + movs r3, 0x9 + bl sub_80E4EF8 +_08076338: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076348: .4byte 0x06006000 +_0807634C: .4byte 0x02020004 +_08076350: .4byte 0x040000d4 +_08076354: .4byte 0x85000400 +_08076358: .4byte 0x0600f000 +_0807635C: .4byte 0x85000200 +_08076360: .4byte 0x0400000c +_08076364: .4byte 0x02024be0 +_08076368: .4byte 0x03004288 +_0807636C: .4byte 0x03004280 +_08076370: .4byte 0x04000018 +_08076374: .4byte 0x0202ecc8 +_08076378: .4byte 0x05000120 +_0807637C: .4byte 0x84000008 + thumb_func_end sub_8076034 + + thumb_func_start sub_8076380 +sub_8076380: @ 8076380 + push {r4-r7,lr} + sub sp, 0xC + ldr r0, _080763F8 + ldrh r0, [r0] + bl sub_80AEB1C + lsls r0, 24 + cmp r0, 0 + beq _080763EE + mov r0, sp + bl sub_8078914 + ldr r6, [sp, 0x4] + movs r5, 0 + movs r0, 0x7 + mov r12, r0 + movs r7, 0 +_080763A2: + movs r4, 0 + adds r3, r7, r6 + mov r1, r12 + lsls r0, r1, 1 + adds r2, r0, r6 +_080763AC: + ldrh r1, [r3] + ldrh r0, [r2] + strh r0, [r3] + strh r1, [r2] + adds r3, 0x2 + subs r2, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _080763AC + movs r0, 0x20 + add r12, r0 + adds r7, 0x40 + adds r5, 0x1 + cmp r5, 0x7 + ble _080763A2 + movs r5, 0 + movs r1, 0x80 + lsls r1, 3 + adds r3, r1, 0 +_080763D2: + adds r2, r5, 0x1 + lsls r0, r5, 6 + adds r1, r0, r6 + movs r4, 0x7 +_080763DA: + ldrh r0, [r1] + eors r0, r3 + strh r0, [r1] + adds r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _080763DA + adds r5, r2, 0 + cmp r5, 0x7 + ble _080763D2 +_080763EE: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080763F8: .4byte 0x02019348 + thumb_func_end sub_8076380 + + thumb_func_start sub_80763FC +sub_80763FC: @ 80763FC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r12, r1 + adds r7, r2, 0 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r3, 24 + movs r0, 0x40 + mov r9, r0 + cmp r3, 0 + bne _0807641A + movs r1, 0x20 + mov r9, r1 +_0807641A: + lsls r0, r6, 28 + lsrs r6, r0, 16 + movs r0, 0 + cmp r0, r9 + bcs _08076452 + ldr r1, _08076460 + mov r8, r1 +_08076428: + movs r3, 0 + adds r5, r0, 0x1 + lsls r4, r0, 5 +_0807642E: + adds r1, r4, r3 + lsls r1, 1 + add r1, r12 + ldrh r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + adds r0, r7 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1F + bls _0807642E + lsls r0, r5, 24 + lsrs r0, 24 + cmp r0, r9 + bcc _08076428 +_08076452: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076460: .4byte 0x00000fff + thumb_func_end sub_80763FC + + thumb_func_start sub_8076464 +sub_8076464: @ 8076464 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + add r5, sp, 0x4 + adds r0, r5, 0 + bl sub_8078914 + cmp r4, 0 + beq _0807648C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080764F0 +_0807648C: + ldr r2, [sp, 0x4] + movs r3, 0x80 + lsls r3, 6 + add r5, sp, 0x10 + ldr r0, _080764E0 + mov r9, r0 + ldr r0, _080764E4 + mov r10, r0 + movs r6, 0 + ldr r1, _080764E8 + movs r4, 0x80 + lsls r4, 5 + mov r12, r5 + ldr r7, _080764EC + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_080764AE: + str r6, [sp, 0x10] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _080764AE + str r6, [sp, 0x10] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, [sp, 0x8] + b _08076540 + .align 2, 0 +_080764E0: .4byte 0x030042c0 +_080764E4: .4byte 0x030041b4 +_080764E8: .4byte 0x040000d4 +_080764EC: .4byte 0x85000400 +_080764F0: + ldr r2, _08076568 + movs r3, 0x80 + lsls r3, 6 + add r5, sp, 0x10 + ldr r0, _0807656C + mov r9, r0 + ldr r0, _08076570 + mov r10, r0 + movs r6, 0 + ldr r1, _08076574 + movs r4, 0x80 + lsls r4, 5 + mov r12, r5 + ldr r7, _08076578 + movs r0, 0x85 + lsls r0, 24 + mov r8, r0 +_08076512: + str r6, [sp, 0x10] + mov r0, r12 + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r4 + subs r3, r4 + cmp r3, r4 + bhi _08076512 + str r6, [sp, 0x10] + str r5, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 2 + mov r2, r8 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + movs r1, 0 + strb r1, [r0] + strb r1, [r0] + ldr r1, _0807657C +_08076540: + movs r2, 0 + str r2, [sp, 0x10] + ldr r0, _08076574 + str r5, [r0] + str r1, [r0, 0x4] + ldr r1, _08076580 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + mov r0, r9 + strh r2, [r0] + mov r0, r10 + strh r2, [r0] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076568: .4byte 0x06006000 +_0807656C: .4byte 0x03004288 +_08076570: .4byte 0x03004280 +_08076574: .4byte 0x040000d4 +_08076578: .4byte 0x85000400 +_0807657C: .4byte 0x0600f000 +_08076580: .4byte 0x85000200 + thumb_func_end sub_8076464 + + thumb_func_start task_pA_ma0A_obj_to_bg_pal +task_pA_ma0A_obj_to_bg_pal: @ 8076584 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080765FC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r5, r1, r2 + ldrb r4, [r5, 0x8] + ldrb r6, [r5, 0x14] + mov r0, sp + bl sub_8078914 + ldr r0, _08076600 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrh r2, [r1, 0x24] + ldrh r0, [r1, 0x20] + adds r2, r0 + ldrh r0, [r5, 0xA] + subs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r2, [r1, 0x26] + ldrh r1, [r1, 0x22] + adds r2, r1 + ldrh r0, [r5, 0xC] + subs r0, r2 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x12 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08076614 + ldr r1, _08076604 + lsls r0, r3, 16 + asrs r0, 16 + ldrh r3, [r5, 0xE] + adds r0, r3 + strh r0, [r1] + ldr r1, _08076608 + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r5, 0x10] + adds r0, r5 + strh r0, [r1] + lsls r2, r6, 5 + ldr r1, _0807660C + adds r2, r1 + mov r0, sp + ldrb r0, [r0, 0x8] + lsls r0, 5 + ldr r3, _08076610 + adds r1, r3 + adds r0, r1 + b _08076634 + .align 2, 0 +_080765FC: .4byte 0x03004b20 +_08076600: .4byte 0x02020004 +_08076604: .4byte 0x030042c0 +_08076608: .4byte 0x030041b4 +_0807660C: .4byte 0x0202f0c8 +_08076610: .4byte 0xfffffe00 +_08076614: + ldr r1, _08076648 + lsls r0, r3, 16 + asrs r0, 16 + ldrh r3, [r5, 0xE] + adds r0, r3 + strh r0, [r1] + ldr r1, _0807664C + lsls r0, r2, 16 + asrs r0, 16 + ldrh r5, [r5, 0x10] + adds r0, r5 + strh r0, [r1] + lsls r2, r6, 5 + ldr r0, _08076650 + adds r2, r0 + subs r0, 0xE0 +_08076634: + ldr r1, _08076654 + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _08076658 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08076648: .4byte 0x03004288 +_0807664C: .4byte 0x03004280 +_08076650: .4byte 0x0202f0c8 +_08076654: .4byte 0x040000d4 +_08076658: .4byte 0x84000008 + thumb_func_end task_pA_ma0A_obj_to_bg_pal + + thumb_func_start ma0B_0807324C +ma0B_0807324C: @ 807665C + push {r4,r5,lr} + ldr r0, _08076670 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r4, [r2, 0x1] + cmp r4, 0 + bne _08076674 + movs r4, 0x2 + b _0807667E + .align 2, 0 +_08076670: .4byte 0x0202f7a4 +_08076674: + cmp r4, 0x1 + bne _0807667A + movs r4, 0x3 +_0807667A: + cmp r4, 0 + beq _08076682 +_0807667E: + cmp r4, 0x2 + bne _0807668C +_08076682: + ldr r0, _08076688 + b _0807668E + .align 2, 0 +_08076688: .4byte 0x0202f7c8 +_0807668C: + ldr r0, _080766E4 +_0807668E: + ldrb r5, [r0] + ldr r3, _080766E8 + ldrb r0, [r3] + cmp r0, 0xFF + beq _080766B4 + ldr r2, _080766EC + ldr r0, _080766F0 + adds r0, r5, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080766B4: + cmp r4, 0x1 + bls _080766F4 + ldrb r0, [r3, 0x1] + cmp r0, 0xFF + beq _080766F4 + ldr r3, _080766EC + ldr r2, _080766F0 + movs r1, 0x2 + adds r0, r5, 0 + eors r0, r1 + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + b _080766F6 + .align 2, 0 +_080766E4: .4byte 0x0202f7c9 +_080766E8: .4byte 0x0202f7c2 +_080766EC: .4byte 0x02020004 +_080766F0: .4byte 0x02024be0 +_080766F4: + movs r4, 0 +_080766F6: + ldr r0, _08076720 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08076724 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + strh r5, [r1, 0xC] + ldr r1, _08076728 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08076720: .4byte sub_807672C +_08076724: .4byte 0x03004b20 +_08076728: .4byte 0x0202f7a4 + thumb_func_end ma0B_0807324C + + thumb_func_start sub_807672C +sub_807672C: @ 807672C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0807676C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _080767B6 + ldrb r0, [r1, 0xC] + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08076768 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076770 +_08076768: + movs r4, 0 + b _08076772 + .align 2, 0 +_0807676C: .4byte 0x03004b20 +_08076770: + movs r4, 0x1 +_08076772: + ldr r6, _080767BC + ldrb r0, [r6] + cmp r0, 0xFF + beq _0807678A + adds r0, r4, 0 + bl sub_8076464 + ldrb r0, [r6] + bl DestroyTask + movs r0, 0xFF + strb r0, [r6] +_0807678A: + ldr r0, _080767C0 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _080767B0 + movs r0, 0x1 + eors r4, r0 + adds r0, r4, 0 + bl sub_8076464 + ldrb r0, [r6, 0x1] + bl DestroyTask + movs r0, 0xFF + strb r0, [r6, 0x1] +_080767B0: + adds r0, r5, 0 + bl DestroyTask +_080767B6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080767BC: .4byte 0x0202f7c2 +_080767C0: .4byte 0x03004b20 + thumb_func_end sub_807672C + + thumb_func_start sub_80767C4 +sub_80767C4: @ 80767C4 + push {r4,r5,lr} + ldr r0, _080767D8 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r5, [r2, 0x1] + cmp r5, 0 + bne _080767DC + movs r5, 0x2 + b _080767E6 + .align 2, 0 +_080767D8: .4byte 0x0202f7a4 +_080767DC: + cmp r5, 0x1 + bne _080767E2 + movs r5, 0x3 +_080767E2: + cmp r5, 0 + beq _080767EA +_080767E6: + cmp r5, 0x2 + bne _080767F4 +_080767EA: + ldr r0, _080767F0 + b _080767F6 + .align 2, 0 +_080767F0: .4byte 0x0202f7c8 +_080767F4: + ldr r0, _08076828 +_080767F6: + ldrb r4, [r0] + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08076850 + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08076822 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807682C +_08076822: + movs r1, 0 + b _0807682E + .align 2, 0 +_08076828: .4byte 0x0202f7c9 +_0807682C: + movs r1, 0x1 +_0807682E: + adds r0, r4, 0 + bl sub_8076034 + ldr r2, _08076888 + ldr r0, _0807688C + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08076850: + movs r0, 0x2 + eors r4, r0 + cmp r5, 0x1 + bls _080768B4 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080768B4 + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _08076882 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076890 +_08076882: + movs r1, 0 + b _08076892 + .align 2, 0 +_08076888: .4byte 0x02020004 +_0807688C: .4byte 0x02024be0 +_08076890: + movs r1, 0x1 +_08076892: + adds r0, r4, 0 + bl sub_8076034 + ldr r2, _080768C4 + ldr r0, _080768C8 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_080768B4: + ldr r1, _080768CC + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080768C4: .4byte 0x02020004 +_080768C8: .4byte 0x02024be0 +_080768CC: .4byte 0x0202f7a4 + thumb_func_end sub_80767C4 + + thumb_func_start ma23_8073484 +ma23_8073484: @ 80768D0 + push {r4-r6,lr} + ldr r0, _080768E4 + ldr r2, [r0] + adds r1, r2, 0x1 + str r1, [r0] + ldrb r5, [r2, 0x1] + cmp r5, 0 + bne _080768E8 + movs r5, 0x2 + b _080768F2 + .align 2, 0 +_080768E4: .4byte 0x0202f7a4 +_080768E8: + cmp r5, 0x1 + bne _080768EE + movs r5, 0x3 +_080768EE: + cmp r5, 0 + beq _080768F6 +_080768F2: + cmp r5, 0x2 + bne _08076900 +_080768F6: + ldr r0, _080768FC + b _08076902 + .align 2, 0 +_080768FC: .4byte 0x0202f7c8 +_08076900: + ldr r0, _08076960 +_08076902: + ldrb r6, [r0] + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807692C + ldr r2, _08076964 + ldr r0, _08076968 + adds r0, r6, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_0807692C: + cmp r5, 0x1 + bls _0807696C + movs r0, 0x2 + adds r4, r6, 0 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807696C + ldr r2, _08076964 + ldr r0, _08076968 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + b _0807696E + .align 2, 0 +_08076960: .4byte 0x0202f7c9 +_08076964: .4byte 0x02020004 +_08076968: .4byte 0x02024be0 +_0807696C: + movs r5, 0 +_0807696E: + ldr r0, _08076998 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807699C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + strh r6, [r1, 0xC] + ldr r1, _080769A0 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08076998: .4byte sub_80769A4 +_0807699C: .4byte 0x03004b20 +_080769A0: .4byte 0x0202f7a4 + thumb_func_end ma23_8073484 + + thumb_func_start sub_80769A4 +sub_80769A4: @ 80769A4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _080769E8 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + beq _08076A32 + ldrb r4, [r1, 0xC] + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bls _080769E2 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080769EC +_080769E2: + movs r5, 0 + b _080769EE + .align 2, 0 +_080769E8: .4byte 0x03004b20 +_080769EC: + movs r5, 0x1 +_080769EE: + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08076A00 + adds r0, r5, 0 + bl sub_8076464 +_08076A00: + ldr r0, _08076A38 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + ble _08076A2C + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08076A2C + movs r0, 0x1 + eors r5, r0 + adds r0, r5, 0 + bl sub_8076464 +_08076A2C: + adds r0, r6, 0 + bl DestroyTask +_08076A32: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08076A38: .4byte 0x03004b20 + thumb_func_end sub_80769A4 + + thumb_func_start sub_8076A3C +sub_8076A3C: @ 8076A3C + push {r4,lr} + ldr r2, _08076A6C + ldr r0, [r2] + adds r1, r0, 0x1 + str r1, [r2] + ldrb r3, [r0, 0x1] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r1, [r1, 0x1] + lsls r1, 8 + adds r0, 0x1 + str r0, [r2] + ldr r2, _08076A70 + movs r4, 0xFD + lsls r4, 6 + adds r0, r4, 0 + strh r0, [r2] + ldr r0, _08076A74 + orrs r3, r1 + strh r3, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076A6C: .4byte 0x0202f7a4 +_08076A70: .4byte 0x04000050 +_08076A74: .4byte 0x04000052 + thumb_func_end sub_8076A3C + + thumb_func_start sub_8076A78 +sub_8076A78: @ 8076A78 + ldr r2, _08076A98 + ldr r0, [r2] + adds r1, r0, 0x1 + str r1, [r2] + ldrb r3, [r0, 0x1] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r1, [r1, 0x1] + lsls r1, 8 + adds r0, 0x1 + str r0, [r2] + ldr r0, _08076A9C + orrs r3, r1 + strh r3, [r0] + bx lr + .align 2, 0 +_08076A98: .4byte 0x0202f7a4 +_08076A9C: .4byte 0x04000050 + thumb_func_end sub_8076A78 + + thumb_func_start sub_8076AA0 +sub_8076AA0: @ 8076AA0 + ldr r1, _08076AB4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08076AB8 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + .align 2, 0 +_08076AB4: .4byte 0x0202f7a4 +_08076AB8: .4byte 0x04000050 + thumb_func_end sub_8076AA0 + + thumb_func_start ma0E_call +ma0E_call: @ 8076ABC + push {r4,lr} + ldr r4, _08076AE8 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldr r2, _08076AEC + adds r0, r1, 0x5 + str r0, [r2] + ldrb r1, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076AE8: .4byte 0x0202f7a4 +_08076AEC: .4byte 0x0202f7a8 + thumb_func_end ma0E_call + + thumb_func_start sub_8076AF0 +sub_8076AF0: @ 8076AF0 + ldr r0, _08076AFC + ldr r1, _08076B00 + ldr r1, [r1] + str r1, [r0] + bx lr + .align 2, 0 +_08076AFC: .4byte 0x0202f7a4 +_08076B00: .4byte 0x0202f7a8 + thumb_func_end sub_8076AF0 + + thumb_func_start ma10_080736AC +ma10_080736AC: @ 8076B04 + push {r4,r5,lr} + ldr r5, _08076B30 + ldr r1, [r5] + adds r0, r1, 0x1 + str r0, [r5] + ldrb r2, [r1, 0x1] + adds r3, r0, 0x1 + str r3, [r5] + ldrb r4, [r0, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + orrs r4, r0 + adds r1, 0x4 + str r1, [r5] + ldr r0, _08076B34 + lsls r2, 1 + adds r2, r0 + strh r4, [r2] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08076B30: .4byte 0x0202f7a4 +_08076B34: .4byte 0x03004b00 + thumb_func_end ma10_080736AC + + thumb_func_start ma11_if_else +ma11_if_else: @ 8076B38 + push {lr} + ldr r3, _08076B70 + ldr r2, [r3] + adds r0, r2, 0x1 + str r0, [r3] + ldr r0, _08076B74 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08076B52 + adds r0, r2, 0x5 + str r0, [r3] +_08076B52: + ldr r2, [r3] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + pop {r0} + bx r0 + .align 2, 0 +_08076B70: .4byte 0x0202f7a4 +_08076B74: .4byte 0x0202f7c4 + thumb_func_end ma11_if_else + + thumb_func_start ma12_cond_if +ma12_cond_if: @ 8076B78 + push {r4,r5,lr} + ldr r5, _08076BA8 + ldr r4, [r5] + adds r2, r4, 0x1 + str r2, [r5] + ldrb r1, [r4, 0x1] + adds r3, r2, 0x1 + str r3, [r5] + ldr r0, _08076BAC + ldrb r0, [r0] + cmp r1, r0 + bne _08076BB0 + ldrb r1, [r2, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r5] + b _08076BB4 + .align 2, 0 +_08076BA8: .4byte 0x0202f7a4 +_08076BAC: .4byte 0x0202f7c4 +_08076BB0: + adds r0, r4, 0x6 + str r0, [r5] +_08076BB4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end ma12_cond_if + + thumb_func_start sub_8076BBC +sub_8076BBC: @ 8076BBC + ldr r3, _08076BDC + ldr r0, [r3] + adds r2, r0, 0x1 + str r2, [r3] + ldrb r1, [r0, 0x1] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_08076BDC: .4byte 0x0202f7a4 + thumb_func_end sub_8076BBC + + thumb_func_start sub_8076BE0 +sub_8076BE0: @ 8076BE0 + push {lr} + ldr r0, _08076BF8 + ldr r1, _08076BFC + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08076C00 + movs r0, 0 + b _08076C02 + .align 2, 0 +_08076BF8: .4byte 0x03001770 +_08076BFC: .4byte 0x0000043d +_08076C00: + movs r0, 0x1 +_08076C02: + pop {r1} + bx r1 + thumb_func_end sub_8076BE0 + + thumb_func_start ma14_load_background +ma14_load_background: @ 8076C08 + push {r4,lr} + ldr r1, _08076C3C + ldr r2, [r1] + adds r0, r2, 0x1 + str r0, [r1] + ldrb r4, [r2, 0x1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08076C40 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08076C44 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + ldr r1, _08076C48 + movs r0, 0x1 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076C3C: .4byte 0x0202f7a4 +_08076C40: .4byte task_p5_load_battle_screen_elements +_08076C44: .4byte 0x03004b20 +_08076C48: .4byte 0x0202f7c5 + thumb_func_end ma14_load_background + + thumb_func_start sub_8076C4C +sub_8076C4C: @ 8076C4C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r2, _08076C8C + ldr r1, [r2] + adds r0, r1, 0x1 + str r0, [r2] + ldrb r3, [r1, 0x1] + mov r8, r3 + ldrb r7, [r0, 0x1] + ldrb r6, [r0, 0x2] + adds r1, 0x4 + str r1, [r2] + ldr r0, _08076C90 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076C98 + ldr r1, _08076C94 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r6, [r0, 0x8] + b _08076CCA + .align 2, 0 +_08076C8C: .4byte 0x0202f7a4 +_08076C90: .4byte task_p5_load_battle_screen_elements +_08076C94: .4byte 0x03004b20 +_08076C98: + ldr r0, _08076CB4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08076CBC + ldr r1, _08076CB8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0x8] + b _08076CCA + .align 2, 0 +_08076CB4: .4byte 0x0202f7c9 +_08076CB8: .4byte 0x03004b20 +_08076CBC: + ldr r1, _08076CDC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x8] +_08076CCA: + ldr r1, _08076CE0 + movs r0, 0x1 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076CDC: .4byte 0x03004b20 +_08076CE0: .4byte 0x0202f7c5 + thumb_func_end sub_8076C4C + + thumb_func_start task_p5_load_battle_screen_elements +task_p5_load_battle_screen_elements: @ 8076CE4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08076D18 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r6, [r4, 0x1C] + movs r0, 0x1C + ldrsh r3, [r4, r0] + adds r7, r1, 0 + cmp r3, 0 + bne _08076D1C + str r3, [sp] + movs r0, 0xE8 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + b _08076DAC + .align 2, 0 +_08076D18: .4byte 0x03004b20 +_08076D1C: + ldr r2, _08076D38 + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08076DAC + cmp r3, 0x1 + bne _08076D40 + adds r0, r6, 0x1 + strh r0, [r4, 0x1C] + ldr r1, _08076D3C + movs r0, 0x2 + strb r0, [r1] + b _08076D84 + .align 2, 0 +_08076D38: .4byte 0x0202f388 +_08076D3C: .4byte 0x0202f7c5 +_08076D40: + cmp r3, 0x2 + bne _08076D84 + ldrh r0, [r4, 0x8] + lsls r2, r0, 16 + asrs r1, r2, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _08076D58 + bl dp01t_11_3_message_for_player_only + b _08076D5E +_08076D58: + lsrs r0, r2, 16 + bl sub_8076DB8 +_08076D5E: + movs r0, 0x1 + str r0, [sp] + movs r0, 0xE8 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r1, _08076D80 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x1C] + adds r1, 0x1 + strh r1, [r0, 0x1C] + b _08076DAC + .align 2, 0 +_08076D80: .4byte 0x03004b20 +_08076D84: + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08076DAC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r7 + movs r1, 0x1C + ldrsh r0, [r0, r1] + cmp r0, 0x3 + bne _08076DAC + adds r0, r5, 0 + bl DestroyTask + ldr r0, _08076DB4 + strb r4, [r0] +_08076DAC: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076DB4: .4byte 0x0202f7c5 + thumb_func_end task_p5_load_battle_screen_elements + + thumb_func_start sub_8076DB8 +sub_8076DB8: @ 8076DB8 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076E70 + ldr r7, _08076E54 + lsls r0, r6, 1 + adds r0, r6 + lsls r4, r0, 2 + adds r0, r7, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r5, [r0] + bl sub_8076BE0 + lsls r0, 24 + ldr r1, _08076E58 + cmp r0, 0 + beq _08076DE8 + ldr r0, _08076E5C + adds r1, r0 +_08076DE8: + adds r0, r5, 0 + bl sub_800D238 + bl sub_80789BC + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + ldr r1, _08076E58 + cmp r0, 0 + beq _08076E06 + ldr r0, _08076E5C + adds r1, r0 +_08076E06: + movs r2, 0x80 + lsls r2, 1 + adds r0, r5, 0 + movs r3, 0 + bl sub_80763FC + bl sub_8076BE0 + lsls r0, 24 + ldr r2, _08076E58 + cmp r0, 0 + beq _08076E22 + ldr r0, _08076E5C + adds r2, r0 +_08076E22: + ldr r1, _08076E60 + ldr r0, _08076E64 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _08076E68 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + adds r0, r4, r7 + ldr r0, [r0] + ldr r1, _08076E6C + bl LZDecompressVram + adds r0, r7, 0x4 + adds r0, r4, r0 + ldr r4, [r0] + bl sub_80789BC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 20 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadCompressedPalette + b _08076E9E + .align 2, 0 +_08076E54: .4byte gUnknown_0837F374 +_08076E58: .4byte 0x02018000 +_08076E5C: .4byte 0xffffc800 +_08076E60: .4byte 0x0600d000 +_08076E64: .4byte 0x040000d4 +_08076E68: .4byte 0x84000200 +_08076E6C: .4byte 0x06002000 +_08076E70: + ldr r5, _08076EA4 + lsls r4, r6, 1 + adds r4, r6 + lsls r4, 2 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r0, [r0] + ldr r1, _08076EA8 + bl LZDecompressVram + adds r0, r4, r5 + ldr r0, [r0] + ldr r1, _08076EAC + bl LZDecompressVram + adds r5, 0x4 + adds r4, r5 + ldr r0, [r4] + movs r1, 0x20 + movs r2, 0x20 + bl LoadCompressedPalette +_08076E9E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08076EA4: .4byte gUnknown_0837F374 +_08076EA8: .4byte 0x0600d000 +_08076EAC: .4byte 0x06008000 + thumb_func_end sub_8076DB8 + + thumb_func_start dp01t_11_3_message_for_player_only +dp01t_11_3_message_for_player_only: @ 8076EB0 + push {lr} + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08076EC2 + bl sub_80AB2AC + b _08076EC6 +_08076EC2: + bl sub_800D7B8 +_08076EC6: + pop {r0} + bx r0 + thumb_func_end dp01t_11_3_message_for_player_only + + thumb_func_start ma15_load_battle_screen_elements +ma15_load_battle_screen_elements: @ 8076ECC + push {lr} + ldr r1, _08076EFC + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08076F00 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08076F04 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _08076F08 + strh r0, [r1, 0x8] + ldr r1, _08076F0C + movs r0, 0x1 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08076EFC: .4byte 0x0202f7a4 +_08076F00: .4byte task_p5_load_battle_screen_elements +_08076F04: .4byte 0x03004b20 +_08076F08: .4byte 0x0000ffff +_08076F0C: .4byte 0x0202f7c5 + thumb_func_end ma15_load_battle_screen_elements + + thumb_func_start ma16_wait_for_battle_screen_elements_s2 +ma16_wait_for_battle_screen_elements_s2: @ 8076F10 + push {lr} + ldr r0, _08076F28 + ldrb r0, [r0] + cmp r0, 0x2 + bne _08076F34 + ldr r1, _08076F2C + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r1, _08076F30 + movs r0, 0 + b _08076F38 + .align 2, 0 +_08076F28: .4byte 0x0202f7c5 +_08076F2C: .4byte 0x0202f7a4 +_08076F30: .4byte 0x0202f7b0 +_08076F34: + ldr r1, _08076F40 + movs r0, 0x1 +_08076F38: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08076F40: .4byte 0x0202f7b0 + thumb_func_end ma16_wait_for_battle_screen_elements_s2 + + thumb_func_start sub_8076F44 +sub_8076F44: @ 8076F44 + push {lr} + ldr r0, _08076F5C + ldrb r2, [r0] + cmp r2, 0 + bne _08076F68 + ldr r0, _08076F60 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, _08076F64 + strb r2, [r0] + b _08076F6E + .align 2, 0 +_08076F5C: .4byte 0x0202f7c5 +_08076F60: .4byte 0x0202f7a4 +_08076F64: .4byte 0x0202f7b0 +_08076F68: + ldr r1, _08076F74 + movs r0, 0x1 + strb r0, [r1] +_08076F6E: + pop {r0} + bx r0 + .align 2, 0 +_08076F74: .4byte 0x0202f7b0 + thumb_func_end sub_8076F44 + + thumb_func_start ma18_load_background_probably +ma18_load_background_probably: @ 8076F78 + push {r4,lr} + ldr r4, _08076F94 + ldr r1, [r4] + adds r0, r1, 0x1 + str r0, [r4] + ldrb r0, [r1, 0x1] + bl sub_8076DB8 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08076F94: .4byte 0x0202f7a4 + thumb_func_end ma18_load_background_probably + + thumb_func_start sub_8076F98 +sub_8076F98: @ 8076F98 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08076FDC + ldr r0, _08076FD4 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _08076FD8 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08076FDC + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + movs r4, 0xC0 + cmp r0, 0 + beq _0807706E + movs r4, 0x3F + b _0807706E + .align 2, 0 +_08076FD4: .4byte 0x0202f7c8 +_08076FD8: .4byte 0x02017810 +_08076FDC: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077004 + ldr r0, _08076FFC + ldr r1, _08077000 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08077068 + cmp r0, 0x2 + bne _08077068 + cmp r4, 0x3F + beq _0807707A + b _08077068 + .align 2, 0 +_08076FFC: .4byte 0x0202f7c8 +_08077000: .4byte 0x0202f7c9 +_08077004: + ldr r0, _0807702C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08077042 + ldr r0, _08077030 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0807706E + lsls r0, r4, 24 + asrs r1, r0, 24 + cmp r1, 0x3F + bne _08077034 + movs r4, 0xC0 + b _0807706E + .align 2, 0 +_0807702C: .4byte 0x0202f7c8 +_08077030: .4byte 0x0202f7c9 +_08077034: + movs r0, 0x40 + negs r0, r0 + cmp r1, r0 + beq _0807706E + negs r0, r1 + lsls r0, 24 + b _0807706C +_08077042: + ldr r0, _08077064 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08077068 + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + bne _0807706E + movs r4, 0x3F + b _0807706E + .align 2, 0 +_08077064: .4byte 0x0202f7c9 +_08077068: + lsls r0, r4, 24 + negs r0, r0 +_0807706C: + lsrs r4, r0, 24 +_0807706E: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x3F + ble _0807707A + movs r4, 0x3F + b _08077088 +_0807707A: + lsls r0, r4, 24 + asrs r0, 24 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + bge _08077088 + movs r4, 0xC0 +_08077088: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8076F98 + + thumb_func_start sub_8077094 +sub_8077094: @ 8077094 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080770D8 + ldr r0, _080770D0 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _080770D4 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080770D8 + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + movs r4, 0xC0 + cmp r0, 0 + beq _080770F6 + movs r4, 0x3F + b _080770F6 + .align 2, 0 +_080770D0: .4byte 0x0202f7c8 +_080770D4: .4byte 0x02017810 +_080770D8: + ldr r0, _08077100 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080770F0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080770F6 +_080770F0: + lsls r0, r4, 24 + negs r0, r0 + lsrs r4, r0, 24 +_080770F6: + lsls r0, r4, 24 + asrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08077100: .4byte 0x0202f7c8 + thumb_func_end sub_8077094 + + thumb_func_start sub_8077104 +sub_8077104: @ 8077104 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + asrs r2, r0, 16 + cmp r2, 0x3F + ble _08077114 + movs r1, 0x3F + b _0807711E +_08077114: + movs r0, 0x40 + negs r0, r0 + cmp r2, r0 + bge _0807711E + ldr r1, _08077128 +_0807711E: + lsls r0, r1, 16 + asrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_08077128: .4byte 0x0000ffc0 + thumb_func_end sub_8077104 + + thumb_func_start sub_807712C +sub_807712C: @ 807712C + push {lr} + lsls r2, 16 + lsrs r2, 16 + adds r3, r2, 0 + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bge _0807714A + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0 + bge _0807715A + b _08077158 +_0807714A: + cmp r0, r1 + ble _08077160 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0 + bge _08077158 + negs r0, r0 +_08077158: + negs r0, r0 +_0807715A: + lsls r0, 16 + lsrs r0, 16 + b _08077162 +_08077160: + movs r0, 0 +_08077162: + lsls r0, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_807712C + + thumb_func_start ma19_08073BC8 +ma19_08073BC8: @ 807716C + push {r4,r5,lr} + ldr r5, _080771A0 + ldr r0, [r5] + adds r1, r0, 0x1 + str r1, [r5] + ldrb r4, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r1, r0, 0 + lsls r1, 24 + asrs r1, 24 + adds r0, r4, 0 + bl audio_play_and_stuff + ldr r0, [r5] + adds r0, 0x3 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080771A0: .4byte 0x0202f7a4 + thumb_func_end ma19_08073BC8 + + thumb_func_start ma1A_8073C00 +ma1A_8073C00: @ 80771A4 + push {r4,lr} + ldr r4, _080771CC + ldr r1, [r4] + adds r0, r1, 0x1 + str r0, [r4] + movs r0, 0x1 + ldrsb r0, [r1, r0] + bl sub_8076F98 + lsls r0, 24 + asrs r0, 24 + bl sub_8075560 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080771CC: .4byte 0x0202f7a4 + thumb_func_end ma1A_8073C00 + + thumb_func_start ma1B_8073C2C +ma1B_8073C2C: @ 80771D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08077280 + mov r10, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r10 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r9, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + ldrb r4, [r1, 0x3] + ldrb r6, [r1, 0x4] + ldrb r7, [r1, 0x5] + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl sub_8076F98 + mov r8, r0 + lsls r5, 24 + asrs r5, 24 + mov r0, r8 + lsls r0, 24 + asrs r0, 24 + mov r8, r0 + lsls r6, 24 + asrs r6, 24 + adds r0, r5, 0 + mov r1, r8 + adds r2, r6, 0 + bl sub_807712C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08077284 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08077288 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + mov r2, r8 + strh r2, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xC] + strh r7, [r1, 0xE] + strh r5, [r1, 0x10] + mov r0, r9 + adds r1, r5, 0 + bl audio_play_and_stuff + ldr r1, _0807728C + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08077280: .4byte 0x0202f7a4 +_08077284: .4byte c3_08073CEC +_08077288: .4byte 0x03004b20 +_0807728C: .4byte 0x0202f7b3 + thumb_func_end ma1B_8073C2C + + thumb_func_start c3_08073CEC +c3_08073CEC: @ 8077290 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r7, 0 + ldr r1, _080772D4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x18] + adds r1, r0, 0x1 + strh r1, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xE + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08077314 + strh r7, [r2, 0x18] + ldrh r6, [r2, 0x8] + ldrh r3, [r2, 0xA] + movs r4, 0x10 + ldrsh r0, [r2, r4] + movs r4, 0xC + ldrsh r1, [r2, r4] + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + strh r4, [r2, 0x10] + cmp r1, 0 + bne _080772D8 + lsls r2, r3, 16 + b _080772FC + .align 2, 0 +_080772D4: .4byte 0x03004b20 +_080772D8: + lsls r1, r6, 16 + lsls r0, r3, 16 + asrs r3, r0, 16 + adds r2, r0, 0 + cmp r1, r2 + bge _080772EE + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, r3 + blt _080772F8 + b _080772FC +_080772EE: + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, r3 + bgt _080772F8 + movs r7, 0x1 +_080772F8: + cmp r7, 0 + beq _0807730C +_080772FC: + lsrs r4, r2, 16 + adds r0, r5, 0 + bl DestroyTask + ldr r1, _0807731C + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_0807730C: + lsls r0, r4, 24 + asrs r0, 24 + bl sub_8075560 +_08077314: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807731C: .4byte 0x0202f7b3 + thumb_func_end c3_08073CEC + + thumb_func_start sub_8077320 +sub_8077320: @ 8077320 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + ldr r0, _080773A4 + mov r9, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r9 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r8, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r8 + orrs r2, r0 + mov r8, r2 + ldrb r4, [r1, 0x2] + ldrb r5, [r1, 0x3] + ldrb r6, [r1, 0x4] + ldrb r1, [r1, 0x5] + mov r10, r1 + ldr r0, _080773A8 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080773AC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0x8] + lsls r5, 24 + asrs r5, 24 + strh r5, [r1, 0xA] + lsls r6, 24 + asrs r6, 24 + strh r6, [r1, 0xC] + mov r0, r10 + strh r0, [r1, 0xE] + strh r4, [r1, 0x10] + mov r0, r8 + adds r1, r4, 0 + bl audio_play_and_stuff + ldr r1, _080773B0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r1, r9 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080773A4: .4byte 0x0202f7a4 +_080773A8: .4byte c3_08073CEC +_080773AC: .4byte 0x03004b20 +_080773B0: .4byte 0x0202f7b3 + thumb_func_end sub_8077320 + + thumb_func_start sub_80773B4 +sub_80773B4: @ 80773B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08077464 + mov r10, r0 + ldr r0, [r0] + adds r1, r0, 0x1 + mov r2, r10 + str r1, [r2] + ldrb r0, [r0, 0x1] + mov r9, r0 + ldrb r0, [r1, 0x1] + lsls r0, 8 + mov r2, r9 + orrs r2, r0 + mov r9, r2 + ldrb r4, [r1, 0x3] + ldrb r0, [r1, 0x4] + mov r8, r0 + ldrb r7, [r1, 0x5] + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8077094 + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r4, 24 + asrs r4, 24 + adds r0, r4, 0 + bl sub_8077094 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r8 + lsls r1, 24 + asrs r1, 24 + mov r8, r1 + mov r0, r8 + bl sub_8077094 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08077468 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807746C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + lsls r6, 24 + asrs r6, 24 + strh r6, [r1, 0x8] + lsls r5, 24 + asrs r5, 24 + strh r5, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xC] + strh r7, [r1, 0xE] + strh r6, [r1, 0x10] + mov r0, r9 + adds r1, r6, 0 + bl audio_play_and_stuff + ldr r1, _08077470 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r2, r10 + ldr r0, [r2] + adds r0, 0x6 + str r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08077464: .4byte 0x0202f7a4 +_08077468: .4byte c3_08073CEC +_0807746C: .4byte 0x03004b20 +_08077470: .4byte 0x0202f7b3 + thumb_func_end sub_80773B4 + + thumb_func_start ma1C_8073ED0 +ma1C_8073ED0: @ 8077474 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r6, _080774EC + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r5, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r5, r0 + ldrb r0, [r1, 0x3] + mov r8, r0 + ldrb r2, [r1, 0x4] + mov r9, r2 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080774F0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080774F4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + mov r2, r8 + strh r2, [r1, 0xC] + mov r2, r9 + strh r2, [r1, 0xE] + mov r2, r8 + strh r2, [r1, 0x18] + ldr r1, [r1] + bl _call_via_r1 + ldr r1, _080774F8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x5 + str r0, [r6] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080774EC: .4byte 0x0202f7a4 +_080774F0: .4byte sub_80774FC +_080774F4: .4byte 0x03004b20 +_080774F8: .4byte 0x0202f7b3 + thumb_func_end ma1C_8073ED0 + + thumb_func_start sub_80774FC +sub_80774FC: @ 80774FC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08077550 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x18] + adds r1, r0, 0x1 + strh r1, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + movs r3, 0xC + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _0807754A + movs r0, 0 + strh r0, [r2, 0x18] + ldrh r0, [r2, 0x8] + ldrb r1, [r2, 0xA] + ldrh r4, [r2, 0xE] + subs r4, 0x1 + strh r4, [r2, 0xE] + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + asrs r1, 24 + bl audio_play_and_stuff + cmp r4, 0 + bne _0807754A + adds r0, r5, 0 + bl DestroyTask + ldr r1, _08077554 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_0807754A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08077550: .4byte 0x03004b20 +_08077554: .4byte 0x0202f7b3 + thumb_func_end sub_80774FC + + thumb_func_start ma1D_08073FB4 +ma1D_08073FB4: @ 8077558 + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r6, _080775BC + ldr r0, [r6] + adds r1, r0, 0x1 + str r1, [r6] + ldrb r5, [r0, 0x1] + ldrb r0, [r1, 0x1] + lsls r0, 8 + orrs r5, r0 + ldrb r0, [r1, 0x3] + mov r8, r0 + movs r0, 0x2 + ldrsb r0, [r1, r0] + bl sub_8076F98 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080775C0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080775C4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r5, [r1, 0x8] + lsls r4, 24 + asrs r4, 24 + strh r4, [r1, 0xA] + mov r0, r8 + strh r0, [r1, 0xC] + ldr r1, _080775C8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, [r6] + adds r0, 0x4 + str r0, [r6] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080775BC: .4byte 0x0202f7a4 +_080775C0: .4byte sub_80775CC +_080775C4: .4byte 0x03004b20 +_080775C8: .4byte 0x0202f7b3 + thumb_func_end ma1D_08073FB4 + + thumb_func_start sub_80775CC +sub_80775CC: @ 80775CC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08077608 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xC] + subs r1, r0, 0x1 + strh r1, [r2, 0xC] + lsls r0, 16 + cmp r0, 0 + bgt _08077600 + ldrh r0, [r2, 0x8] + movs r1, 0xA + ldrsb r1, [r2, r1] + bl audio_play_and_stuff + adds r0, r4, 0 + bl DestroyTask + ldr r1, _0807760C + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] +_08077600: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077608: .4byte 0x03004b20 +_0807760C: .4byte 0x0202f7b3 + thumb_func_end sub_80775CC + + thumb_func_start sub_8077610 +sub_8077610: @ 8077610 + push {r4-r6,lr} + ldr r4, _08077678 + ldr r1, [r4] + adds r3, r1, 0x1 + str r3, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r3, 0x1] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x2] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 24 + adds r6, r2, r0 + adds r0, r1, 0x5 + str r0, [r4] + ldrb r0, [r1, 0x5] + adds r1, 0x6 + str r1, [r4] + cmp r0, 0 + beq _0807765A + adds r5, r4, 0 + ldr r4, _0807767C + adds r3, r0, 0 +_08077642: + ldr r2, [r5] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + orrs r1, r0 + strh r1, [r4] + adds r2, 0x2 + str r2, [r5] + adds r4, 0x2 + subs r3, 0x1 + cmp r3, 0 + bne _08077642 +_0807765A: + adds r0, r6, 0 + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + bl _call_via_r6 + ldr r1, _08077680 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08077678: .4byte 0x0202f7a4 +_0807767C: .4byte 0x03004b00 +_08077680: .4byte 0x0202f7b3 + thumb_func_end sub_8077610 + + thumb_func_start ma20_wait_for_something +ma20_wait_for_something: @ 8077684 + push {r4,r5,lr} + ldr r0, _080776BC + ldrb r5, [r0] + cmp r5, 0 + bne _080776CC + bl mplay_has_finished_maybe + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _080776E4 + ldr r4, _080776C0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bls _080776D2 + ldr r0, _080776C4 + bl m4aMPlayStop + ldr r0, _080776C8 + bl m4aMPlayStop + strh r5, [r4] + b _080776F6 + .align 2, 0 +_080776BC: .4byte 0x0202f7b3 +_080776C0: .4byte 0x03004af0 +_080776C4: .4byte 0x030073c0 +_080776C8: .4byte 0x03007400 +_080776CC: + ldr r1, _080776DC + movs r0, 0 + strh r0, [r1] +_080776D2: + ldr r1, _080776E0 + movs r0, 0x1 + strb r0, [r1] + b _080776F6 + .align 2, 0 +_080776DC: .4byte 0x03004af0 +_080776E0: .4byte 0x0202f7b0 +_080776E4: + ldr r0, _080776FC + movs r2, 0 + strh r1, [r0] + ldr r1, _08077700 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, _08077704 + strb r2, [r0] +_080776F6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080776FC: .4byte 0x03004af0 +_08077700: .4byte 0x0202f7a4 +_08077704: .4byte 0x0202f7b0 + thumb_func_end ma20_wait_for_something + + thumb_func_start ma21_08074164 +ma21_08074164: @ 8077708 + push {r4-r6,lr} + ldr r5, _08077748 + ldr r4, [r5] + adds r3, r4, 0x1 + str r3, [r5] + ldrb r2, [r4, 0x1] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r0, _0807774C + lsls r2, 1 + adds r2, r0 + lsls r1, 16 + asrs r1, 16 + movs r6, 0 + ldrsh r0, [r2, r6] + cmp r1, r0 + bne _08077750 + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 24 + adds r1, r0 + str r1, [r5] + b _08077756 + .align 2, 0 +_08077748: .4byte 0x0202f7a4 +_0807774C: .4byte 0x03004b00 +_08077750: + adds r0, r4, 0 + adds r0, 0x8 + str r0, [r5] +_08077756: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end ma21_08074164 + + thumb_func_start sub_807775C +sub_807775C: @ 807775C + push {r4,lr} + ldr r4, _0807778C + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077790 + ldr r2, [r4] + ldrb r1, [r2] + ldrb r0, [r2, 0x1] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x2] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 24 + adds r1, r0 + str r1, [r4] + b _08077796 + .align 2, 0 +_0807778C: .4byte 0x0202f7a4 +_08077790: + ldr r0, [r4] + adds r0, 0x4 + str r0, [r4] +_08077796: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_807775C + + thumb_func_start sub_807779C +sub_807779C: @ 807779C + push {r4,lr} + ldr r0, _080777B0 + ldr r1, [r0] + ldrb r2, [r1, 0x1] + adds r1, 0x2 + str r1, [r0] + cmp r2, 0 + beq _080777B8 + ldr r0, _080777B4 + b _080777BA + .align 2, 0 +_080777B0: .4byte 0x0202f7a4 +_080777B4: .4byte 0x0202f7c9 +_080777B8: + ldr r0, _080777FC +_080777BA: + ldrb r0, [r0] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080777F4 + cmp r4, 0 + beq _080777D6 + cmp r4, 0x3 + bne _080777F4 +_080777D6: + ldr r3, _08077800 + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r3] + ldr r2, _08077804 + ldrb r0, [r2] + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] +_080777F4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080777FC: .4byte 0x0202f7c8 +_08077800: .4byte 0x0400000a +_08077804: .4byte 0x0400000c + thumb_func_end sub_807779C + + thumb_func_start sub_8077808 +sub_8077808: @ 8077808 + push {lr} + ldr r0, _08077840 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0807783A + ldr r3, _08077844 + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r3] + ldr r2, _08077848 + ldrb r0, [r2] + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] +_0807783A: + pop {r0} + bx r0 + .align 2, 0 +_08077840: .4byte 0x0202f7a4 +_08077844: .4byte 0x0400000a +_08077848: .4byte 0x0400000c + thumb_func_end sub_8077808 + + thumb_func_start sub_807784C +sub_807784C: @ 807784C + push {r4-r7,lr} + ldr r1, _0807787C + ldr r0, [r1] + ldrb r6, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + ldr r7, _08077880 + ldrb r0, [r7] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _08077884 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080778C2 + cmp r6, 0 + beq _08077888 + ldrb r0, [r5] + b _0807788A + .align 2, 0 +_0807787C: .4byte 0x0202f7a4 +_08077880: .4byte 0x0202f7c8 +_08077884: .4byte 0x0202f7c9 +_08077888: + ldrb r0, [r7] +_0807788A: + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080778C2 + cmp r4, 0 + beq _080778A4 + cmp r4, 0x3 + bne _080778C2 +_080778A4: + ldr r3, _080778C8 + ldrb r2, [r3] + movs r1, 0x4 + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x1 + orrs r0, r2 + strb r0, [r3] + ldr r2, _080778CC + ldrb r0, [r2] + ands r1, r0 + movs r0, 0x2 + orrs r1, r0 + strb r1, [r2] +_080778C2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080778C8: .4byte 0x0400000a +_080778CC: .4byte 0x0400000c + thumb_func_end sub_807784C + + thumb_func_start ma2B_make_side_invisible +ma2B_make_side_invisible: @ 80778D0 + push {r4,lr} + ldr r4, _08077904 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080778F8 + ldr r1, _08077908 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_080778F8: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077904: .4byte 0x0202f7a4 +_08077908: .4byte 0x02020004 + thumb_func_end ma2B_make_side_invisible + + thumb_func_start ma2C_make_side_visible +ma2C_make_side_visible: @ 807790C + push {r4,lr} + ldr r4, _08077944 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _08077936 + ldr r1, _08077948 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08077936: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08077944: .4byte 0x0202f7a4 +_08077948: .4byte 0x02020004 + thumb_func_end ma2C_make_side_visible + + thumb_func_start sub_807794C +sub_807794C: @ 807794C + push {r4-r7,lr} + ldr r1, _08077998 + ldr r0, [r1] + ldrb r7, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080779F6 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080779F6 + ldr r6, _0807799C + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _080779A0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080779F6 + cmp r7, 0 + bne _080779A4 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + b _080779B0 + .align 2, 0 +_08077998: .4byte 0x0202f7a4 +_0807799C: .4byte 0x0202f7c8 +_080779A0: .4byte 0x0202f7c9 +_080779A4: + ldrb r0, [r5] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 +_080779B0: + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080779F6 + ldr r1, _080779EC + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + cmp r4, 0x2 + bne _080779E0 + ldrb r0, [r2, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r2, 0x5] +_080779E0: + cmp r4, 0x1 + bne _080779F0 + movs r0, 0 + bl sub_8076464 + b _080779F6 + .align 2, 0 +_080779EC: .4byte 0x02020004 +_080779F0: + movs r0, 0x1 + bl sub_8076464 +_080779F6: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_807794C + + thumb_func_start sub_80779FC +sub_80779FC: @ 80779FC + push {r4-r7,lr} + ldr r1, _08077A48 + ldr r0, [r1] + ldrb r7, [r0, 0x1] + adds r0, 0x2 + str r0, [r1] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08077A88 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08077A88 + ldr r6, _08077A4C + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldr r5, _08077A50 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _08077A88 + cmp r7, 0 + bne _08077A54 + ldrb r0, [r6] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + b _08077A60 + .align 2, 0 +_08077A48: .4byte 0x0202f7a4 +_08077A4C: .4byte 0x0202f7c8 +_08077A50: .4byte 0x0202f7c9 +_08077A54: + ldrb r0, [r5] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 +_08077A60: + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _08077A88 + cmp r4, 0x2 + bne _08077A88 + ldr r1, _08077A90 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0, 0x5] +_08077A88: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08077A90: .4byte 0x02020004 + thumb_func_end sub_80779FC + + thumb_func_start ma2F_stop_music +ma2F_stop_music: @ 8077A94 + push {lr} + ldr r0, _08077AB0 + bl m4aMPlayStop + ldr r0, _08077AB4 + bl m4aMPlayStop + ldr r1, _08077AB8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08077AB0: .4byte 0x030073c0 +_08077AB4: .4byte 0x03007400 +_08077AB8: .4byte 0x0202f7a4 + thumb_func_end ma2F_stop_music + + thumb_func_start sub_8077ABC +sub_8077ABC: @ 8077ABC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077ADA + cmp r4, 0x3 + bne _08077ADA + cmp r5, 0x3 + bne _08077ADA + movs r4, 0x1 +_08077ADA: + cmp r4, 0x4 + bhi _08077B50 + lsls r0, r4, 2 + ldr r1, _08077AE8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08077AE8: .4byte _08077AEC + .align 2, 0 +_08077AEC: + .4byte _08077B00 + .4byte _08077B28 + .4byte _08077B00 + .4byte _08077B50 + .4byte _08077B50 +_08077B00: + ldr r4, _08077B20 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 22 + ldr r1, _08077B24 + ldrh r2, [r1] + movs r1, 0x1 + ands r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + b _08077BF4 + .align 2, 0 +_08077B20: .4byte gUnknown_0837F578 +_08077B24: .4byte 0x020239f8 +_08077B28: + ldr r4, _08077B48 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 22 + ldr r1, _08077B4C + ldrh r2, [r1] + movs r1, 0x1 + ands r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0, 0x1] + b _08077BF4 + .align 2, 0 +_08077B48: .4byte gUnknown_0837F578 +_08077B4C: .4byte 0x020239f8 +_08077B50: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077B74 + ldr r2, _08077B6C + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08077B70 + ldrh r1, [r2, 0x2] + b _08077BDE + .align 2, 0 +_08077B6C: .4byte 0x02019348 +_08077B70: + ldrh r1, [r2] + b _08077BDE +_08077B74: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08077BA8 + lsls r0, r5, 2 + ldr r1, _08077B9C + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08077BDC + ldr r1, _08077BA0 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08077BA4 + b _08077BC2 + .align 2, 0 +_08077B9C: .4byte 0x02017800 +_08077BA0: .4byte 0x02024a6a +_08077BA4: .4byte 0x030045c0 +_08077BA8: + lsls r0, r5, 2 + ldr r1, _08077BD0 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08077BDC + ldr r1, _08077BD4 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08077BD8 +_08077BC2: + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r1, r0, 16 + b _08077BDE + .align 2, 0 +_08077BD0: .4byte 0x02017800 +_08077BD4: .4byte 0x02024a6a +_08077BD8: .4byte 0x03004360 +_08077BDC: + ldrh r1, [r1, 0x2] +_08077BDE: + cmp r4, 0x3 + bne _08077BE8 + adds r0, r5, 0 + movs r2, 0x1 + b _08077BEC +_08077BE8: + adds r0, r5, 0 + movs r2, 0 +_08077BEC: + bl sub_8077E44 + lsls r0, 24 + lsrs r0, 24 +_08077BF4: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8077ABC + + thumb_func_start sub_8077BFC +sub_8077BFC: @ 8077BFC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08077C1C + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077D04 +_08077C1C: + cmp r5, 0xC9 + bne _08077CCC + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077C44 + ldr r2, _08077C3C + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08077C40 + ldr r2, [r2, 0x10] + b _08077C7E + .align 2, 0 +_08077C3C: .4byte 0x02019348 +_08077C40: + ldr r2, [r2, 0x8] + b _08077C7E +_08077C44: + lsls r1, r4, 2 + ldr r0, _08077C6C + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + bne _08077C78 + ldr r1, _08077C70 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08077C74 + adds r0, r1 + movs r1, 0 + bl PokemonGetField + adds r2, r0, 0 + b _08077C7E + .align 2, 0 +_08077C6C: .4byte 0x02017800 +_08077C70: .4byte 0x02024a6a +_08077C74: .4byte 0x03004360 +_08077C78: + ldr r0, _08077CB4 + adds r0, r1, r0 + ldr r2, [r0] +_08077C7E: + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _08077CB8 + adds r0, r5, 0 + b _08077CC2 + .align 2, 0 +_08077CB4: .4byte 0x02024e70 +_08077CB8: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_08077CC2: + ldr r1, _08077CC8 + lsls r0, 2 + b _08077DC8 + .align 2, 0 +_08077CC8: .4byte gUnknown_081E9114 +_08077CCC: + ldr r0, _08077CE0 + cmp r5, r0 + bne _08077CEC + ldr r0, _08077CE4 + ldr r1, _08077CE8 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + b _08077DCC + .align 2, 0 +_08077CE0: .4byte 0x00000181 +_08077CE4: .4byte gUnknown_0837F5AC +_08077CE8: .4byte 0x02024e84 +_08077CEC: + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + bls _08077CFC + ldr r0, _08077CF8 + b _08077DCA + .align 2, 0 +_08077CF8: .4byte gUnknown_081E9114 +_08077CFC: + ldr r1, _08077D00 + b _08077DC6 + .align 2, 0 +_08077D00: .4byte gUnknown_081E9114 +_08077D04: + cmp r5, 0xC9 + bne _08077D90 + lsls r1, r4, 2 + ldr r0, _08077D30 + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + bne _08077D3C + ldr r1, _08077D34 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08077D38 + adds r0, r1 + movs r1, 0 + bl PokemonGetField + adds r2, r0, 0 + b _08077D42 + .align 2, 0 +_08077D30: .4byte 0x02017800 +_08077D34: .4byte 0x02024a6a +_08077D38: .4byte 0x030045c0 +_08077D3C: + ldr r0, _08077D78 + adds r0, r1, r0 + ldr r2, [r0] +_08077D42: + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _08077D7C + adds r0, r5, 0 + b _08077D86 + .align 2, 0 +_08077D78: .4byte 0x02024e70 +_08077D7C: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_08077D86: + ldr r1, _08077D8C + lsls r0, 2 + b _08077DC8 + .align 2, 0 +_08077D8C: .4byte gUnknown_081E7C74 +_08077D90: + ldr r0, _08077DA8 + cmp r5, r0 + bne _08077DB4 + ldr r0, _08077DAC + ldr r1, _08077DB0 + adds r1, r4, r1 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _08077DCC + .align 2, 0 +_08077DA8: .4byte 0x00000181 +_08077DAC: .4byte gUnknown_0837F598 +_08077DB0: .4byte 0x02024e84 +_08077DB4: + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + bls _08077DC4 + ldr r0, _08077DC0 + b _08077DCA + .align 2, 0 +_08077DC0: .4byte gUnknown_081E7C74 +_08077DC4: + ldr r1, _08077DD4 +_08077DC6: + lsls r0, r5, 2 +_08077DC8: + adds r0, r1 +_08077DCA: + ldrb r0, [r0, 0x1] +_08077DCC: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08077DD4: .4byte gUnknown_081E7C74 + thumb_func_end sub_8077BFC + + thumb_func_start sub_8077DD8 +sub_8077DD8: @ 8077DD8 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + adds r7, r4, 0 + movs r5, 0 + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08077E36 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08077E36 + ldr r0, _08077E14 + cmp r4, r0 + bne _08077E20 + ldr r0, _08077E18 + ldr r1, _08077E1C + adds r1, r6, r1 + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + b _08077E36 + .align 2, 0 +_08077E14: .4byte 0x00000181 +_08077E18: .4byte gUnknown_0837F5A8 +_08077E1C: .4byte 0x02024e84 +_08077E20: + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bls _08077E30 + ldr r0, _08077E2C + b _08077E34 + .align 2, 0 +_08077E2C: .4byte gUnknown_081ECB14 +_08077E30: + ldr r0, _08077E40 + adds r0, r7, r0 +_08077E34: + ldrb r5, [r0] +_08077E36: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08077E40: .4byte gUnknown_081ECB14 + thumb_func_end sub_8077DD8 + + thumb_func_start sub_8077E44 +sub_8077E44: @ 8077E44 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08077E68 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077E76 +_08077E68: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8077BFC + lsls r0, 24 + lsrs r4, r0, 24 + b _08077E94 +_08077E76: + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8077BFC + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8077DD8 + lsls r0, 24 + lsrs r0, 24 + subs r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_08077E94: + adds r0, r6, 0 + bl battle_get_per_side_status + ldr r3, _08077EDC + lsls r0, 24 + lsrs r0, 22 + ldr r1, _08077EE0 + ldrh r2, [r1] + movs r1, 0x1 + ands r1, r2 + lsls r1, 4 + adds r0, r1 + adds r0, r3 + ldrb r0, [r0, 0x1] + adds r0, r4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r7, 0 + beq _08077ED4 + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08077ECE + adds r0, r4, 0 + adds r0, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 +_08077ECE: + cmp r4, 0x68 + bls _08077ED4 + movs r4, 0x68 +_08077ED4: + adds r0, r4, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08077EDC: .4byte gUnknown_0837F578 +_08077EE0: .4byte 0x020239f8 + thumb_func_end sub_8077E44 + + thumb_func_start sub_8077EE4 +sub_8077EE4: @ 8077EE4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r0, 0xFD + lsls r0, 24 + adds r1, r0 + lsrs r1, 24 + cmp r1, 0x1 + bhi _08077F56 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08077F1C + ldr r2, _08077F14 + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08077F18 + ldrh r1, [r2, 0x2] + b _08077F3E + .align 2, 0 +_08077F14: .4byte 0x02019348 +_08077F18: + ldrh r1, [r2] + b _08077F3E +_08077F1C: + lsls r0, r4, 2 + ldr r1, _08077F34 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08077F3C + ldr r1, _08077F38 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + b _08077F3E + .align 2, 0 +_08077F34: .4byte 0x02017800 +_08077F38: .4byte 0x0202f7ca +_08077F3C: + ldrh r1, [r1, 0x2] +_08077F3E: + cmp r5, 0x3 + bne _08077F4C + adds r0, r4, 0 + movs r2, 0x1 + bl sub_8077E44 + b _08077F5E +_08077F4C: + adds r0, r4, 0 + movs r2, 0 + bl sub_8077E44 + b _08077F5E +_08077F56: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8077ABC +_08077F5E: + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8077EE4 + + thumb_func_start sub_8077F68 +sub_8077F68: @ 8077F68 + push {lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x4 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_8077F68 + + thumb_func_start sub_8077F7C +sub_8077F7C: @ 8077F7C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08077FA0 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r1, 0x80 + lsls r1, 13 + b _08077FB0 +_08077FA0: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 8 + movs r1, 0x88 + lsls r1, 13 +_08077FB0: + adds r0, r1 + lsrs r0, 16 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8077F7C + + thumb_func_start sub_8077FC0 +sub_8077FC0: @ 8077FC0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08078060 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08078010 + lsls r0, r5, 2 + ldr r1, _08078004 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08078044 + ldr r1, _08078008 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0807800C + b _0807802A + .align 2, 0 +_08078004: .4byte 0x02017800 +_08078008: .4byte 0x02024a6a +_0807800C: .4byte 0x030045c0 +_08078010: + lsls r0, r5, 2 + ldr r1, _08078038 + adds r1, r0, r1 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08078044 + ldr r1, _0807803C + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08078040 +_0807802A: + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r4, r0, 16 + b _08078046 + .align 2, 0 +_08078038: .4byte 0x02017800 +_0807803C: .4byte 0x02024a6a +_08078040: .4byte 0x03004360 +_08078044: + ldrh r4, [r1, 0x2] +_08078046: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08078060 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8077DD8 + subs r0, r6, r0 + lsls r0, 24 + lsrs r6, r0, 24 +_08078060: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8077FC0 + + thumb_func_start obj_id_for_side_relative_to_move +obj_id_for_side_relative_to_move: @ 8078068 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + bne _08078090 + ldr r4, _08078088 + ldrb r0, [r4] + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _080780DE + ldr r1, _0807808C + ldrb r0, [r4] + b _080780EE + .align 2, 0 +_08078088: .4byte 0x0202f7c8 +_0807808C: .4byte 0x02024be0 +_08078090: + cmp r0, 0x1 + bne _080780B0 + ldr r4, _080780A8 + ldrb r0, [r4] + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _080780DE + ldr r1, _080780AC + ldrb r0, [r4] + b _080780EE + .align 2, 0 +_080780A8: .4byte 0x0202f7c9 +_080780AC: .4byte 0x02024be0 +_080780B0: + cmp r1, 0x2 + bne _080780CC + ldr r5, _080780C8 + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _080780DE + b _080780E8 + .align 2, 0 +_080780C8: .4byte 0x0202f7c8 +_080780CC: + ldr r5, _080780E4 + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + bne _080780E8 +_080780DE: + movs r0, 0xFF + b _080780F2 + .align 2, 0 +_080780E4: .4byte 0x0202f7c9 +_080780E8: + ldr r1, _080780F8 + ldrb r0, [r5] + eors r0, r4 +_080780EE: + adds r0, r1 + ldrb r0, [r0] +_080780F2: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080780F8: .4byte 0x02024be0 + thumb_func_end obj_id_for_side_relative_to_move + + thumb_func_start oamt_set_x3A_32 +oamt_set_x3A_32: @ 80780FC + strh r1, [r0, 0x3A] + lsrs r1, 16 + strh r1, [r0, 0x3C] + bx lr + thumb_func_end oamt_set_x3A_32 + + thumb_func_start sub_8078104 +sub_8078104: @ 8078104 + ldrh r2, [r0, 0x3A] + movs r3, 0x3C + ldrsh r1, [r0, r3] + lsls r1, 16 + orrs r2, r1 + str r2, [r0, 0x1C] + bx lr + thumb_func_end sub_8078104 + + thumb_func_start sub_8078114 +sub_8078114: @ 8078114 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08078168 + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl cosine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _08078154 + ldr r2, _08078150 + b _0807815C + .align 2, 0 +_08078150: .4byte 0xffffff00 +_08078154: + cmp r0, 0 + bge _08078160 + movs r2, 0x80 + lsls r2, 1 +_0807815C: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_08078160: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _0807816E +_08078168: + adds r0, r4, 0 + bl sub_8078104 +_0807816E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078114 + + thumb_func_start sub_8078174 +sub_8078174: @ 8078174 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080781E4 + movs r2, 0x2E + ldrsh r0, [r4, r2] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + ldrh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 24 + ldrh r2, [r4, 0x30] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + bl cosine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x36] + ldrh r2, [r4, 0x38] + adds r0, r2 + strh r0, [r4, 0x38] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080781D0 + ldr r2, _080781CC + b _080781D8 + .align 2, 0 +_080781CC: .4byte 0xffffff00 +_080781D0: + cmp r0, 0 + bge _080781DC + movs r2, 0x80 + lsls r2, 1 +_080781D8: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080781DC: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080781EA +_080781E4: + adds r0, r4, 0 + bl sub_8078104 +_080781EA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078174 + + thumb_func_start unref_sub_80781F0 +unref_sub_80781F0: @ 80781F0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0807826C + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl sine + strh r0, [r4, 0x24] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl cosine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + ldrh r0, [r4, 0x38] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _08078238 + ldr r2, _08078234 + b _08078240 + .align 2, 0 +_08078234: .4byte 0xffffff00 +_08078238: + cmp r0, 0 + bge _08078244 + movs r2, 0x80 + lsls r2, 1 +_08078240: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_08078244: + ldrh r1, [r4, 0x36] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + ble _08078258 + ldr r2, _08078254 + b _08078260 + .align 2, 0 +_08078254: .4byte 0xffffff00 +_08078258: + cmp r0, 0 + bge _08078264 + movs r2, 0x80 + lsls r2, 1 +_08078260: + adds r0, r1, r2 + strh r0, [r4, 0x36] +_08078264: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _08078272 +_0807826C: + adds r0, r4, 0 + bl sub_8078104 +_08078272: + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_80781F0 + + thumb_func_start sub_8078278 +sub_8078278: @ 8078278 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080782CC + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl sine + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl cosine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x2E] + adds r1, r0, r2 + strh r1, [r4, 0x2E] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080782B8 + ldr r2, _080782B4 + b _080782C0 + .align 2, 0 +_080782B4: .4byte 0xffffff00 +_080782B8: + cmp r0, 0 + bge _080782C4 + movs r2, 0x80 + lsls r2, 1 +_080782C0: + adds r0, r1, r2 + strh r0, [r4, 0x2E] +_080782C4: + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + b _080782D2 +_080782CC: + adds r0, r4, 0 + bl sub_8078104 +_080782D2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078278 + + thumb_func_start sub_80782D8 +sub_80782D8: @ 80782D8 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _080782EC + subs r0, r2, 0x1 + strh r0, [r1, 0x2E] + b _080782F2 +_080782EC: + adds r0, r1, 0 + bl sub_8078104 +_080782F2: + pop {r0} + bx r0 + thumb_func_end sub_80782D8 + + thumb_func_start sub_80782F8 +sub_80782F8: @ 80782F8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078314 + ldr r1, _08078310 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078310: .4byte sub_8078364 + thumb_func_end sub_80782F8 + + thumb_func_start sub_8078314 +sub_8078314: @ 8078314 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x30 + ldrsh r1, [r4, r0] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0807832A + ldrh r0, [r4, 0x2E] + negs r0, r0 + strh r0, [r4, 0x2E] +_0807832A: + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + subs r0, r1 + ldrh r5, [r4, 0x2E] + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + cmp r0, 0 + bge _08078344 + negs r0, r0 +_08078344: + strh r0, [r4, 0x2E] + movs r1, 0x36 + ldrsh r0, [r4, r1] + movs r2, 0x34 + ldrsh r1, [r4, r2] + subs r0, r1 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x32] + strh r5, [r4, 0x30] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8078314 + + thumb_func_start sub_8078364 +sub_8078364: @ 8078364 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0 + ble _08078388 + subs r0, r2, 0x1 + strh r0, [r1, 0x2E] + ldrh r0, [r1, 0x30] + ldrh r2, [r1, 0x24] + adds r0, r2 + strh r0, [r1, 0x24] + ldrh r0, [r1, 0x32] + ldrh r3, [r1, 0x26] + adds r0, r3 + strh r0, [r1, 0x26] + b _0807838E +_08078388: + adds r0, r1, 0 + bl sub_8078104 +_0807838E: + pop {r0} + bx r0 + thumb_func_end sub_8078364 + + thumb_func_start sub_8078394 +sub_8078394: @ 8078394 + push {lr} + adds r2, r0, 0 + ldrh r1, [r2, 0x2E] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080783C4 + subs r0, r1, 0x1 + strh r0, [r2, 0x2E] + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x34] + adds r0, r1 + strh r0, [r2, 0x34] + ldrh r1, [r2, 0x32] + ldrh r3, [r2, 0x36] + adds r1, r3 + strh r1, [r2, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r2, 0x26] + b _080783CA +_080783C4: + adds r0, r2, 0 + bl sub_8078104 +_080783CA: + pop {r0} + bx r0 + thumb_func_end sub_8078394 + + thumb_func_start sub_80783D0 +sub_80783D0: @ 80783D0 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _08078400 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r1, r2 + strh r1, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + lsls r1, 16 + asrs r1, 24 + strh r1, [r4, 0x26] + b _08078406 +_08078400: + adds r0, r4, 0 + bl sub_8078104 +_08078406: + adds r0, r4, 0 + bl sub_809D638 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80783D0 + + thumb_func_start unref_sub_8078414 +unref_sub_8078414: @ 8078414 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x34] + ldr r5, _08078450 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _08078454 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08078450: .4byte 0x0202f7c9 +_08078454: .4byte sub_80782F8 + thumb_func_end unref_sub_8078414 + + thumb_func_start sub_8078458 +sub_8078458: @ 8078458 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x2E] + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _0807849C + subs r0, r1, 0x1 + strh r0, [r3, 0x2E] + ldr r2, _08078498 + movs r4, 0x34 + ldrsh r1, [r3, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x30] + ldrh r4, [r0, 0x24] + adds r1, r4 + strh r1, [r0, 0x24] + movs r0, 0x34 + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r3, 0x32] + ldrh r2, [r0, 0x26] + adds r1, r2 + strh r1, [r0, 0x26] + b _080784A2 + .align 2, 0 +_08078498: .4byte 0x02020004 +_0807849C: + adds r0, r3, 0 + bl sub_8078104 +_080784A2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078458 + + thumb_func_start sub_80784A8 +sub_80784A8: @ 80784A8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080784F8 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x30] + ldrh r0, [r4, 0x34] + adds r1, r0 + strh r1, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + ldr r3, _080784F4 + movs r0, 0x38 + ldrsh r2, [r4, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + lsls r1, 16 + asrs r1, 24 + strh r1, [r0, 0x24] + movs r1, 0x38 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x26] + b _080784FE + .align 2, 0 +_080784F4: .4byte 0x02020004 +_080784F8: + adds r0, r4, 0 + bl sub_8078104 +_080784FE: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80784A8 + + thumb_func_start sub_8078504 +sub_8078504: @ 8078504 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _08078566 + subs r0, r1, 0x1 + strh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r1, r0 + strh r1, [r4, 0x32] + ldrh r1, [r4, 0x36] + lsls r0, r1, 16 + asrs r0, 24 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + adds r1, r0 + strh r1, [r4, 0x36] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _0807856C + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0807856C + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0807856C +_08078566: + adds r0, r4, 0 + bl sub_8078104 +_0807856C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078504 + + thumb_func_start move_anim_8074EE0 +move_anim_8074EE0: @ 8078574 + push {r4,lr} + adds r4, r0, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl move_anim_8072740 + pop {r4} + pop {r0} + bx r0 + thumb_func_end move_anim_8074EE0 + + thumb_func_start unref_sub_8078588 +unref_sub_8078588: @ 8078588 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x26] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x34] + ldr r5, _080785C4 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, _080785C8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080785C4: .4byte 0x0202f7c8 +_080785C8: .4byte sub_80782F8 + thumb_func_end unref_sub_8078588 + + thumb_func_start unref_sub_80785CC +unref_sub_80785CC: @ 80785CC + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + bl ResetPaletteStructByUid + adds r0, r4, 0 + bl move_anim_8074EE0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_80785CC + + thumb_func_start sub_80785E4 +sub_80785E4: @ 80785E4 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080785FA + adds r0, r2, 0 + bl sub_8078104 +_080785FA: + pop {r0} + bx r0 + thumb_func_end sub_80785E4 + + thumb_func_start sub_8078600 +sub_8078600: @ 8078600 + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08078616 + adds r0, r2, 0 + bl sub_8078104 +_08078616: + pop {r0} + bx r0 + thumb_func_end sub_8078600 + + thumb_func_start sub_807861C +sub_807861C: @ 807861C + push {lr} + ldr r1, _08078630 + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_8072740 + pop {r0} + bx r0 + .align 2, 0 +_08078630: .4byte 0x04000050 + thumb_func_end sub_807861C + + thumb_func_start sub_8078634 +sub_8078634: @ 8078634 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0807864C + movs r2, 0 + strh r2, [r1] + adds r1, 0x2 + strh r2, [r1] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_0807864C: .4byte 0x04000050 + thumb_func_end sub_8078634 + + thumb_func_start sub_8078650 +sub_8078650: @ 8078650 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _08078678 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08078678: .4byte 0x0202f7c8 + thumb_func_end sub_8078650 + + thumb_func_start sub_807867C +sub_807867C: @ 807867C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + lsls r1, 16 + lsrs r5, r1, 16 + mov r8, r5 + ldr r7, _080786B4 + ldrb r0, [r7] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080786B8 + ldrb r0, [r0] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + bhi _080786C8 + cmp r6, r0 + bcs _080786BC + lsls r0, r5, 16 + b _080786D8 + .align 2, 0 +_080786B4: .4byte 0x0202f7c8 +_080786B8: .4byte 0x0202f7c9 +_080786BC: + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080786D4 +_080786C8: + ldrh r1, [r4, 0x20] + lsls r0, r5, 16 + asrs r0, 16 + subs r1, r0 + strh r1, [r4, 0x20] + b _080786E0 +_080786D4: + mov r1, r8 + lsls r0, r1, 16 +_080786D8: + asrs r0, 16 + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] +_080786E0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_807867C + + thumb_func_start sub_80786EC +sub_80786EC: @ 80786EC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + movs r5, 0 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + movs r0, 0x2E + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 8 + bl __divsi3 + strh r0, [r4, 0x3A] + strh r5, [r4, 0x3C] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80786EC + + thumb_func_start sub_8078718 +sub_8078718: @ 8078718 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + bne _08078744 + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + adds r0, r1 + strh r0, [r4, 0x3C] + lsls r0, 16 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl sine + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r0, 0 + b _08078746 +_08078744: + movs r0, 0x1 +_08078746: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8078718 + + thumb_func_start oamt_add_pos2_onto_pos1 +oamt_add_pos2_onto_pos1: @ 807874C + ldrh r1, [r0, 0x24] + ldrh r2, [r0, 0x20] + adds r1, r2 + movs r2, 0 + strh r1, [r0, 0x20] + ldrh r1, [r0, 0x26] + ldrh r3, [r0, 0x22] + adds r1, r3 + strh r1, [r0, 0x22] + strh r2, [r0, 0x24] + strh r2, [r0, 0x26] + bx lr + thumb_func_end oamt_add_pos2_onto_pos1 + + thumb_func_start sub_8078764 +sub_8078764: @ 8078764 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + cmp r1, 0 + bne _0807878C + ldr r4, _080787A8 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] +_0807878C: + ldr r4, _080787AC + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080787A8: .4byte 0x0202f7c9 +_080787AC: .4byte 0x03004b00 + thumb_func_end sub_8078764 + + thumb_func_start sub_80787B0 +sub_80787B0: @ 80787B0 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + cmp r1, 0 + bne _080787D4 + ldr r4, _080787D0 + ldrb r0, [r4] + movs r1, 0 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x1 + b _080787E8 + .align 2, 0 +_080787D0: .4byte 0x0202f7c8 +_080787D4: + ldr r4, _0807880C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 +_080787E8: + bl sub_8077EE4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldr r4, _08078810 + movs r0, 0 + ldrsh r1, [r4, r0] + adds r0, r5, 0 + bl sub_807867C + ldrh r0, [r4, 0x2] + ldrh r1, [r5, 0x22] + adds r0, r1 + strh r0, [r5, 0x22] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807880C: .4byte 0x0202f7c8 +_08078810: .4byte 0x03004b00 + thumb_func_end sub_80787B0 + + thumb_func_start battle_side_get_owner +battle_side_get_owner: @ 8078814 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08078824 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_08078824: .4byte 0x02024a72 + thumb_func_end battle_side_get_owner + + thumb_func_start battle_get_per_side_status +battle_get_per_side_status: @ 8078828 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08078834 + adds r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_08078834: .4byte 0x02024a72 + thumb_func_end battle_get_per_side_status + + thumb_func_start battle_get_side_with_given_state +battle_get_side_with_given_state: @ 8078838 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r1, 0 + ldr r0, _0807886C + ldrb r2, [r0] + cmp r1, r2 + bcs _08078862 + ldr r4, _08078870 + ldrb r0, [r4] + cmp r0, r3 + beq _08078862 +_08078850: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r2 + bcs _08078862 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _08078850 +_08078862: + adds r0, r1, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0807886C: .4byte 0x02024a68 +_08078870: .4byte 0x02024a72 + thumb_func_end battle_get_side_with_given_state + + thumb_func_start sub_8078874 +sub_8078874: @ 8078874 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080788A0 + ldr r0, _08078898 + ldrb r0, [r0] + cmp r0, r4 + beq _080788EE + ldr r0, _0807889C + ldrb r0, [r0] + cmp r0, r4 + beq _080788EE + b _080788FC + .align 2, 0 +_08078898: .4byte 0x0202f7c8 +_0807889C: .4byte 0x0202f7c9 +_080788A0: + ldr r0, _080788C8 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080788FC + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080788D4 + ldr r1, _080788CC + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080788D0 + b _080788E2 + .align 2, 0 +_080788C8: .4byte 0x02024a72 +_080788CC: .4byte 0x02024a6a +_080788D0: .4byte 0x030045c0 +_080788D4: + ldr r1, _080788F4 + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080788F8 +_080788E2: + adds r0, r1 + movs r1, 0x39 + bl PokemonGetField + cmp r0, 0 + beq _080788FC +_080788EE: + movs r0, 0x1 + b _080788FE + .align 2, 0 +_080788F4: .4byte 0x02024a6a +_080788F8: .4byte 0x03004360 +_080788FC: + movs r0, 0 +_080788FE: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8078874 + + thumb_func_start battle_type_is_double +battle_type_is_double: @ 8078904 + ldr r0, _08078910 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_08078910: .4byte 0x020239f8 + thumb_func_end battle_type_is_double + + thumb_func_start sub_8078914 +sub_8078914: @ 8078914 + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08078938 + ldr r0, _08078930 + str r0, [r4] + ldr r0, _08078934 + str r0, [r4, 0x4] + movs r0, 0xE + b _08078942 + .align 2, 0 +_08078930: .4byte 0x06008000 +_08078934: .4byte 0x0600f000 +_08078938: + ldr r0, _0807894C + str r0, [r4] + ldr r0, _08078950 + str r0, [r4, 0x4] + movs r0, 0x8 +_08078942: + strb r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807894C: .4byte 0x06004000 +_08078950: .4byte 0x0600e000 + thumb_func_end sub_8078914 + + thumb_func_start sub_8078954 +sub_8078954: @ 8078954 + push {r4,lr} + adds r4, r0, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08078978 + ldr r0, _08078970 + str r0, [r4] + ldr r0, _08078974 + str r0, [r4, 0x4] + movs r0, 0xE + b _080789AA + .align 2, 0 +_08078970: .4byte 0x06008000 +_08078974: .4byte 0x0600f000 +_08078978: + ldr r0, _08078994 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080789A0 + ldr r0, _08078998 + str r0, [r4] + ldr r0, _0807899C + str r0, [r4, 0x4] + movs r0, 0x8 + b _080789AA + .align 2, 0 +_08078994: .4byte 0x0202f7c8 +_08078998: .4byte 0x06004000 +_0807899C: .4byte 0x0600e000 +_080789A0: + ldr r0, _080789B4 + str r0, [r4] + ldr r0, _080789B8 + str r0, [r4, 0x4] + movs r0, 0x9 +_080789AA: + strb r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080789B4: .4byte 0x06006000 +_080789B8: .4byte 0x0600f000 + thumb_func_end sub_8078954 + + thumb_func_start sub_80789BC +sub_80789BC: @ 80789BC + push {lr} + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080789CC + movs r0, 0x2 + b _080789CE +_080789CC: + movs r0, 0x1 +_080789CE: + pop {r1} + bx r1 + thumb_func_end sub_80789BC + + thumb_func_start sub_80789D4 +sub_80789D4: @ 80789D4 + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _080789F4 + ldr r2, _080789F0 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x1] + movs r1, 0x20 + orrs r0, r1 + b _08078A2A + .align 2, 0 +_080789F0: .4byte 0x0400000e +_080789F4: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08078A14 + ldr r2, _08078A10 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x1] + movs r1, 0x20 + orrs r0, r1 + b _08078A2A + .align 2, 0 +_08078A10: .4byte 0x0400000e +_08078A14: + ldr r2, _08078A30 + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 +_08078A2A: + strb r0, [r2, 0x1] + pop {r0} + bx r0 + .align 2, 0 +_08078A30: .4byte 0x0400000e + thumb_func_end sub_80789D4 + + thumb_func_start sub_8078A34 +sub_8078A34: @ 8078A34 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_8078A5C + ldr r1, _08078A58 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078A58: .4byte sub_80783D0 + thumb_func_end sub_8078A34 + + thumb_func_start sub_8078A5C +sub_8078A5C: @ 8078A5C + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x32] + ldrh r1, [r5, 0x30] + subs r0, r1 + ldrh r4, [r5, 0x36] + ldrh r1, [r5, 0x34] + subs r4, r1 + lsls r4, 24 + lsrs r4, 16 + lsls r0, 24 + asrs r0, 16 + movs r2, 0x2E + ldrsh r1, [r5, r2] + bl __divsi3 + movs r6, 0 + strh r0, [r5, 0x30] + lsls r4, 16 + asrs r4, 16 + movs r0, 0x2E + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl __divsi3 + strh r0, [r5, 0x32] + strh r6, [r5, 0x36] + strh r6, [r5, 0x34] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8078A5C + + thumb_func_start obj_translate_based_on_private_1_2_3_4 +obj_translate_based_on_private_1_2_3_4: @ 8078A9C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + movs r0, 0x32 + ldrsh r1, [r7, r0] + movs r2, 0x30 + ldrsh r0, [r7, r2] + subs r1, r0 + movs r3, 0x36 + ldrsh r2, [r7, r3] + movs r3, 0x34 + ldrsh r0, [r7, r3] + subs r2, r0 + lsrs r0, r1, 31 + mov r8, r0 + lsrs r3, r2, 31 + mov r9, r3 + cmp r1, 0 + bge _08078AC8 + negs r1, r1 +_08078AC8: + lsls r0, r1, 24 + lsrs r6, r0, 16 + adds r0, r2, 0 + cmp r0, 0 + bge _08078AD4 + negs r0, r0 +_08078AD4: + lsls r0, 24 + lsrs r5, r0, 16 + movs r0, 0x2E + ldrsh r4, [r7, r0] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r8 + cmp r2, 0 + beq _08078B00 + movs r0, 0x1 + orrs r6, r0 + b _08078B04 +_08078B00: + ldr r0, _08078B10 + ands r6, r0 +_08078B04: + mov r3, r9 + cmp r3, 0 + beq _08078B14 + movs r0, 0x1 + orrs r5, r0 + b _08078B18 + .align 2, 0 +_08078B10: .4byte 0x0000fffe +_08078B14: + ldr r0, _08078B30 + ands r5, r0 +_08078B18: + movs r0, 0 + strh r6, [r7, 0x30] + strh r5, [r7, 0x32] + strh r0, [r7, 0x36] + strh r0, [r7, 0x34] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08078B30: .4byte 0x0000fffe + thumb_func_end obj_translate_based_on_private_1_2_3_4 + + thumb_func_start sub_8078B34 +sub_8078B34: @ 8078B34 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + ldr r1, _08078B58 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078B58: .4byte sub_8078BB8 + thumb_func_end sub_8078B34 + + thumb_func_start sub_8078B5C +sub_8078B5C: @ 8078B5C + push {r4-r6,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _08078B6C + movs r0, 0x1 + b _08078BB0 +_08078B6C: + ldrh r1, [r2, 0x30] + ldrh r4, [r2, 0x32] + ldrh r6, [r2, 0x34] + ldrh r5, [r2, 0x36] + adds r0, r6, r1 + lsls r3, r0, 16 + lsrs r6, r3, 16 + adds r0, r5, r4 + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08078B8E + lsrs r0, r3, 24 + negs r0, r0 + b _08078B90 +_08078B8E: + lsrs r0, r3, 24 +_08078B90: + strh r0, [r2, 0x24] + movs r0, 0x1 + ands r4, r0 + cmp r4, 0 + beq _08078BA0 + lsrs r0, r5, 8 + negs r0, r0 + b _08078BA2 +_08078BA0: + lsrs r0, r5, 8 +_08078BA2: + strh r0, [r2, 0x26] + strh r6, [r2, 0x34] + strh r5, [r2, 0x36] + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + movs r0, 0 +_08078BB0: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8078B5C + + thumb_func_start sub_8078BB8 +sub_8078BB8: @ 8078BB8 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078B5C + lsls r0, 24 + cmp r0, 0 + beq _08078BCC + adds r0, r4, 0 + bl sub_8078104 +_08078BCC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078BB8 + + thumb_func_start sub_8078BD4 +sub_8078BD4: @ 8078BD4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + cmp r0, 0 + bge _08078BE8 + negs r0, r0 +_08078BE8: + lsls r0, 8 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl obj_translate_based_on_private_1_2_3_4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078BD4 + + thumb_func_start sub_8078C00 +sub_8078C00: @ 8078C00 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_8078BD4 + ldr r1, _08078C24 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078C24: .4byte sub_8078BB8 + thumb_func_end sub_8078C00 + + thumb_func_start sub_8078C28 +sub_8078C28: @ 8078C28 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + movs r0, 0x32 + ldrsh r1, [r7, r0] + movs r2, 0x30 + ldrsh r0, [r7, r2] + subs r1, r0 + movs r3, 0x36 + ldrsh r2, [r7, r3] + movs r3, 0x34 + ldrsh r0, [r7, r3] + subs r2, r0 + lsrs r0, r1, 31 + mov r8, r0 + lsrs r3, r2, 31 + mov r9, r3 + cmp r1, 0 + bge _08078C54 + negs r1, r1 +_08078C54: + lsls r0, r1, 20 + lsrs r6, r0, 16 + adds r0, r2, 0 + cmp r0, 0 + bge _08078C60 + negs r0, r0 +_08078C60: + lsls r0, 20 + lsrs r5, r0, 16 + movs r0, 0x2E + ldrsh r4, [r7, r0] + adds r0, r6, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r2, r8 + cmp r2, 0 + beq _08078C8C + movs r0, 0x1 + orrs r6, r0 + b _08078C90 +_08078C8C: + ldr r0, _08078C9C + ands r6, r0 +_08078C90: + mov r3, r9 + cmp r3, 0 + beq _08078CA0 + movs r0, 0x1 + orrs r5, r0 + b _08078CA4 + .align 2, 0 +_08078C9C: .4byte 0x0000fffe +_08078CA0: + ldr r0, _08078CBC + ands r5, r0 +_08078CA4: + movs r0, 0 + strh r6, [r7, 0x30] + strh r5, [r7, 0x32] + strh r0, [r7, 0x36] + strh r0, [r7, 0x34] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08078CBC: .4byte 0x0000fffe + thumb_func_end sub_8078C28 + + thumb_func_start sub_8078CC0 +sub_8078CC0: @ 8078CC0 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_8078C28 + ldr r1, _08078CE4 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078CE4: .4byte sub_8078D44 + thumb_func_end sub_8078CC0 + + thumb_func_start sub_8078CE8 +sub_8078CE8: @ 8078CE8 + push {r4-r6,lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _08078CF8 + movs r0, 0x1 + b _08078D3C +_08078CF8: + ldrh r1, [r2, 0x30] + ldrh r4, [r2, 0x32] + ldrh r6, [r2, 0x34] + ldrh r5, [r2, 0x36] + adds r0, r6, r1 + lsls r3, r0, 16 + lsrs r6, r3, 16 + adds r0, r5, r4 + lsls r0, 16 + lsrs r5, r0, 16 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08078D1A + lsrs r0, r3, 20 + negs r0, r0 + b _08078D1C +_08078D1A: + lsrs r0, r3, 20 +_08078D1C: + strh r0, [r2, 0x24] + movs r0, 0x1 + ands r4, r0 + cmp r4, 0 + beq _08078D2C + lsrs r0, r5, 4 + negs r0, r0 + b _08078D2E +_08078D2C: + lsrs r0, r5, 4 +_08078D2E: + strh r0, [r2, 0x26] + strh r6, [r2, 0x34] + strh r5, [r2, 0x36] + ldrh r0, [r2, 0x2E] + subs r0, 0x1 + strh r0, [r2, 0x2E] + movs r0, 0 +_08078D3C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8078CE8 + + thumb_func_start sub_8078D44 +sub_8078D44: @ 8078D44 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078CE8 + lsls r0, 24 + cmp r0, 0 + beq _08078D58 + adds r0, r4, 0 + bl sub_8078104 +_08078D58: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078D44 + + thumb_func_start sub_8078D60 +sub_8078D60: @ 8078D60 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x32 + ldrsh r1, [r4, r0] + movs r2, 0x30 + ldrsh r0, [r4, r2] + subs r0, r1, r0 + cmp r0, 0 + bge _08078D74 + negs r0, r0 +_08078D74: + lsls r0, 4 + movs r2, 0x2E + ldrsh r1, [r4, r2] + bl __divsi3 + strh r0, [r4, 0x2E] + adds r0, r4, 0 + bl sub_8078C28 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8078D60 + + thumb_func_start sub_8078D8C +sub_8078D8C: @ 8078D8C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + adds r0, r4, 0 + bl sub_8078D60 + ldr r1, _08078DB0 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078DB0: .4byte sub_8078D44 + thumb_func_end sub_8078D8C + + thumb_func_start obj_id_set_rotscale +obj_id_set_rotscale: @ 8078DB4 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r5, _08078E2C + lsls r2, 16 + lsrs r1, 16 + orrs r1, r2 + str r1, [sp] + ldr r0, [sp, 0x4] + ands r0, r5 + orrs r0, r3 + str r0, [sp, 0x4] + bl sub_8078E38 + lsls r0, 24 + cmp r0, 0 + beq _08078DF0 + mov r0, sp + ldrh r0, [r0] + negs r0, r0 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp] + ands r1, r5 + orrs r1, r0 + str r1, [sp] +_08078DF0: + ldr r1, _08078E30 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x3] + lsls r4, 26 + lsrs r4, 27 + add r5, sp, 0x8 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ObjAffineSet + ldr r0, _08078E34 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r5] + strh r0, [r4] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x2] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x4] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x6] + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08078E2C: .4byte 0xffff0000 +_08078E30: .4byte 0x02020004 +_08078E34: .4byte 0x030027f0 + thumb_func_end obj_id_set_rotscale + + thumb_func_start sub_8078E38 +sub_8078E38: @ 8078E38 + push {r4,lr} + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08078E68 + ldr r4, _08078E64 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x32 + ldrsh r0, [r1, r2] + cmp r0, 0xC9 + beq _08078E68 + movs r0, 0x1 + b _08078E6A + .align 2, 0 +_08078E64: .4byte 0x02020004 +_08078E68: + movs r0, 0 +_08078E6A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8078E38 + + thumb_func_start sub_8078E70 +sub_8078E70: @ 8078E70 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r1, _08078F38 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r7, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08078EA6 + adds r0, r7, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08078EB4 +_08078EA6: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_08078EB4: + ldr r1, _08078F38 + lsls r4, r6, 4 + adds r0, r4, r6 + lsls r0, 2 + adds r5, r0, r1 + movs r0, 0x3 + mov r1, r8 + ands r1, r0 + lsls r1, 2 + ldrb r2, [r5, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x1] + adds r2, r5, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08078F0E + ldrb r0, [r5, 0x1] + lsls r0, 30 + cmp r0, 0 + bne _08078F0E + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 2 + ldr r1, _08078F3C + adds r0, r1 + ldrb r1, [r0, 0x6] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] +_08078F0E: + ldr r1, _08078F38 + adds r0, r4, r6 + lsls r0, 2 + adds r0, r1 + ldrb r3, [r0, 0x1] + movs r1, 0x3 + orrs r3, r1 + strb r3, [r0, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + bl CalcCenterToCornerVec + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08078F38: .4byte 0x02020004 +_08078F3C: .4byte 0x02017810 + thumb_func_end sub_8078E70 + + thumb_func_start sub_8078F40 +sub_8078F40: @ 8078F40 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r2, 0x80 + lsls r2, 1 + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldr r1, _08078F98 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + movs r2, 0xD + negs r2, r2 + ands r1, r2 + strb r1, [r0, 0x1] + adds r3, r0, 0 + adds r3, 0x2C + ldrb r2, [r3] + movs r1, 0x7F + ands r1, r2 + strb r1, [r3] + ldrb r3, [r0, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + bl CalcCenterToCornerVec + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08078F98: .4byte 0x02020004 + thumb_func_end sub_8078F40 + + thumb_func_start sub_8078F9C +sub_8078F9C: @ 8078F9C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08078FD4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r2 + ldrb r0, [r2, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r1, _08078FD8 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x4] + movs r3, 0x4 + ldrsh r0, [r0, r3] + cmp r0, 0 + bge _08078FC8 + negs r0, r0 + lsls r0, 16 + lsrs r1, r0, 16 +_08078FC8: + lsls r0, r1, 16 + asrs r0, 19 + strh r0, [r2, 0x26] + pop {r0} + bx r0 + .align 2, 0 +_08078FD4: .4byte 0x02020004 +_08078FD8: .4byte 0x030027f0 + thumb_func_end sub_8078F9C + + thumb_func_start sub_8078FDC +sub_8078FDC: @ 8078FDC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r4, r0, 0 + ldr r0, [sp, 0x28] + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 16 + lsrs r5, r2, 16 + lsls r3, 16 + lsrs r7, r3, 16 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r0, [r4, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08079082 + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + cmp r6, 0 + beq _0807902A + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec +_0807902A: + ldr r6, _08079090 + lsls r0, r7, 16 + orrs r5, r0 + str r5, [sp] + ldr r0, [sp, 0x4] + ands r0, r6 + mov r1, r8 + orrs r0, r1 + str r0, [sp, 0x4] + bl sub_8078E38 + lsls r0, 24 + cmp r0, 0 + beq _08079058 + mov r0, sp + ldrh r0, [r0] + negs r0, r0 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp] + ands r1, r6 + orrs r1, r0 + str r1, [sp] +_08079058: + ldrb r4, [r4, 0x3] + lsls r4, 26 + lsrs r4, 27 + add r5, sp, 0x8 + mov r0, sp + adds r1, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ObjAffineSet + ldr r0, _08079094 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r5] + strh r0, [r4] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x2] + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x4] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x6] +_08079082: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08079090: .4byte 0xffff0000 +_08079094: .4byte 0x030027f0 + thumb_func_end sub_8078FDC + + thumb_func_start sub_8079098 +sub_8079098: @ 8079098 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r3, 0x80 + lsls r3, 1 + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0x1 + adds r2, r3, 0 + bl sub_8078FDC + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrb r3, [r4, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r4, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r4, 0 + bl CalcCenterToCornerVec + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8079098 + + thumb_func_start sub_80790D8 +sub_80790D8: @ 80790D8 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl ArcTan2 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80790D8 + + thumb_func_start sub_80790F0 +sub_80790F0: @ 80790F0 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + bl sub_80790D8 + lsls r0, 16 + negs r0, r0 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_80790F0 + + thumb_func_start sub_8079108 +sub_8079108: @ 8079108 + push {r4-r7,lr} + lsls r1, 24 + lsls r0, 20 + lsrs r0, 16 + cmp r1, 0 + bne _08079184 + ldr r2, _08079178 + ldr r1, _0807917C + lsls r0, 1 + adds r4, r0, r1 + adds r5, r0, r2 + movs r6, 0xF +_08079120: + ldr r0, [r5] + lsls r2, r0, 27 + lsrs r2, 27 + lsls r1, r0, 22 + lsrs r1, 27 + adds r2, r1 + lsls r0, 17 + lsrs r0, 27 + adds r0, r2 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1F + ands r0, r1 + ldrb r1, [r4] + movs r3, 0x20 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4] + lsls r3, r0, 5 + ldrh r1, [r4] + ldr r7, _08079180 + adds r2, r7, 0 + ands r1, r2 + orrs r1, r3 + strh r1, [r4] + lsls r0, 2 + ldrb r1, [r4, 0x1] + movs r3, 0x7D + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x1] + adds r4, 0x2 + adds r5, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _08079120 + b _08079194 + .align 2, 0 +_08079178: .4byte 0x0202eac8 +_0807917C: .4byte 0x0202eec8 +_08079180: .4byte 0xfffffc1f +_08079184: + lsls r1, r0, 1 + ldr r0, _0807919C + adds r0, r1, r0 + ldr r2, _080791A0 + adds r1, r2 + ldr r2, _080791A4 + bl CpuSet +_08079194: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807919C: .4byte 0x0202eac8 +_080791A0: .4byte 0x0202eec8 +_080791A4: .4byte 0x04000008 + thumb_func_end sub_8079108 + + thumb_func_start sub_80791A8 +sub_80791A8: @ 80791A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, [sp, 0x28] + ldr r5, [sp, 0x2C] + ldr r6, [sp, 0x30] + lsls r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + lsls r4, 24 + lsrs r4, 24 + mov r10, r4 + lsls r5, 24 + lsrs r5, 24 + str r5, [sp] + lsls r6, 24 + lsrs r6, 24 + str r6, [sp, 0x4] + movs r4, 0 + cmp r0, 0 + beq _080791FE + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080791F2 + movs r4, 0xE + b _080791FE +_080791F2: + bl sub_80789BC + lsls r0, 24 + lsrs r0, 24 + movs r4, 0x1 + lsls r4, r0 +_080791FE: + cmp r7, 0 + beq _08079210 + ldr r0, _08079288 + ldrb r0, [r0] + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_08079210: + mov r0, r8 + cmp r0, 0 + beq _08079224 + ldr r0, _0807928C + ldrb r0, [r0] + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_08079224: + mov r0, r9 + cmp r0, 0 + beq _0807924A + ldr r6, _08079288 + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807924A + ldrb r0, [r6] + eors r0, r5 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_0807924A: + mov r0, r10 + cmp r0, 0 + beq _08079270 + ldr r6, _0807928C + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079270 + ldrb r0, [r6] + eors r0, r5 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_08079270: + ldr r0, [sp] + cmp r0, 0 + beq _08079296 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08079290 + movs r0, 0x80 + lsls r0, 1 + b _08079294 + .align 2, 0 +_08079288: .4byte 0x0202f7c8 +_0807928C: .4byte 0x0202f7c9 +_08079290: + movs r0, 0x80 + lsls r0, 7 +_08079294: + orrs r4, r0 +_08079296: + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _080792AC + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080792AC + movs r0, 0x80 + lsls r0, 2 + orrs r4, r0 +_080792AC: + adds r0, r4, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80791A8 + + thumb_func_start sub_80792C0 +sub_80792C0: @ 80792C0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + movs r4, 0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080792EE + cmp r5, 0 + beq _0807939C + movs r4, 0x80 + lsls r4, 11 + b _0807939C +_080792EE: + cmp r5, 0 + beq _08079316 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079316 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r4, 0x1 + lsls r4, r0 +_08079316: + cmp r6, 0 + beq _08079342 + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079342 + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_08079342: + cmp r7, 0 + beq _0807936E + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807936E + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_0807936E: + mov r0, r8 + cmp r0, 0 + beq _0807939C + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _0807939C + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + adds r1, 0x10 + movs r0, 0x1 + lsls r0, r1 + orrs r4, r0 +_0807939C: + adds r0, r4, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80792C0 + + thumb_func_start sub_80793A8 +sub_80793A8: @ 80793A8 + lsls r0, 24 + lsrs r0, 24 + bx lr + thumb_func_end sub_80793A8 + + thumb_func_start unref_sub_80793B0 +unref_sub_80793B0: @ 80793B0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end unref_sub_80793B0 + + thumb_func_start sub_80793C4 +sub_80793C4: @ 80793C4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08079402 + ldr r2, _080793F0 + movs r3, 0x6 + ldrsh r0, [r2, r3] + movs r1, 0 + cmp r0, 0 + bne _080793DE + movs r1, 0x1 +_080793DE: + movs r3, 0x4 + ldrsh r0, [r2, r3] + cmp r0, 0 + bne _080793F4 + adds r0, r4, 0 + bl sub_80787B0 + b _080793FA + .align 2, 0 +_080793F0: .4byte 0x03004b00 +_080793F4: + adds r0, r4, 0 + bl sub_8078764 +_080793FA: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _08079416 +_08079402: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _08079416 + adds r0, r4, 0 + bl move_anim_8074EE0 +_08079416: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80793C4 + + thumb_func_start sub_807941C +sub_807941C: @ 807941C + push {r4-r7,lr} + adds r5, r0, 0 + ldr r6, _08079494 + movs r1, 0xA + ldrsh r0, [r6, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + movs r1, 0 + cmp r0, 0 + bne _08079434 + movs r1, 0x1 +_08079434: + ldrb r0, [r6, 0xA] + movs r7, 0x1 + cmp r0, 0 + bne _0807943E + movs r7, 0x3 +_0807943E: + adds r0, r5, 0 + bl sub_80787B0 + ldr r0, _08079498 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08079458 + ldrh r0, [r6, 0x4] + negs r0, r0 + strh r0, [r6, 0x4] +_08079458: + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x2E] + ldr r4, _0807949C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + ldrb r0, [r4] + adds r1, r7, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r6, [r6, 0x6] + adds r0, r6 + strh r0, [r5, 0x36] + ldr r0, _080794A0 + str r0, [r5, 0x1C] + ldr r1, _080794A4 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08079494: .4byte 0x03004b00 +_08079498: .4byte 0x0202f7c8 +_0807949C: .4byte 0x0202f7c9 +_080794A0: .4byte sub_8078B34 +_080794A4: .4byte move_anim_8072740 + thumb_func_end sub_807941C + + thumb_func_start sub_80794A8 +sub_80794A8: @ 80794A8 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80787B0 + ldr r0, _08079508 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080794C8 + ldr r1, _0807950C + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_080794C8: + ldr r4, _0807950C + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, _08079510 + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r6, 0x36] + ldrh r0, [r4, 0xA] + strh r0, [r6, 0x38] + adds r0, r6, 0 + bl sub_80786EC + ldr r0, _08079514 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08079508: .4byte 0x0202f7c8 +_0807950C: .4byte 0x03004b00 +_08079510: .4byte 0x0202f7c9 +_08079514: .4byte sub_8079518 + thumb_func_end sub_80794A8 + + thumb_func_start sub_8079518 +sub_8079518: @ 8079518 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _0807952C + adds r0, r4, 0 + bl move_anim_8072740 +_0807952C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8079518 + + thumb_func_start sub_8079534 +sub_8079534: @ 8079534 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _08079548 + movs r2, 0xC + ldrsh r1, [r0, r2] + cmp r1, 0 + bne _0807954C + movs r4, 0x1 + movs r7, 0x3 + b _08079550 + .align 2, 0 +_08079548: .4byte 0x03004b00 +_0807954C: + movs r4, 0 + movs r7, 0x1 +_08079550: + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08079568 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_80787B0 + ldr r0, _08079564 + b _08079572 + .align 2, 0 +_08079564: .4byte 0x0202f7c8 +_08079568: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8078764 + ldr r0, _080795D0 +_08079572: + ldrb r6, [r0] + ldr r0, _080795D4 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0807958A + ldr r1, _080795D8 + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_0807958A: + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8078764 + ldr r4, _080795D8 + ldrh r0, [r4, 0x8] + strh r0, [r5, 0x2E] + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r5, 0x32] + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r5, 0x36] + ldr r0, _080795DC + str r0, [r5, 0x1C] + ldr r1, _080795E0 + adds r0, r5, 0 + bl oamt_set_x3A_32 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080795D0: .4byte 0x0202f7c9 +_080795D4: .4byte 0x0202f7c8 +_080795D8: .4byte 0x03004b00 +_080795DC: .4byte sub_8078B34 +_080795E0: .4byte move_anim_8072740 + thumb_func_end sub_8079534 + + thumb_func_start duplicate_obj_of_side_rel2move_in_transparent_mode +duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80795E4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xFF + beq _0807964E + movs r6, 0 + ldr r2, _08079640 + lsls r0, r1, 4 + adds r0, r1 + lsls r1, r0, 2 +_08079600: + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r4, r0, r2 + adds r5, r4, 0 + adds r5, 0x3E + ldrb r0, [r5] + lsls r0, 31 + cmp r0, 0 + bne _08079644 + adds r0, r4, 0 + adds r1, r2 + movs r2, 0x44 + bl memcpy + ldrb r1, [r4, 0x1] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r1, r0 + movs r0, 0x4 + orrs r1, r0 + strb r1, [r4, 0x1] + ldrb r0, [r5] + adds r2, 0x8 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r5] + lsls r0, r6, 16 + asrs r0, 16 + b _08079652 + .align 2, 0 +_08079640: .4byte 0x02020004 +_08079644: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x3F + bls _08079600 +_0807964E: + movs r0, 0x1 + negs r0, r0 +_08079652: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end duplicate_obj_of_side_rel2move_in_transparent_mode + + thumb_func_start obj_delete_but_dont_free_vram +obj_delete_but_dont_free_vram: @ 8079658 + push {lr} + adds r3, r0, 0 + adds r3, 0x3F + ldrb r1, [r3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r3] + bl DestroySprite + pop {r0} + bx r0 + thumb_func_end obj_delete_but_dont_free_vram + + thumb_func_start sub_8079670 +sub_8079670: @ 8079670 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r5, 0 + movs r3, 0 + ldr r4, _080796E4 + movs r0, 0x4 + ldrsh r1, [r4, r0] + movs r6, 0 + ldrsh r0, [r4, r6] + cmp r1, r0 + ble _0807968A + movs r3, 0x1 +_0807968A: + cmp r1, r0 + bge _08079690 + ldr r3, _080796E8 +_08079690: + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r6, 0x2 + ldrsh r0, [r4, r6] + cmp r1, r0 + ble _0807969E + movs r5, 0x1 +_0807969E: + cmp r1, r0 + bge _080796A4 + ldr r5, _080796E8 +_080796A4: + ldr r0, _080796EC + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r2, 0 + strh r2, [r1, 0x8] + ldrh r0, [r4, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + ldrh r0, [r4] + strh r0, [r1, 0xE] + ldrh r0, [r4, 0x2] + strh r0, [r1, 0x10] + strh r3, [r1, 0x12] + strh r5, [r1, 0x14] + ldrh r0, [r4, 0x4] + strh r0, [r1, 0x16] + ldrh r0, [r4, 0x6] + strh r0, [r1, 0x18] + ldr r3, _080796F0 + ldrh r0, [r4, 0x2] + lsls r0, 8 + ldrh r2, [r4] + orrs r0, r2 + strh r0, [r3] + ldr r0, _080796F4 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080796E4: .4byte 0x03004b00 +_080796E8: .4byte 0x0000ffff +_080796EC: .4byte 0x03004b20 +_080796F0: .4byte 0x04000052 +_080796F4: .4byte sub_80796F8 + thumb_func_end sub_8079670 + + thumb_func_start sub_80796F8 +sub_80796F8: @ 80796F8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _08079744 + adds r3, r0, r1 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xA + ldrsh r1, [r3, r2] + cmp r0, r1 + ble _08079786 + movs r0, 0 + strh r0, [r3, 0x8] + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08079748 + ldrh r2, [r3, 0xE] + movs r5, 0xE + ldrsh r1, [r3, r5] + movs r5, 0x16 + ldrsh r0, [r3, r5] + cmp r1, r0 + beq _0807975C + ldrh r0, [r3, 0x12] + adds r0, r2, r0 + strh r0, [r3, 0xE] + b _0807975C + .align 2, 0 +_08079744: .4byte 0x03004b20 +_08079748: + ldrh r2, [r3, 0x10] + movs r0, 0x10 + ldrsh r1, [r3, r0] + movs r5, 0x18 + ldrsh r0, [r3, r5] + cmp r1, r0 + beq _0807975C + ldrh r0, [r3, 0x14] + adds r0, r2, r0 + strh r0, [r3, 0x10] +_0807975C: + ldr r2, _0807978C + ldrh r0, [r3, 0x10] + lsls r0, 8 + ldrh r1, [r3, 0xE] + orrs r0, r1 + strh r0, [r2] + movs r0, 0xE + ldrsh r1, [r3, r0] + movs r2, 0x16 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _08079786 + movs r5, 0x10 + ldrsh r1, [r3, r5] + movs r2, 0x18 + ldrsh r0, [r3, r2] + cmp r1, r0 + bne _08079786 + adds r0, r4, 0 + bl move_anim_task_del +_08079786: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807978C: .4byte 0x04000052 + thumb_func_end sub_80796F8 + + thumb_func_start sub_8079790 +sub_8079790: @ 8079790 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080797B0 + ldrb r0, [r0] + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xFF + bne _080797B4 + adds r0, r4, 0 + bl move_anim_task_del + b _080797DA + .align 2, 0 +_080797B0: .4byte 0x03004b00 +_080797B4: + ldr r1, _080797E0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r2, _080797E4 + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x5] + lsrs r1, 4 + lsls r1, 4 + ldr r3, _080797E8 + adds r2, r3, 0 + adds r1, r2 + strh r1, [r0, 0x8] + bl sub_80797EC +_080797DA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080797E0: .4byte 0x03004b20 +_080797E4: .4byte 0x02020004 +_080797E8: .4byte 0x00000101 + thumb_func_end sub_8079790 + + thumb_func_start sub_80797EC +sub_80797EC: @ 80797EC + ldr r3, _0807980C + ldrh r1, [r3, 0x2] + movs r2, 0 + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + ldrh r1, [r3, 0x4] + strh r1, [r0, 0xE] + strh r2, [r0, 0x10] + ldrh r1, [r3, 0x6] + strh r1, [r0, 0x12] + strh r2, [r0, 0x14] + ldrh r1, [r3, 0x8] + strh r1, [r0, 0x16] + ldr r1, _08079810 + str r1, [r0] + bx lr + .align 2, 0 +_0807980C: .4byte 0x03004b00 +_08079810: .4byte sub_8079814 + thumb_func_end sub_80797EC + + thumb_func_start sub_8079814 +sub_8079814: @ 8079814 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0807986C + adds r4, r0, r1 + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x12 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080798A4 + movs r0, 0 + strh r0, [r4, 0x10] + movs r1, 0x14 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08079870 + ldrh r2, [r4, 0xC] + adds r2, 0x1 + strh r2, [r4, 0xC] + ldrh r0, [r4, 0x8] + lsls r2, 24 + lsrs r2, 24 + ldrh r3, [r4, 0xA] + movs r1, 0xF + bl BlendPalette + movs r2, 0xC + ldrsh r1, [r4, r2] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080798A4 + movs r0, 0x1 + strh r0, [r4, 0x14] + b _080798A4 + .align 2, 0 +_0807986C: .4byte 0x03004b20 +_08079870: + ldrh r2, [r4, 0xC] + subs r2, 0x1 + strh r2, [r4, 0xC] + ldrh r0, [r4, 0x8] + lsls r2, 24 + lsrs r2, 24 + ldrh r3, [r4, 0xA] + movs r1, 0xF + bl BlendPalette + movs r0, 0xC + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080798A4 + ldrh r0, [r4, 0x16] + subs r0, 0x1 + strh r0, [r4, 0x16] + lsls r0, 16 + cmp r0, 0 + beq _0807989E + strh r1, [r4, 0x10] + strh r1, [r4, 0x14] + b _080798A4 +_0807989E: + adds r0, r5, 0 + bl move_anim_task_del +_080798A4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8079814 + + thumb_func_start sub_80798AC +sub_80798AC: @ 80798AC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080798CC + ldrh r0, [r0] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + bne _080798D0 + adds r0, r4, 0 + bl move_anim_task_del + b _080798E6 + .align 2, 0 +_080798CC: .4byte 0x03004b00 +_080798D0: + ldr r1, _080798EC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + lsls r1, r2, 4 + ldr r2, _080798F0 + adds r1, r2 + strh r1, [r0, 0x8] + bl sub_80797EC +_080798E6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080798EC: .4byte 0x03004b20 +_080798F0: .4byte 0x00000101 + thumb_func_end sub_80798AC + + thumb_func_start sub_80798F4 +sub_80798F4: @ 80798F4 + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + strh r1, [r3, 0x16] + strh r1, [r3, 0x18] + strh r1, [r3, 0x1A] + strh r4, [r3, 0x26] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r3, 0x1C] + strh r0, [r3, 0x1E] + strh r1, [r3, 0x20] + adds r0, r3, 0 + adds r0, 0x22 + adds r3, 0x24 + adds r1, r3, 0 + bl sub_8079BF4 + adds r0, r4, 0 + movs r1, 0 + bl sub_8078E70 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80798F4 + + thumb_func_start sub_807992C +sub_807992C: @ 807992C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080799CC + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + bl sub_8079BFC + movs r3, 0x16 + ldrsh r1, [r4, r3] + lsls r1, 3 + adds r1, r0, r1 + str r1, [r5] + movs r6, 0 + ldrsh r2, [r1, r6] + ldr r0, _080799D0 + cmp r2, r0 + beq _080799D4 + cmp r2, r0 + bgt _08079A34 + subs r0, 0x1 + cmp r2, r0 + beq _080799DA + ldrb r0, [r1, 0x5] + cmp r0, 0 + bne _0807997A + ldrh r0, [r1] + strh r0, [r4, 0x1C] + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x1E] + ldrb r0, [r1, 0x4] + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + adds r0, r1, 0 + adds r0, 0x8 + str r0, [r5] +_0807997A: + ldr r1, [r5] + ldrh r0, [r1] + ldrh r2, [r4, 0x1C] + adds r0, r2 + strh r0, [r4, 0x1C] + ldrh r0, [r1, 0x2] + ldrh r3, [r4, 0x1E] + adds r0, r3 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x20] + ldrb r1, [r1, 0x4] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r6, 0x1C + ldrsh r1, [r4, r6] + movs r3, 0x1E + ldrsh r2, [r4, r3] + ldrh r3, [r4, 0x20] + bl obj_id_set_rotscale + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079A64 + ldrh r0, [r4, 0x18] + adds r0, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + asrs r0, 16 + ldr r1, [r5] + ldrb r1, [r1, 0x5] + cmp r0, r1 + blt _08079A5A + movs r0, 0 + strh r0, [r4, 0x18] + b _08079A2C + .align 2, 0 +_080799CC: .4byte 0x0202f7d4 +_080799D0: .4byte 0x00007ffe +_080799D4: + ldrh r0, [r1, 0x2] + strh r0, [r4, 0x16] + b _08079A5A +_080799DA: + ldrh r2, [r1, 0x2] + movs r6, 0x2 + ldrsh r0, [r1, r6] + cmp r0, 0 + beq _08079A2C + ldrh r1, [r4, 0x1A] + movs r3, 0x1A + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _080799FA + subs r0, r1, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + cmp r0, 0 + bne _080799FC + b _08079A2C +_080799FA: + strh r2, [r4, 0x1A] +_080799FC: + movs r6, 0x16 + ldrsh r0, [r4, r6] + cmp r0, 0 + beq _08079A5A + ldr r3, _08079A24 + ldr r5, _08079A28 +_08079A08: + ldrh r2, [r4, 0x16] + subs r1, r2, 0x1 + strh r1, [r4, 0x16] + ldr r0, [r3] + subs r0, 0x8 + str r0, [r3] + movs r6, 0 + ldrsh r0, [r0, r6] + cmp r0, r5 + beq _08079A58 + lsls r0, r1, 16 + cmp r0, 0 + bne _08079A08 + b _08079A5A + .align 2, 0 +_08079A24: .4byte 0x0202f7d4 +_08079A28: .4byte 0x00007ffd +_08079A2C: + ldrh r0, [r4, 0x16] + adds r0, 0x1 + strh r0, [r4, 0x16] + b _08079A5A +_08079A34: + ldr r2, _08079A54 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x26] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8078F40 + movs r0, 0 + b _08079A5C + .align 2, 0 +_08079A54: .4byte 0x02020004 +_08079A58: + strh r2, [r4, 0x16] +_08079A5A: + movs r0, 0x1 +_08079A5C: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_807992C + + thumb_func_start sub_8079A64 +sub_8079A64: @ 8079A64 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl sub_8079B10 + lsls r0, 16 + lsrs r0, 15 + movs r1, 0x40 + subs r5, r1, r0 + ldr r1, _08079AB0 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrb r1, [r4, 0x3] + lsls r1, 26 + lsrs r1, 27 + lsls r0, r5, 8 + ldr r2, _08079AB4 + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + cmp r0, 0x80 + ble _08079AA0 + movs r0, 0x80 +_08079AA0: + subs r0, r5, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08079AB0: .4byte 0x02020004 +_08079AB4: .4byte 0x030027f0 + thumb_func_end sub_8079A64 + + thumb_func_start sub_8079AB8 +sub_8079AB8: @ 8079AB8 + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r0, 24 + lsrs r0, 24 + bl sub_8079B10 + lsls r0, 16 + lsrs r0, 15 + movs r1, 0x40 + subs r5, r1, r0 + ldr r1, _08079B08 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r4, r0, r1 + ldrb r1, [r4, 0x3] + lsls r1, 26 + lsrs r1, 27 + lsls r0, r5, 8 + ldr r2, _08079B0C + lsls r1, 3 + adds r1, r2 + movs r2, 0x6 + ldrsh r1, [r1, r2] + bl __divsi3 + cmp r0, 0x80 + ble _08079AF8 + movs r0, 0x80 +_08079AF8: + subs r0, r5, r0 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + strh r0, [r4, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08079B08: .4byte 0x02020004 +_08079B0C: .4byte 0x030027f0 + thumb_func_end sub_8079AB8 + + thumb_func_start sub_8079B10 +sub_8079B10: @ 8079B10 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08079B44 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x2E] + lsls r0, 24 + movs r4, 0 + ldr r1, _08079B48 + ldr r6, _08079B4C + lsrs r5, r0, 22 +_08079B2C: + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, r2 + bne _08079BE0 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08079B54 + ldr r0, _08079B50 + ldrh r1, [r0] + b _08079B96 + .align 2, 0 +_08079B44: .4byte 0x02020004 +_08079B48: .4byte 0x02024be0 +_08079B4C: .4byte gUnknown_081E9114 +_08079B50: .4byte 0x02019348 +_08079B54: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08079B9E + ldr r0, _08079B88 + adds r1, r5, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08079B94 + ldr r1, _08079B8C + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08079B90 + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r1, r0, 16 + b _08079B96 + .align 2, 0 +_08079B88: .4byte 0x02017800 +_08079B8C: .4byte 0x02024a6a +_08079B90: .4byte 0x03004360 +_08079B94: + ldrh r1, [r1, 0x2] +_08079B96: + lsls r0, r1, 2 + adds r0, r6 + ldrb r0, [r0, 0x1] + b _08079BEC +_08079B9E: + ldr r0, _08079BC4 + adds r1, r5, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _08079BD0 + ldr r1, _08079BC8 + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08079BCC + adds r0, r1 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r1, r0, 16 + b _08079BD2 + .align 2, 0 +_08079BC4: .4byte 0x02017800 +_08079BC8: .4byte 0x02024a6a +_08079BCC: .4byte 0x030045c0 +_08079BD0: + ldrh r1, [r1, 0x2] +_08079BD2: + ldr r0, _08079BDC + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _08079BEC + .align 2, 0 +_08079BDC: .4byte gUnknown_081E7C74 +_08079BE0: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _08079B2C + movs r0, 0x40 +_08079BEC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8079B10 + + thumb_func_start sub_8079BF4 +sub_8079BF4: @ 8079BF4 + strh r2, [r0] + asrs r2, 16 + strh r2, [r1] + bx lr + thumb_func_end sub_8079BF4 + + thumb_func_start sub_8079BFC +sub_8079BFC: @ 8079BFC + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + orrs r0, r1 + bx lr + thumb_func_end sub_8079BFC + + thumb_func_start sub_8079C08 +sub_8079C08: @ 8079C08 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r5, r3, 0 + ldr r0, [sp, 0x14] + ldr r4, [sp, 0x18] + ldr r6, [sp, 0x1C] + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r6, 16 + lsrs r6, 16 + mov r3, r8 + strh r6, [r3, 0x18] + strh r1, [r3, 0x26] + strh r2, [r3, 0x1A] + strh r5, [r3, 0x1C] + strh r0, [r3, 0x22] + strh r4, [r3, 0x24] + lsls r0, 16 + asrs r0, 16 + lsls r2, 16 + asrs r2, 16 + subs r0, r2 + adds r1, r6, 0 + bl __divsi3 + mov r1, r8 + strh r0, [r1, 0x1E] + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + subs r4, r5 + adds r0, r4, 0 + adds r1, r6, 0 + bl __divsi3 + mov r3, r8 + strh r0, [r3, 0x20] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8079C08 + + thumb_func_start sub_8079C74 +sub_8079C74: @ 8079C74 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x18] + movs r2, 0x18 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08079C86 + movs r0, 0 + b _08079CE2 +_08079C86: + subs r0, r1, 0x1 + strh r0, [r4, 0x18] + lsls r0, 16 + cmp r0, 0 + beq _08079CA0 + ldrh r0, [r4, 0x1E] + ldrh r3, [r4, 0x1A] + adds r0, r3 + strh r0, [r4, 0x1A] + ldrh r0, [r4, 0x20] + ldrh r1, [r4, 0x1C] + adds r0, r1 + b _08079CA6 +_08079CA0: + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x1A] + ldrh r0, [r4, 0x24] +_08079CA6: + strh r0, [r4, 0x1C] + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x1A + ldrsh r1, [r4, r2] + movs r3, 0x1C + ldrsh r2, [r4, r3] + movs r3, 0 + bl obj_id_set_rotscale + movs r0, 0x18 + ldrsh r3, [r4, r0] + cmp r3, 0 + beq _08079CD0 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r0, 24 + bl sub_8079A64 + b _08079CE0 +_08079CD0: + ldr r2, _08079CE8 + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x26] +_08079CE0: + ldrb r0, [r4, 0x18] +_08079CE2: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08079CE8: .4byte 0x02020004 + thumb_func_end sub_8079C74 + + thumb_func_start sub_8079CEC +sub_8079CEC: @ 8079CEC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08079D18 + ldrb r0, [r0] + movs r1, 0 + cmp r0, 0x1E + bls _08079D0A + movs r1, 0x1 + cmp r0, 0x64 + bls _08079D0A + movs r1, 0x3 + cmp r0, 0xC8 + bhi _08079D0A + movs r1, 0x2 +_08079D0A: + ldr r0, _08079D1C + strh r1, [r0, 0xE] + adds r0, r2, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08079D18: .4byte 0x0202f7be +_08079D1C: .4byte 0x03004b00 + thumb_func_end sub_8079CEC + + thumb_func_start unref_sub_8079D20 +unref_sub_8079D20: @ 8079D20 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + ldr r6, _08079E14 + ldrb r0, [r6] + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079D60 + ldr r2, _08079E18 + ldr r1, _08079E1C + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_08079D60: + ldr r0, _08079E20 + mov r8, r0 + ldrb r0, [r0] + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079D98 + ldr r2, _08079E18 + ldr r1, _08079E1C + mov r3, r8 + ldrb r0, [r3] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_08079D98: + ldrb r0, [r6] + movs r5, 0x2 + eors r0, r5 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079DD0 + ldr r2, _08079E18 + ldr r1, _08079E1C + ldrb r0, [r6] + eors r0, r5 + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + adds r2, r4, 0 + ands r2, r0 + lsls r2, 2 + ldrb r3, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x5] +_08079DD0: + mov r1, r8 + ldrb r0, [r1] + eors r0, r5 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079E08 + ldr r2, _08079E18 + ldr r1, _08079E1C + mov r3, r8 + ldrb r0, [r3] + eors r0, r5 + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0x3 + ands r7, r0 + lsls r3, r7, 2 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_08079E08: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08079E14: .4byte 0x0202f7c9 +_08079E18: .4byte 0x02020004 +_08079E1C: .4byte 0x02024be0 +_08079E20: .4byte 0x0202f7c8 + thumb_func_end unref_sub_8079D20 + + thumb_func_start sub_8079E24 +sub_8079E24: @ 8079E24 + push {r4-r6,lr} + movs r5, 0 + ldr r0, _08079E84 + ldrb r0, [r0] + cmp r5, r0 + bge _08079E7E + ldr r6, _08079E88 +_08079E32: + lsls r0, r5, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _08079E74 + adds r0, r4, 0 + bl sub_8079E90 + ldr r3, _08079E8C + adds r3, r5, r3 + ldrb r2, [r3] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r6 + adds r1, 0x43 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r2, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + movs r1, 0x8 + orrs r2, r1 + strb r2, [r0, 0x5] +_08079E74: + adds r5, 0x1 + ldr r0, _08079E84 + ldrb r0, [r0] + cmp r5, r0 + blt _08079E32 +_08079E7E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08079E84: .4byte 0x02024a68 +_08079E88: .4byte 0x02020004 +_08079E8C: .4byte 0x02024be0 + thumb_func_end sub_8079E24 + + thumb_func_start sub_8079E90 +sub_8079E90: @ 8079E90 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08079EAC + cmp r4, 0x2 + bne _08079EA8 + movs r0, 0x1E + b _08079ECC +_08079EA8: + movs r0, 0x28 + b _08079ECC +_08079EAC: + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1E + cmp r0, 0 + beq _08079ECA + movs r1, 0x14 + cmp r0, 0x2 + beq _08079ECA + movs r1, 0x32 + cmp r0, 0x1 + bne _08079ECA + movs r1, 0x28 +_08079ECA: + adds r0, r1, 0 +_08079ECC: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8079E90 + + thumb_func_start sub_8079ED4 +sub_8079ED4: @ 8079ED4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08079EF0 + movs r0, 0x2 + b _08079F08 +_08079EF0: + cmp r4, 0 + beq _08079EF8 + cmp r4, 0x3 + bne _08079F00 +_08079EF8: + ldr r0, _08079EFC + b _08079F02 + .align 2, 0 +_08079EFC: .4byte 0x0400000c +_08079F00: + ldr r0, _08079F10 +_08079F02: + ldr r0, [r0] + lsls r0, 30 + lsrs r0, 30 +_08079F08: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08079F10: .4byte 0x0400000a + thumb_func_end sub_8079ED4 + + thumb_func_start battle_get_per_side_status_permutated +battle_get_per_side_status_permutated: @ 8079F14 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08079F3A + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08079F36 + cmp r0, 0x3 + bne _08079F3A +_08079F36: + movs r0, 0x2 + b _08079F3C +_08079F3A: + movs r0, 0x1 +_08079F3C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end battle_get_per_side_status_permutated + + thumb_func_start sub_8079F44 +sub_8079F44: @ 8079F44 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + ldr r4, [sp, 0x38] + ldr r5, [sp, 0x3C] + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + lsls r4, 16 + lsrs r4, 16 + str r4, [sp, 0x10] + lsls r5, 24 + lsrs r5, 24 + str r5, [sp, 0x14] + lsls r0, r7, 3 + ldr r1, _08079FE0 + adds r0, r1 + bl LoadSpriteSheet + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + ldr r1, _08079FE4 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x2] + bl AllocSpritePalette + lsls r0, 24 + lsrs r4, r0, 24 + mov r0, r8 + cmp r0, 0 + bne _08079FF0 + adds r0, r6, 0 + ldr r1, [sp, 0x44] + ldr r2, [sp, 0x40] + bl species_and_otid_get_pal + lsls r1, r4, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r0, r6, 3 + ldr r1, _08079FE8 + adds r0, r1 + ldr r2, _08079FEC + lsls r5, r6, 2 + adds r2, r5, r2 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + str r3, [sp] + str r6, [sp, 0x4] + ldr r4, [sp, 0x40] + str r4, [sp, 0x8] + movs r4, 0x1 + str r4, [sp, 0xC] + bl sub_800D378 + b _0807A02E + .align 2, 0 +_08079FE0: .4byte gUnknown_0837F5E0 +_08079FE4: .4byte gUnknown_0837F5B0 +_08079FE8: .4byte gMonFrontPicTable +_08079FEC: .4byte gUnknown_081E7C74 +_08079FF0: + adds r0, r6, 0 + ldr r1, [sp, 0x44] + ldr r2, [sp, 0x40] + bl species_and_otid_get_pal + lsls r1, r4, 20 + movs r2, 0x80 + lsls r2, 17 + adds r1, r2 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r0, r6, 3 + ldr r1, _0807A068 + adds r0, r1 + ldr r2, _0807A06C + lsls r5, r6, 2 + adds r2, r5, r2 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + str r3, [sp] + str r6, [sp, 0x4] + ldr r4, [sp, 0x40] + str r4, [sp, 0x8] + movs r4, 0 + str r4, [sp, 0xC] + bl sub_800D378 +_0807A02E: + movs r2, 0x80 + lsls r2, 18 + mov r6, r10 + lsls r0, r6, 5 + ldr r1, _0807A070 + adds r0, r1 + ldr r1, _0807A074 + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _0807A078 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r2, r8 + cmp r2, 0 + bne _0807A084 + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + ldr r1, _0807A07C + adds r0, r1 + mov r3, r9 + lsls r1, r3, 16 + asrs r1, 16 + ldr r2, _0807A080 + adds r2, r5, r2 + ldrb r2, [r2, 0x1] + ldr r4, [sp, 0x10] + adds r2, r4 + b _0807A09E + .align 2, 0 +_0807A068: .4byte gMonBackPicTable +_0807A06C: .4byte gUnknown_081E9114 +_0807A070: .4byte 0x06010000 +_0807A074: .4byte 0x040000d4 +_0807A078: .4byte 0x84000200 +_0807A07C: .4byte gUnknown_0837F5B0 +_0807A080: .4byte gUnknown_081E7C74 +_0807A084: + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 3 + ldr r1, _0807A0E4 + adds r0, r1 + mov r6, r9 + lsls r1, r6, 16 + asrs r1, 16 + ldr r2, _0807A0E8 + adds r2, r5, r2 + ldrb r2, [r2, 0x1] + ldr r3, [sp, 0x10] + adds r2, r3 +_0807A09E: + lsls r2, 16 + asrs r2, 16 + ldr r3, [sp, 0x14] + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807A0D0 + ldr r3, _0807A0EC + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x10 + adds r1, r0, r1 + ldr r2, _0807A0F0 + str r2, [r1] + adds r0, r3 + movs r1, 0 + bl StartSpriteAffineAnim +_0807A0D0: + adds r0, r4, 0 + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0807A0E4: .4byte gUnknown_0837F5B0 +_0807A0E8: .4byte gUnknown_081E9114 +_0807A0EC: .4byte 0x02020004 +_0807A0F0: .4byte gUnknown_081E7C18 + thumb_func_end sub_8079F44 + + thumb_func_start sub_807A0F4 +sub_807A0F4: @ 807A0F4 + push {lr} + bl DestroySpriteAndFreeResources + pop {r0} + bx r0 + thumb_func_end sub_807A0F4 + + thumb_func_start sub_807A100 +sub_807A100: @ 807A100 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0807A1A4 + ldr r2, _0807A130 + ldrb r1, [r2, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0807A134 + ldrh r7, [r2, 0x2] + ldr r2, [r2, 0x10] + b _0807A138 + .align 2, 0 +_0807A130: .4byte 0x02019348 +_0807A134: + ldrh r7, [r2] + ldr r2, [r2, 0x8] +_0807A138: + cmp r7, 0xC9 + bne _0807A184 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0807A170 + movs r0, 0xC9 + b _0807A17A +_0807A170: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_0807A17A: + lsls r1, r0, 2 + ldr r0, _0807A180 + b _0807A33C + .align 2, 0 +_0807A180: .4byte gUnknown_081E9114 +_0807A184: + ldr r0, _0807A19C + cmp r7, r0 + bne _0807A18C + b _0807A30C +_0807A18C: + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + bhi _0807A258 + lsls r1, r7, 2 + ldr r0, _0807A1A0 + b _0807A33C + .align 2, 0 +_0807A19C: .4byte 0x00000181 +_0807A1A0: .4byte gUnknown_081E9114 +_0807A1A4: + mov r0, r8 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0807A26C + mov r0, r8 + lsls r2, r0, 2 + ldr r0, _0807A1EC + adds r1, r2, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _0807A1F8 + ldr r0, _0807A1F0 + mov r1, r8 + lsls r4, r1, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0807A1F4 + adds r0, r5 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r7, r0, 16 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0 + bl PokemonGetField + adds r2, r0, 0 + b _0807A200 + .align 2, 0 +_0807A1EC: .4byte 0x02017800 +_0807A1F0: .4byte 0x02024a6a +_0807A1F4: .4byte 0x03004360 +_0807A1F8: + ldrh r7, [r1, 0x2] + ldr r0, _0807A238 + adds r0, r2, r0 + ldr r2, [r0] +_0807A200: + cmp r7, 0xC9 + bne _0807A250 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0807A23C + movs r0, 0xC9 + b _0807A246 + .align 2, 0 +_0807A238: .4byte 0x02024e70 +_0807A23C: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_0807A246: + lsls r1, r0, 2 + ldr r0, _0807A24C + b _0807A33C + .align 2, 0 +_0807A24C: .4byte gUnknown_081E9114 +_0807A250: + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + bls _0807A260 +_0807A258: + ldr r4, _0807A25C + b _0807A33E + .align 2, 0 +_0807A25C: .4byte gUnknown_081E9114 +_0807A260: + lsls r1, r7, 2 + ldr r0, _0807A268 + b _0807A33C + .align 2, 0 +_0807A268: .4byte gUnknown_081E9114 +_0807A26C: + mov r0, r8 + lsls r2, r0, 2 + ldr r0, _0807A2A8 + adds r1, r2, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + bne _0807A2B4 + ldr r0, _0807A2AC + mov r1, r8 + lsls r4, r1, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0807A2B0 + adds r0, r5 + movs r1, 0xB + bl PokemonGetField + lsls r0, 16 + lsrs r7, r0, 16 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0 + bl PokemonGetField + adds r2, r0, 0 + b _0807A2BC + .align 2, 0 +_0807A2A8: .4byte 0x02017800 +_0807A2AC: .4byte 0x02024a6a +_0807A2B0: .4byte 0x030045c0 +_0807A2B4: + ldrh r7, [r1, 0x2] + ldr r0, _0807A2F4 + adds r0, r2, r0 + ldr r2, [r0] +_0807A2BC: + cmp r7, 0xC9 + bne _0807A306 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0807A2F8 + movs r0, 0xC9 + b _0807A302 + .align 2, 0 +_0807A2F4: .4byte 0x02024e70 +_0807A2F8: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_0807A302: + lsls r1, r0, 2 + b _0807A33A +_0807A306: + ldr r0, _0807A31C + cmp r7, r0 + bne _0807A328 +_0807A30C: + ldr r0, _0807A320 + add r0, r8 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _0807A324 + adds r4, r0, r1 + b _0807A33E + .align 2, 0 +_0807A31C: .4byte 0x00000181 +_0807A320: .4byte 0x02024e84 +_0807A324: .4byte gUnknown_0837F598 +_0807A328: + movs r0, 0xCE + lsls r0, 1 + cmp r7, r0 + bls _0807A338 + ldr r4, _0807A334 + b _0807A33E + .align 2, 0 +_0807A334: .4byte gUnknown_081E7C74 +_0807A338: + lsls r1, r7, 2 +_0807A33A: + ldr r0, _0807A350 +_0807A33C: + adds r4, r1, r0 +_0807A33E: + mov r0, r9 + cmp r0, 0x6 + bhi _0807A3EE + lsls r0, 2 + ldr r1, _0807A354 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807A350: .4byte gUnknown_081E7C74 +_0807A354: .4byte _0807A358 + .align 2, 0 +_0807A358: + .4byte _0807A374 + .4byte _0807A37E + .4byte _0807A3AA + .4byte _0807A3C2 + .4byte _0807A386 + .4byte _0807A398 + .4byte _0807A3DA +_0807A374: + ldrb r1, [r4] + movs r0, 0xF + ands r0, r1 + lsls r0, 3 + b _0807A3F0 +_0807A37E: + ldrb r0, [r4] + lsrs r0, 4 + lsls r0, 3 + b _0807A3F0 +_0807A386: + mov r0, r8 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + lsrs r1, 4 + b _0807A3BC +_0807A398: + mov r0, r8 + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + lsrs r1, 4 + b _0807A3D4 +_0807A3AA: + mov r0, r8 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4] + movs r1, 0xF + ands r1, r2 +_0807A3BC: + lsls r1, 2 + subs r0, r1 + b _0807A3F0 +_0807A3C2: + mov r0, r8 + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r4] + movs r1, 0xF + ands r1, r2 +_0807A3D4: + lsls r1, 2 + adds r0, r1 + b _0807A3F0 +_0807A3DA: + mov r0, r8 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1F + ldrb r1, [r4, 0x1] + subs r0, r1 + b _0807A3F0 +_0807A3EE: + movs r0, 0 +_0807A3F0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_807A100 + + thumb_func_start sub_807A3FC +sub_807A3FC: @ 807A3FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r2 + mov r10, r3 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _0807A41A + movs r5, 0 + movs r6, 0x1 + b _0807A41E +_0807A41A: + movs r5, 0x2 + movs r6, 0x3 +_0807A41E: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r7, r0, 24 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0807A470 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0807A470 + movs r0, 0x2 + eors r4, r0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r3, r0, 24 + mov r0, r8 + lsls r1, r0, 16 + lsls r2, r7, 16 + b _0807A47C +_0807A470: + mov r0, r8 + lsls r1, r0, 16 + lsrs r5, r1, 16 + lsls r0, r7, 16 + lsrs r3, r0, 16 + adds r2, r0, 0 +_0807A47C: + asrs r0, r1, 16 + adds r0, r5 + asrs r0, 1 + mov r1, r9 + strh r0, [r1] + asrs r0, r2, 16 + adds r0, r3 + asrs r0, 1 + mov r1, r10 + strh r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_807A3FC + + thumb_func_start sub_807A4A0 +sub_807A4A0: @ 807A4A0 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + lsls r6, r1, 24 + lsrs r6, 24 + ldr r0, _0807A538 + mov r10, r0 + bl object_new_hidden_with_callback + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0807A53C + mov r9, r0 + mov r0, r8 + lsls r3, r0, 4 + add r3, r8 + lsls r3, 2 + mov r0, r9 + adds r5, r3, r0 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + add r4, r9 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x44 + str r3, [sp] + bl memcpy + adds r2, r5, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + ldrb r2, [r5, 0x5] + movs r1, 0xD + negs r1, r1 + adds r0, r1, 0 + ands r0, r2 + strb r0, [r5, 0x5] + ldrb r0, [r5, 0x1] + ands r1, r0 + movs r0, 0x8 + orrs r1, r0 + strb r1, [r5, 0x1] + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 22 + ldrh r2, [r5, 0x4] + ldr r0, _0807A540 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + movs r0, 0x1C + add r9, r0 + ldr r3, [sp] + add r3, r9 + mov r0, r10 + str r0, [r3] + mov r0, r8 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0807A538: .4byte SpriteCallbackDummy +_0807A53C: .4byte 0x02020004 +_0807A540: .4byte 0xfffffc00 + thumb_func_end sub_807A4A0 + + thumb_func_start sub_807A544 +sub_807A544: @ 807A544 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _0807A57C + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0807A584 + ldr r2, _0807A580 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r2, 0x6] + negs r0, r0 + strh r0, [r2, 0x6] + adds r3, r4, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, 0 + b _0807A58E + .align 2, 0 +_0807A57C: .4byte 0x0202f7c8 +_0807A580: .4byte 0x03004b00 +_0807A584: + ldr r1, _0807A5B8 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] +_0807A58E: + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldr r1, _0807A5BC + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _0807A5C0 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807A5B8: .4byte 0x03004b00 +_0807A5BC: .4byte move_anim_8074EE0 +_0807A5C0: .4byte sub_8078504 + thumb_func_end sub_807A544 + + thumb_func_start sub_807A5C4 +sub_807A5C4: @ 807A5C4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0807A5EC + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0807A5F4 + ldr r2, _0807A5F0 + ldrh r0, [r4, 0x20] + ldrh r1, [r2] + subs r0, r1 + strh r0, [r4, 0x20] + movs r1, 0x6 + ldrsh r0, [r2, r1] + negs r0, r0 + strh r0, [r2, 0x6] + adds r1, r2, 0 + b _0807A5FE + .align 2, 0 +_0807A5EC: .4byte 0x0202f7c8 +_0807A5F0: .4byte 0x03004b00 +_0807A5F4: + ldr r1, _0807A630 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] +_0807A5FE: + ldrh r0, [r1, 0x2] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x34] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x38] + ldrb r1, [r1, 0xC] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r1, _0807A634 + adds r0, r4, 0 + bl oamt_set_x3A_32 + ldr r0, _0807A638 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807A630: .4byte 0x03004b00 +_0807A634: .4byte move_anim_8074EE0 +_0807A638: .4byte sub_8078504 + thumb_func_end sub_807A5C4 + + thumb_func_start sub_807A63C +sub_807A63C: @ 807A63C + push {r4,lr} + adds r4, r0, 0 + bl sub_8078650 + ldr r0, _0807A660 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0807A668 + ldr r0, _0807A664 + ldrh r1, [r4, 0x20] + ldrh r2, [r0] + subs r1, r2 + strh r1, [r4, 0x20] + b _0807A674 + .align 2, 0 +_0807A660: .4byte 0x0202f7c8 +_0807A664: .4byte 0x03004b00 +_0807A668: + ldr r1, _0807A690 + ldrh r0, [r1] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, r1, 0 +_0807A674: + ldrh r0, [r0, 0x2] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + ldr r0, _0807A694 + str r0, [r4, 0x1C] + ldr r1, _0807A698 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807A690: .4byte 0x03004b00 +_0807A694: .4byte sub_8078600 +_0807A698: .4byte move_anim_8072740 + thumb_func_end sub_807A63C + + thumb_func_start sub_807A69C +sub_807A69C: @ 807A69C + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0807A730 + adds r5, r1, r0 + movs r0, 0 + bl obj_id_for_side_relative_to_move + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + strh r0, [r5, 0x8] + ldr r7, _0807A734 + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x8 + cmp r0, 0 + beq _0807A6D0 + movs r0, 0x8 + negs r0, r0 + adds r1, r0, 0 +_0807A6D0: + strh r1, [r5, 0xA] + strh r6, [r5, 0xC] + strh r6, [r5, 0xE] + ldr r4, _0807A738 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x24] + ldrh r2, [r5, 0x8] + subs r1, r2 + strh r1, [r0, 0x24] + ldr r0, _0807A73C + bl AllocSpritePalette + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x10] + strh r6, [r5, 0x12] + movs r1, 0x10 + ldrsh r0, [r5, r1] + adds r0, 0x10 + lsls r0, 20 + lsrs r6, r0, 16 + movs r0, 0x8 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + adds r0, 0x10 + lsls r4, r0, 4 + ldrb r0, [r7] + bl sub_8079E90 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + cmp r0, 0x14 + beq _0807A72C + cmp r0, 0x28 + bne _0807A740 +_0807A72C: + movs r0, 0x2 + b _0807A742 + .align 2, 0 +_0807A730: .4byte 0x03004b20 +_0807A734: .4byte 0x0202f7c8 +_0807A738: .4byte 0x02020004 +_0807A73C: .4byte 0x00002771 +_0807A740: + movs r0, 0x3 +_0807A742: + strh r0, [r5, 0x14] + lsls r0, r4, 1 + ldr r1, _0807A770 + adds r0, r1 + lsls r1, r6, 1 + ldr r2, _0807A774 + adds r1, r2 + ldr r2, _0807A778 + bl CpuSet + ldr r0, _0807A77C + ldrb r2, [r0, 0x2] + ldrh r3, [r0] + adds r0, r6, 0 + movs r1, 0x10 + bl BlendPalette + ldr r0, _0807A780 + str r0, [r5] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807A770: .4byte 0x0202eac8 +_0807A774: .4byte 0x0202eec8 +_0807A778: .4byte 0x04000008 +_0807A77C: .4byte 0x03004b00 +_0807A780: .4byte sub_807A784 + thumb_func_end sub_807A69C + + thumb_func_start sub_807A784 +sub_807A784: @ 807A784 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0807A7A8 + adds r4, r0, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0807A7E8 + cmp r0, 0x1 + bgt _0807A7AC + cmp r0, 0 + beq _0807A7B2 + b _0807A844 + .align 2, 0 +_0807A7A8: .4byte 0x03004b20 +_0807A7AC: + cmp r0, 0x2 + beq _0807A830 + b _0807A844 +_0807A7B2: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_807A850 + ldr r2, _0807A7E4 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r4, 0xA] + ldrh r2, [r0, 0x24] + adds r1, r2 + strh r1, [r0, 0x24] + ldrh r1, [r4, 0xE] + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _0807A844 + strh r1, [r4, 0xE] + b _0807A822 + .align 2, 0 +_0807A7E4: .4byte 0x02020004 +_0807A7E8: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_807A850 + ldr r3, _0807A82C + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x24] + ldrh r2, [r4, 0xA] + subs r1, r2 + strh r1, [r0, 0x24] + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bne _0807A844 + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + strh r2, [r1, 0x24] +_0807A822: + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _0807A844 + .align 2, 0 +_0807A82C: .4byte 0x02020004 +_0807A830: + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _0807A844 + ldr r0, _0807A84C + bl FreeSpritePaletteByTag + adds r0, r5, 0 + bl move_anim_task_del +_0807A844: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807A84C: .4byte 0x00002771 + thumb_func_end sub_807A784 + + thumb_func_start sub_807A850 +sub_807A850: @ 807A850 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + movs r0, 0 + bl duplicate_obj_of_side_rel2move_in_transparent_mode + lsls r0, 16 + lsrs r7, r0, 16 + asrs r0, 16 + cmp r0, 0 + blt _0807A8C0 + ldr r5, _0807A8CC + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r3, r4, r5 + movs r0, 0x3 + ldrb r1, [r6, 0x14] + ands r1, r0 + lsls r1, 2 + ldrb r2, [r3, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + ldrb r1, [r6, 0x10] + lsls r1, 4 + movs r2, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x5] + movs r0, 0x8 + strh r0, [r3, 0x2E] + mov r0, r8 + strh r0, [r3, 0x30] + strh r7, [r3, 0x32] + movs r0, 0x8 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r0, [r0, 0x24] + strh r0, [r3, 0x24] + adds r5, 0x1C + adds r4, r5 + ldr r0, _0807A8D0 + str r0, [r4] + ldrh r0, [r6, 0x12] + adds r0, 0x1 + strh r0, [r6, 0x12] +_0807A8C0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807A8CC: .4byte 0x02020004 +_0807A8D0: .4byte sub_807A8D4 + thumb_func_end sub_807A850 + + thumb_func_start sub_807A8D4 +sub_807A8D4: @ 807A8D4 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x2E] + subs r0, 0x1 + strh r0, [r3, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _0807A8FE + ldr r2, _0807A904 + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x12] + subs r1, 0x1 + strh r1, [r0, 0x12] + adds r0, r3, 0 + bl obj_delete_but_dont_free_vram +_0807A8FE: + pop {r0} + bx r0 + .align 2, 0 +_0807A904: .4byte 0x03004b20 + thumb_func_end sub_807A8D4 + + thumb_func_start sub_807A908 +sub_807A908: @ 807A908 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _0807A93C + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x22] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0807A940 + movs r0, 0x5 + b _0807A942 + .align 2, 0 +_0807A93C: .4byte 0x0202f7c8 +_0807A940: + ldr r0, _0807A954 +_0807A942: + strh r0, [r5, 0x2E] + ldr r0, _0807A958 + strh r0, [r5, 0x30] + ldr r0, _0807A95C + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807A954: .4byte 0x0000fff6 +_0807A958: .4byte 0x0000ffd8 +_0807A95C: .4byte sub_807A960 + thumb_func_end sub_807A908 + + thumb_func_start sub_807A960 +sub_807A960: @ 807A960 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r5, [r4, 0x30] + ldrh r2, [r4, 0x34] + adds r0, r5, r2 + strh r0, [r4, 0x34] + movs r1, 0x32 + ldrsh r0, [r4, r1] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x24] + movs r2, 0x34 + ldrsh r0, [r4, r2] + movs r1, 0xA + bl __divsi3 + strh r0, [r4, 0x26] + lsls r0, r5, 16 + asrs r0, 16 + movs r1, 0x14 + negs r1, r1 + cmp r0, r1 + bge _0807A99C + adds r0, r5, 0x1 + strh r0, [r4, 0x30] +_0807A99C: + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _0807A9B4 + adds r0, r4, 0 + bl move_anim_8072740 +_0807A9B4: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_807A960 + + thumb_func_start sub_807A9BC +sub_807A9BC: @ 807A9BC + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _0807A9F4 + ldrh r0, [r5, 0x4] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x8] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r5, 0xA] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, _0807A9F8 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0807A9FC + ldrh r0, [r5, 0x8] + adds r0, 0x1E + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0xA] + subs r0, 0x14 + b _0807AA0A + .align 2, 0 +_0807A9F4: .4byte 0x03004b00 +_0807A9F8: .4byte 0x0202f7c9 +_0807A9FC: + ldrh r0, [r5, 0x8] + subs r0, 0x1E + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r5, 0xA] + subs r0, 0x50 +_0807AA0A: + strh r0, [r4, 0x22] + ldr r0, _0807AA20 + str r0, [r4, 0x1C] + ldr r1, _0807AA24 + adds r0, r4, 0 + bl oamt_set_x3A_32 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807AA20: .4byte sub_8078B34 +_0807AA24: .4byte move_anim_8072740 + thumb_func_end sub_807A9BC diff --git a/data/data2.s b/data/data2.s index 156a90656..84cce0306 100644 --- a/data/data2.s +++ b/data/data2.s @@ -4084,8 +4084,8 @@ gUnknown_0837DEDC: @ 837DEDC .4byte Unknown_837DD7C .4byte Unknown_837DD9C - .global gUnknown_0837DEE4 -gUnknown_0837DEE4: @ 837DEE4 + .global gDummyPaletteStructTemplate +gDummyPaletteStructTemplate: @ 837DEE4 .incbin "baserom.gba", 0x0037dee4, 0x10 .global gUnknown_0837DEF4 diff --git a/ewram_syms.txt b/ewram_syms.txt index ef93c424c..effd87696 100644 --- a/ewram_syms.txt +++ b/ewram_syms.txt @@ -5,6 +5,13 @@ gUnknown_020239F8 = 0x20239F8; gSaveBlock2 = 0x2024EA4; +gPlttBufferUnfaded = 0x202EAC8; +gPlttBufferFaded = 0x202EEC8; +gPlttBufferTransferPending = 0x202F398; +gPaletteDecompressionBuffer = 0x202F39C; +gPaletteStructs = 0x202F2C8; +gPaletteFade = 0x202F388; + word_203855E = 0x203855E; gUnknown_0203869A = 0x203869A; diff --git a/include/gba/defines.h b/include/gba/defines.h index 4fd54975d..ea363109f 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -70,4 +70,9 @@ #define TOTAL_OBJ_TILE_COUNT 1024 +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) + #endif // GUARD_GBA_DEFINES diff --git a/include/gba/syscall.h b/include/gba/syscall.h index 2008128d3..3f41abba1 100644 --- a/include/gba/syscall.h +++ b/include/gba/syscall.h @@ -21,11 +21,11 @@ void VBlankIntrWait(void); #define CPU_SET_16BIT 0x00000000 #define CPU_SET_32BIT 0x04000000 -void CpuSet(void *src, void *dest, u32 control); +void CpuSet(const void *src, void *dest, u32 control); #define CPU_FAST_SET_SRC_FIXED 0x01000000 -void CpuFastSet(void *src, void *dest, u32 control); +void CpuFastSet(const void *src, void *dest, u32 control); void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset); diff --git a/include/gba/types.h b/include/gba/types.h index 1274d4f0d..740c72d92 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -26,6 +26,14 @@ typedef u8 bool8; typedef u16 bool16; typedef u32 bool32; +struct PlttData +{ + u16 r:5; // red + u16 g:5; // green + u16 b:5; // blue + u16 unused_15:1; +}; + struct OamData { u32 y:8; diff --git a/include/palette.h b/include/palette.h new file mode 100644 index 000000000..de2cf0083 --- /dev/null +++ b/include/palette.h @@ -0,0 +1,68 @@ +#ifndef GUARD_PALETTE_H +#define GUARD_PALETTE_H + +#include "global.h" + +#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade +#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade +#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade +#define gPaletteFade_submode (gPaletteFade.multipurpose2) // fast fade + +enum +{ + FAST_FADE_IN_FROM_WHITE, + FAST_FADE_OUT_TO_WHTIE, + FAST_FADE_IN_FROM_BLACK, + FAST_FADE_OUT_TO_BLACK, +}; + +struct PaletteFadeControl +{ + u32 multipurpose1; + u8 delayCounter:6; + u16 y:5; // blend coefficient + u16 targetY:5; // target blend coefficient + u16 blendColor:15; + u16 active:1; + u16 multipurpose2:6; + u16 yDec:1; // whether blend coefficient is decreasing + u16 bufferTransferDisabled:1; + u16 mode:2; + u16 shouldResetBlendRegisters:1; + u16 hardwareFadeFinishing:1; + u16 softwareFadeFinishingCounter:5; + u16 softwareFadeFinishing:1; + u16 objPaletteToggle:1; + u8 deltaY:4; // rate of change of blend coefficient +}; + +extern struct PaletteFadeControl gPaletteFade; +extern u32 gPlttBufferTransferPending; +extern u8 gPaletteDecompressionBuffer[]; +extern u16 gPlttBufferUnfaded[]; +extern u16 gPlttBufferFaded[]; + +void LoadCompressedPalette(const void *, u16, u16); +void LoadPalette(const void *, u16, u16); +void FillPalette(u16, u16, u16); +void TransferPlttBuffer(void); +u8 UpdatePaletteFade(void); +void ResetPaletteFade(void); +void ReadPlttIntoBuffers(void); +bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16); +bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16); +void unref_sub_8073D84(u8, u32 *); +void ResetPaletteStructByUid(u16); +void ResetPaletteStruct(u8); +void ResetPaletteFadeControl(); +void unref_sub_8074168(u16); +void unref_sub_8074194(u16); +void InvertPlttBuffer(u32); +void TintPlttBuffer(u32, s8, s8, s8); +void UnfadePlttBuffer(u32); +void BeginFastPaletteFade(u8); +void BeginHardwarePaletteFade(u8, u8, u8, u8, u8); +void BlendPalettes(u32, u8, u16); +void BlendPalettesUnfaded(u32, u8, u16); + +#endif // GUARD_PALETTE_H diff --git a/ld_script.txt b/ld_script.txt index 394c572b8..5457ae574 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -68,6 +68,8 @@ SECTIONS { asm/rom3.o(.text); src/play_time.o(.text); asm/rom4.o(.text); + src/palette.o(.text); + asm/rom_8074BAC.o(.text); src/task.o(.text); asm/rom5.o(.text); } =0 diff --git a/src/link.c b/src/link.c index 5a194e449..cb75ebca7 100644 --- a/src/link.c +++ b/src/link.c @@ -5,6 +5,7 @@ #include "sprite.h" #include "songs.h" #include "link.h" +#include "palette.h" #define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT) @@ -25,12 +26,9 @@ struct LinkTestBGInfo u32 dummy_C; }; -extern void LoadPalette(const u16 *, u16, u32); extern void sub_8071C4C(const struct WindowConfig *); extern u16 Random(void); extern void SeedRng(u16); -extern s32 fade_and_return_progress_probably(void); -extern void copy_pal_bg_faded_to_pal_ram(void); extern void sub_80516C4(u8, u16); extern u8 unk_2000000[]; @@ -263,7 +261,7 @@ static void LinkTestScreen(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - fade_and_return_progress_probably(); + UpdatePaletteFade(); sDummy3 = 0; InitLocalLinkPlayer(); CreateTask(Task_PrintTestData, 0); @@ -298,7 +296,7 @@ static void VBlankCB_LinkTest(void) { LoadOam(); ProcessSpriteCopyRequests(); - copy_pal_bg_faded_to_pal_ram(); + TransferPlttBuffer(); } static void InitLink(void) @@ -406,7 +404,7 @@ static void LinkTestProcessKeyInput(void) if (gMain.heldKeys & B_BUTTON) InitBlockSend(unk_2004000, 0x2004); if (gMain.newKeys & L_BUTTON) - pal_fade_maybe(-1, 0, 0x10, 0, 2); + BeginNormalPaletteFade(-1, 0, 0x10, 0, 2); if (gMain.newKeys & START_BUTTON) SetSuppressLinkErrorMessage(TRUE); if (gMain.newKeys & R_BUTTON) @@ -430,7 +428,7 @@ static void CB2_LinkTest(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - fade_and_return_progress_probably(); + UpdatePaletteFade(); } u16 LinkMain2(u16 *heldKeys) @@ -1222,7 +1220,7 @@ void CB2_LinkError(void) { ResetSpriteData(); FreeAllSpritePalettes(); - pal_fade_control_reset_maybe(); + ResetPaletteFadeControl(); FillPalette(0, 0, 2); ResetTasks(); SetVBlankCallback(VBlankCB_LinkTest); @@ -1239,7 +1237,7 @@ void CB2_LinkError(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - fade_and_return_progress_probably(); + UpdatePaletteFade(); SetMainCallback2(CB2_PrintErrorMessage); } diff --git a/src/palette.c b/src/palette.c new file mode 100644 index 000000000..8ebbae68b --- /dev/null +++ b/src/palette.c @@ -0,0 +1,819 @@ +#include "global.h" +#include "palette.h" + +enum +{ + NORMAL_FADE, + FAST_FADE, + HARDWARE_FADE, +}; + +// These are structs for some unused palette system. +// The full functionality of this system is unknown. + +struct PaletteStructTemplate +{ + u16 uid; + u16 *src; + u16 pst_field_8_0:1; + u16 pst_field_8_1:9; + u16 size:5; + u16 pst_field_9_7:1; + u8 pst_field_A; + u8 srcCount:5; + u8 pst_field_B_5:3; + u8 pst_field_C; +}; + +struct PaletteStruct +{ + struct PaletteStructTemplate *base; + u32 ps_field_4_0:1; + u16 ps_field_4_1:1; + u32 baseDestOffset:9; + u16 destOffset:10; + u16 srcIndex:7; + u8 ps_field_8; + u8 ps_field_9; +}; + +extern void sub_800D238(const void *src, void *dest); +extern void BlendPalette(u16, u16, u8, u16); + +extern struct PaletteStruct gPaletteStructs[]; + +extern struct PaletteStructTemplate gDummyPaletteStructTemplate; + +static void unused_sub_8073DFC(struct PaletteStruct *, u32 *); +static void unused_sub_8073F60(struct PaletteStruct *, u32 *); +static void unused_sub_8074020(struct PaletteStruct *); +static u8 GetPaletteNumByUid(u16); +static u8 UpdateNormalPaletteFade(void); +static void BeginFastPaletteFadeInternal(u8); +static u8 UpdateFastPaletteFade(void); +static u8 UpdateHardwarePaletteFade(void); +static void UpdateBlendRegisters(void); +static bool8 IsSoftwarePaletteFadeFinishing(void); + +void LoadCompressedPalette(const void *src, u16 offset, u16 size) +{ + sub_800D238(src, gPaletteDecompressionBuffer); + CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size); + CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferFaded + offset, size); +} + +void LoadPalette(const void *src, u16 offset, u16 size) +{ + CpuCopy16(src, gPlttBufferUnfaded + offset, size); + CpuCopy16(src, gPlttBufferFaded + offset, size); +} + +void FillPalette(u16 value, u16 offset, u16 size) +{ + CpuFill16(gPlttBufferUnfaded + offset, value, size); + CpuFill16(gPlttBufferFaded + offset, value, size); +} + +void TransferPlttBuffer(void) +{ + if (!gPaletteFade.bufferTransferDisabled) + { + void *src = gPlttBufferFaded; + void *dest = (void *)PLTT; + DmaCopy16(3, src, dest, PLTT_SIZE); + gPlttBufferTransferPending = 0; + if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active) + UpdateBlendRegisters(); + } +} + +u8 UpdatePaletteFade(void) +{ + u8 result; + u8 dummy = 0; + + if (gPlttBufferTransferPending) + return -1; + + if (gPaletteFade.mode == NORMAL_FADE) + result = UpdateNormalPaletteFade(); + else if (gPaletteFade.mode == FAST_FADE) + result = UpdateFastPaletteFade(); + else + result = UpdateHardwarePaletteFade(); + + gPlttBufferTransferPending = gPaletteFade.multipurpose1 | dummy; + + return result; +} + +void ResetPaletteFade(void) +{ + u8 i; + + for (i = 0; i < 16; i++) + ResetPaletteStruct(i); + + ResetPaletteFadeControl(); +} + +void ReadPlttIntoBuffers(void) +{ + u16 i; + u16 *pltt = (u16 *)PLTT; + + for (i = 0; i < PLTT_SIZE / 2; i++) + { + gPlttBufferUnfaded[i] = pltt[i]; + gPlttBufferFaded[i] = pltt[i]; + } +} + +bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targetY, u16 blendColor) +{ + u8 temp; + register u32 _blendColor asm("r8") = blendColor; + + if (gPaletteFade.active) + { + return FALSE; + } + else + { + gPaletteFade.deltaY = 2; + + if (delay < 0) + { + gPaletteFade.deltaY += (delay * -1); + delay = 0; + } + + gPaletteFade_selectedPalettes = selectedPalettes; + gPaletteFade.delayCounter = delay; + gPaletteFade_delay = delay; + gPaletteFade.y = startY; + gPaletteFade.targetY = targetY; + gPaletteFade.blendColor = _blendColor; + gPaletteFade.active = 1; + gPaletteFade.mode = NORMAL_FADE; + + if (startY < targetY) + gPaletteFade.yDec = 0; + else + gPaletteFade.yDec = 1; + + UpdatePaletteFade(); + + temp = gPaletteFade.bufferTransferDisabled; + gPaletteFade.bufferTransferDisabled = 0; + CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE); + gPlttBufferTransferPending = 0; + if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active) + UpdateBlendRegisters(); + gPaletteFade.bufferTransferDisabled = temp; + return TRUE; + } +} + +bool8 unref_sub_8073D3C(u32 a1, u8 a2, u8 a3, u8 a4, u16 a5) +{ + ReadPlttIntoBuffers(); + return BeginNormalPaletteFade(a1, a2, a3, a4, a5); +} + +void unref_sub_8073D84(u8 a1, u32 *a2) +{ + u8 i; + + for (i = 0; i < 16; i++) + { + struct PaletteStruct *palstruct = &gPaletteStructs[i]; + if (palstruct->ps_field_4_0) + { + if (palstruct->base->pst_field_8_0 == a1) + { + u8 val1 = palstruct->srcIndex; + u8 val2 = palstruct->base->srcCount; + if (val1 == val2) + { + unused_sub_8074020(palstruct); + if (!palstruct->ps_field_4_0) + continue; + } + if (palstruct->ps_field_8 == 0) + unused_sub_8073DFC(palstruct, a2); + else + palstruct->ps_field_8--; + + unused_sub_8073F60(palstruct, a2); + } + } + } +} + +static void unused_sub_8073DFC(struct PaletteStruct *a1, u32 *a2) +{ + s32 srcIndex; + s32 srcCount; + u8 i = 0; + u16 srcOffset = a1->srcIndex * a1->base->size; + + if (!a1->base->pst_field_8_0) + { + while (i < a1->base->size) + { + gPlttBufferUnfaded[a1->destOffset] = a1->base->src[srcOffset]; + gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset]; + i++; + a1->destOffset++; + srcOffset++; + } + } + else + { + while (i < a1->base->size) + { + gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset]; + i++; + a1->destOffset++; + srcOffset++; + } + } + + a1->destOffset = a1->baseDestOffset; + a1->ps_field_8 = a1->base->pst_field_A; + a1->srcIndex++; + + srcIndex = a1->srcIndex; + srcCount = a1->base->srcCount; + + if (srcIndex >= srcCount) + { + if (a1->ps_field_9) + a1->ps_field_9--; + a1->srcIndex = 0; + } + + *a2 |= 1 << (a1->baseDestOffset >> 4); +} + +static void unused_sub_8073F60(struct PaletteStruct *a1, u32 *a2) +{ + if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes)) + { + if (!a1->base->pst_field_8_0) + { + if (gPaletteFade.delayCounter != gPaletteFade_delay) + { + BlendPalette( + a1->baseDestOffset, + a1->base->size, + gPaletteFade.y, + gPaletteFade.blendColor); + } + } + else + { + if (!gPaletteFade.delayCounter) + { + if (a1->ps_field_8 != a1->base->pst_field_A) + { + u32 srcOffset = a1->srcIndex * a1->base->size; + u8 i; + + for (i = 0; i < a1->base->size; i++) + gPlttBufferFaded[a1->baseDestOffset + i] = a1->base->src[srcOffset + i]; + } + } + } + } +} + +static void unused_sub_8074020(struct PaletteStruct *a1) +{ + if (!a1->ps_field_9) + { + s32 val = a1->base->pst_field_B_5; + + if (!val) + { + a1->srcIndex = 0; + a1->ps_field_8 = a1->base->pst_field_A; + a1->ps_field_9 = a1->base->pst_field_C; + a1->destOffset = a1->baseDestOffset; + } + else + { + if (val < 0) + return; + if (val > 2) + return; + ResetPaletteStructByUid(a1->base->uid); + } + } + else + { + a1->ps_field_9--; + } +} + +void ResetPaletteStructByUid(u16 a1) +{ + u8 paletteNum = GetPaletteNumByUid(a1); + if (paletteNum != 16) + ResetPaletteStruct(paletteNum); +} + +void ResetPaletteStruct(u8 paletteNum) +{ + gPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate; + gPaletteStructs[paletteNum].ps_field_4_0 = 0; + gPaletteStructs[paletteNum].baseDestOffset = 0; + gPaletteStructs[paletteNum].destOffset = 0; + gPaletteStructs[paletteNum].srcIndex = 0; + gPaletteStructs[paletteNum].ps_field_4_1 = 0; + gPaletteStructs[paletteNum].ps_field_8 = 0; + gPaletteStructs[paletteNum].ps_field_9 = 0; +} + +void ResetPaletteFadeControl() +{ + gPaletteFade.multipurpose1 = 0; + gPaletteFade.multipurpose2 = 0; + gPaletteFade.delayCounter = 0; + gPaletteFade.y = 0; + gPaletteFade.targetY = 0; + gPaletteFade.blendColor = 0; + gPaletteFade.active = 0; + gPaletteFade.multipurpose2 = 0; // assign same value twice + gPaletteFade.yDec = 0; + gPaletteFade.bufferTransferDisabled = 0; + gPaletteFade.shouldResetBlendRegisters = 0; + gPaletteFade.hardwareFadeFinishing = 0; + gPaletteFade.softwareFadeFinishing = 0; + gPaletteFade.softwareFadeFinishingCounter = 0; + gPaletteFade.objPaletteToggle = 0; + gPaletteFade.deltaY = 2; +} + +void unref_sub_8074168(u16 uid) +{ + u8 paletteNum = GetPaletteNumByUid(uid); + if (paletteNum != 16) + gPaletteStructs[paletteNum].ps_field_4_1 = 1; +} + +void unref_sub_8074194(u16 uid) +{ + u8 paletteNum = GetPaletteNumByUid(uid); + if (paletteNum != 16) + gPaletteStructs[paletteNum].ps_field_4_1 = 0; +} + +static u8 GetPaletteNumByUid(u16 uid) +{ + u8 i; + + for (i = 0; i < 16; i++) + if (gPaletteStructs[i].base->uid == uid) + return i; + + return 16; +} + +static u8 UpdateNormalPaletteFade() +{ + u16 paletteOffset; + u16 selectedPalettes; + + if (!gPaletteFade.active) + return 0; + + if (IsSoftwarePaletteFadeFinishing()) + { + return gPaletteFade.active; + } + else + { + if (!gPaletteFade.objPaletteToggle) + { + if (gPaletteFade.delayCounter < gPaletteFade_delay) + { + gPaletteFade.delayCounter++; + return 2; + } + gPaletteFade.delayCounter = 0; + } + + paletteOffset = 0; + + if (!gPaletteFade.objPaletteToggle) + { + selectedPalettes = gPaletteFade_selectedPalettes; + } + else + { + selectedPalettes = gPaletteFade_selectedPalettes >> 16; + paletteOffset = 256; + } + + while (selectedPalettes) + { + if (selectedPalettes & 1) + BlendPalette( + paletteOffset, + 16, + gPaletteFade.y, + gPaletteFade.blendColor); + selectedPalettes >>= 1; + paletteOffset += 16; + } + + gPaletteFade.objPaletteToggle ^= 1; + + if (!gPaletteFade.objPaletteToggle) + { + if (gPaletteFade.y == gPaletteFade.targetY) + { + gPaletteFade_selectedPalettes = 0; + gPaletteFade.softwareFadeFinishing = 1; + } + else + { + s8 val; + + if (!gPaletteFade.yDec) + { + val = gPaletteFade.y; + val += gPaletteFade.deltaY; + if (val > gPaletteFade.targetY) + val = gPaletteFade.targetY; + gPaletteFade.y = val; + } + else + { + val = gPaletteFade.y; + val -= gPaletteFade.deltaY; + if (val < gPaletteFade.targetY) + val = gPaletteFade.targetY; + gPaletteFade.y = val; + } + } + } + + return gPaletteFade.active; + } +} + +void InvertPlttBuffer(u32 selectedPalettes) +{ + u16 paletteOffset = 0; + + while (selectedPalettes) + { + if (selectedPalettes & 1) + { + u8 i; + for (i = 0; i < 16; i++) + gPlttBufferFaded[paletteOffset + i] = ~gPlttBufferFaded[paletteOffset + i]; + } + selectedPalettes >>= 1; + paletteOffset += 16; + } +} + +void TintPlttBuffer(u32 selectedPalettes, s8 r, s8 g, s8 b) +{ + u16 paletteOffset = 0; + + while (selectedPalettes) + { + if (selectedPalettes & 1) + { + u8 i; + for (i = 0; i < 16; i++) + { + struct PlttData *data = (struct PlttData *)&gPlttBufferFaded[paletteOffset + i]; + data->r += r; + data->g += g; + data->b += b; + } + } + selectedPalettes >>= 1; + paletteOffset += 16; + } +} + +void UnfadePlttBuffer(u32 selectedPalettes) +{ + u16 paletteOffset = 0; + + while (selectedPalettes) + { + if (selectedPalettes & 1) + { + u8 i; + for (i = 0; i < 16; i++) + gPlttBufferFaded[paletteOffset + i] = gPlttBufferUnfaded[paletteOffset + i]; + } + selectedPalettes >>= 1; + paletteOffset += 16; + } +} + +void BeginFastPaletteFade(u8 submode) +{ + gPaletteFade.deltaY = 2; + BeginFastPaletteFadeInternal(submode); +} + +static void BeginFastPaletteFadeInternal(u8 submode) +{ + gPaletteFade.y = 31; + gPaletteFade_submode = submode & 0x3F; + gPaletteFade.active = 1; + gPaletteFade.mode = FAST_FADE; + + if (submode == FAST_FADE_IN_FROM_BLACK) + CpuFill16(gPlttBufferFaded, RGB_BLACK, PLTT_SIZE); + + if (submode == FAST_FADE_IN_FROM_WHITE) + CpuFill16(gPlttBufferFaded, RGB_WHITE, PLTT_SIZE); + + UpdatePaletteFade(); +} + +static u8 UpdateFastPaletteFade(void) +{ + u16 i; + u16 paletteOffsetStart; + u16 paletteOffsetEnd; + s8 r0; + s8 g0; + s8 b0; + s8 r; + s8 g; + s8 b; + s8 val1; + s8 val2; + + if (!gPaletteFade.active) + return 0; + + if (IsSoftwarePaletteFadeFinishing()) + return gPaletteFade.active; + + if (gPaletteFade.objPaletteToggle) + { + paletteOffsetStart = 256; + paletteOffsetEnd = 512; + } + else + { + paletteOffsetStart = 0; + paletteOffsetEnd = 256; + } + + switch (gPaletteFade_submode) + { + case FAST_FADE_IN_FROM_WHITE: + for (i = paletteOffsetStart; i < paletteOffsetEnd; i++) + { + struct PlttData *unfaded; + struct PlttData *faded; + + unfaded = (struct PlttData *)&gPlttBufferUnfaded[i]; + r0 = unfaded->r; + g0 = unfaded->g; + b0 = unfaded->b; + + faded = (struct PlttData *)&gPlttBufferFaded[i]; + r = faded->r - 2; + g = faded->g - 2; + b = faded->b - 2; + + if (r < r0) + r = r0; + if (g < g0) + g = g0; + if (b < b0) + b = b0; + + gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + } + break; + case FAST_FADE_OUT_TO_WHTIE: + for (i = paletteOffsetStart; i < paletteOffsetEnd; i++) + { + struct PlttData *data = (struct PlttData *)&gPlttBufferFaded[i]; + r = data->r + 2; + g = data->g + 2; + b = data->b + 2; + + if (r > 31) + r = 31; + if (g > 31) + g = 31; + if (b > 31) + b = 31; + + gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + } + break; + case FAST_FADE_IN_FROM_BLACK: + for (i = paletteOffsetStart; i < paletteOffsetEnd; i++) + { + struct PlttData *unfaded; + struct PlttData *faded; + + unfaded = (struct PlttData *)&gPlttBufferUnfaded[i]; + r0 = unfaded->r; + g0 = unfaded->g; + b0 = unfaded->b; + + faded = (struct PlttData *)&gPlttBufferFaded[i]; + r = faded->r + 2; + g = faded->g + 2; + b = faded->b + 2; + + if (r > r0) + r = r0; + if (g > g0) + g = g0; + if (b > b0) + b = b0; + + gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + } + break; + case FAST_FADE_OUT_TO_BLACK: + for (i = paletteOffsetStart; i < paletteOffsetEnd; i++) + { + struct PlttData *data = (struct PlttData *)&gPlttBufferFaded[i]; + r = data->r - 2; + g = data->g - 2; + b = data->b - 2; + + if (r < 0) + r = 0; + if (g < 0) + g = 0; + if (b < 0) + b = 0; + + gPlttBufferFaded[i] = r | (g << 5) | (b << 10); + } + } + + gPaletteFade.objPaletteToggle ^= 1; + + if (gPaletteFade.objPaletteToggle) + return gPaletteFade.active; + + if (gPaletteFade.y - gPaletteFade.deltaY < 0) + gPaletteFade.y = 0; + else + gPaletteFade.y -= gPaletteFade.deltaY; + + if (gPaletteFade.y == 0) + { + switch (gPaletteFade_submode) + { + case FAST_FADE_IN_FROM_WHITE: + case FAST_FADE_IN_FROM_BLACK: + CpuCopy32(gPlttBufferUnfaded, gPlttBufferFaded, PLTT_SIZE); + break; + case FAST_FADE_OUT_TO_WHTIE: + CpuFill32(gPlttBufferFaded, 0xFFFFFFFF, PLTT_SIZE); + break; + case FAST_FADE_OUT_TO_BLACK: + CpuFill32(gPlttBufferFaded, 0, PLTT_SIZE); + break; + } + + gPaletteFade.mode = NORMAL_FADE; + gPaletteFade.softwareFadeFinishing = 1; + } + + return gPaletteFade.active; +} + +void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 shouldResetBlendRegisters) +{ + gPaletteFade_blendCnt = blendCnt; + gPaletteFade.delayCounter = delay; + gPaletteFade_delay = delay; + gPaletteFade.y = y; + gPaletteFade.targetY = targetY; + gPaletteFade.active = 1; + gPaletteFade.mode = HARDWARE_FADE; + gPaletteFade.shouldResetBlendRegisters = shouldResetBlendRegisters & 1; + gPaletteFade.hardwareFadeFinishing = 0; + + if (y < targetY) + gPaletteFade.yDec = 0; + else + gPaletteFade.yDec = 1; +} + +static u8 UpdateHardwarePaletteFade(void) +{ + if (!gPaletteFade.active) + return 0; + + if (gPaletteFade.delayCounter < gPaletteFade_delay) + { + gPaletteFade.delayCounter++; + return 2; + } + + gPaletteFade.delayCounter = 0; + + if (!gPaletteFade.yDec) + { + gPaletteFade.y++; + if (gPaletteFade.y > gPaletteFade.targetY) + { + gPaletteFade.hardwareFadeFinishing++; + gPaletteFade.y--; + } + } + else + { + s32 y = gPaletteFade.y--; + if (y - 1 < gPaletteFade.targetY) + { + gPaletteFade.hardwareFadeFinishing++; + gPaletteFade.y++; + } + } + + if (gPaletteFade.hardwareFadeFinishing) + { + if (gPaletteFade.shouldResetBlendRegisters) + { + gPaletteFade_blendCnt = 0; + gPaletteFade.y = 0; + } + gPaletteFade.shouldResetBlendRegisters = 0; + } + + return gPaletteFade.active; +} + +static void UpdateBlendRegisters(void) +{ + REG_BLDCNT = gPaletteFade_blendCnt; + REG_BLDY = gPaletteFade.y; + if (gPaletteFade.hardwareFadeFinishing) + { + gPaletteFade.hardwareFadeFinishing = 0; + gPaletteFade.mode = 0; + gPaletteFade_blendCnt = 0; + gPaletteFade.y = 0; + gPaletteFade.active = 0; + } +} + +static bool8 IsSoftwarePaletteFadeFinishing(void) +{ + if (gPaletteFade.softwareFadeFinishing) + { + if (gPaletteFade.softwareFadeFinishingCounter == 4) + { + gPaletteFade.active = 0; + gPaletteFade.softwareFadeFinishing = 0; + gPaletteFade.softwareFadeFinishingCounter = 0; + } + else + { + gPaletteFade.softwareFadeFinishingCounter++; + } + + return TRUE; + } + else + { + return FALSE; + } +} + +void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color) +{ + u16 paletteOffset; + + for (paletteOffset = 0; selectedPalettes; paletteOffset += 16) + { + if (selectedPalettes & 1) + BlendPalette(paletteOffset, 16, coeff, color); + selectedPalettes >>= 1; + } +} + +void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color) +{ + void *src = gPlttBufferUnfaded; + void *dest = gPlttBufferFaded; + DmaCopy32(3, src, dest, PLTT_SIZE); + BlendPalettes(selectedPalettes, coeff, color); +} diff --git a/src/text.c b/src/text.c index 276a2ccfb..8335e61c8 100644 --- a/src/text.c +++ b/src/text.c @@ -3,6 +3,7 @@ #include "main.h" #include "string_util.h" #include "songs.h" +#include "palette.h" enum { @@ -117,7 +118,6 @@ struct ShiftAmount u32 right; }; -extern void LoadPalette(const u16 *, u16, u32); extern void sub_8075474(u16); extern void audio_play(u16); extern u8 mplay_has_finished_maybe(void); |