decompile up to sub_80444C4

This commit is contained in:
ProjectRevoTPP
2018-10-10 00:47:44 -04:00
parent 799a9ccfe2
commit 05d03f7f32
21 changed files with 482 additions and 1385 deletions
+5 -5
View File
@@ -4155,7 +4155,7 @@ _08011F50:
cmp r4, r0
bne _08011F74
ldr r0, _08011F6C @ =gUnknown_83AE03C
ldr r1, _08011F70 @ =gUnknown_2024024
ldr r1, _08011F70 @ =gBattleMonForms
adds r1, r6, r1
ldrb r1, [r1]
lsls r1, 2
@@ -4165,7 +4165,7 @@ _08011F50:
.align 2, 0
_08011F68: .4byte 0x00000181
_08011F6C: .4byte gUnknown_83AE03C
_08011F70: .4byte gUnknown_2024024
_08011F70: .4byte gBattleMonForms
_08011F74:
movs r0, 0xCE
lsls r0, 1
@@ -4240,7 +4240,7 @@ _08011FE8:
lsrs r0, 22
adds r1, 0x4
adds r1, r0
ldr r2, _08012040 @ =gUnknown_2024024
ldr r2, _08012040 @ =gBattleMonForms
movs r3, 0x2E
ldrsh r0, [r4, r3]
adds r0, r2
@@ -4260,7 +4260,7 @@ _0801201A:
subs r0, 0x1
cmp r0, 0
bge _0801201A
ldr r0, _08012040 @ =gUnknown_2024024
ldr r0, _08012040 @ =gBattleMonForms
movs r3, 0x2E
ldrsh r1, [r4, r3]
adds r1, r0
@@ -4273,7 +4273,7 @@ _08012034:
bx r0
.align 2, 0
_0801203C: .4byte gMonSpritesGfxPtr
_08012040: .4byte gUnknown_2024024
_08012040: .4byte gBattleMonForms
thumb_func_end sub_8011FB4
thumb_func_start sub_8012044
+8 -8
View File
@@ -227,7 +227,7 @@ _08074638:
cmp r4, r0
bne _08074658
ldr r0, _08074650 @ =gUnknown_83AE050
ldr r1, _08074654 @ =gUnknown_2024024
ldr r1, _08074654 @ =gBattleMonForms
adds r1, r5, r1
ldrb r1, [r1]
adds r1, r0
@@ -236,7 +236,7 @@ _08074638:
.align 2, 0
_0807464C: .4byte 0x00000181
_08074650: .4byte gUnknown_83AE050
_08074654: .4byte gUnknown_2024024
_08074654: .4byte gBattleMonForms
_08074658:
movs r0, 0xCE
lsls r0, 1
@@ -328,7 +328,7 @@ _08074704:
cmp r4, r0
bne _08074728
ldr r0, _08074720 @ =gUnknown_83AE03C
ldr r1, _08074724 @ =gUnknown_2024024
ldr r1, _08074724 @ =gBattleMonForms
adds r1, r6, r1
ldrb r1, [r1]
lsls r1, 2
@@ -338,7 +338,7 @@ _08074704:
.align 2, 0
_0807471C: .4byte 0x00000181
_08074720: .4byte gUnknown_83AE03C
_08074724: .4byte gUnknown_2024024
_08074724: .4byte gBattleMonForms
_08074728:
movs r0, 0xCE
lsls r0, 1
@@ -382,7 +382,7 @@ sub_807474C: @ 807474C
cmp r4, r0
bne _08074788
ldr r0, _08074780 @ =gUnknown_83AE04C
ldr r1, _08074784 @ =gUnknown_2024024
ldr r1, _08074784 @ =gBattleMonForms
adds r1, r6, r1
ldrb r1, [r1]
adds r1, r0
@@ -391,7 +391,7 @@ sub_807474C: @ 807474C
.align 2, 0
_0807477C: .4byte 0x00000181
_08074780: .4byte gUnknown_83AE04C
_08074784: .4byte gUnknown_2024024
_08074784: .4byte gBattleMonForms
_08074788:
movs r0, 0xCE
lsls r0, 1
@@ -5431,7 +5431,7 @@ _08076CA6:
ldr r0, _08076CBC @ =0x00000181
cmp r7, r0
bne _08076CC8
ldr r0, _08076CC0 @ =gUnknown_2024024
ldr r0, _08076CC0 @ =gBattleMonForms
add r0, r8
ldrb r0, [r0]
lsls r0, 2
@@ -5440,7 +5440,7 @@ _08076CA6:
b _08076CDE
.align 2, 0
_08076CBC: .4byte 0x00000181
_08076CC0: .4byte gUnknown_2024024
_08076CC0: .4byte gBattleMonForms
_08076CC4: .4byte gUnknown_83AE03C
_08076CC8:
movs r0, 0xCE
+2 -2
View File
@@ -55250,7 +55250,7 @@ sub_80BCEF4: @ 80BCEF4
lsls r4, 2
adds r2, 0x4
adds r2, r4
ldr r1, _080BCFC8 @ =gUnknown_2024024
ldr r1, _080BCFC8 @ =gBattleMonForms
adds r0, r1
ldrb r1, [r0]
lsls r1, 11
@@ -55320,7 +55320,7 @@ _080BCFA0:
bx r0
.align 2, 0
_080BCFC4: .4byte gMonSpritesGfxPtr
_080BCFC8: .4byte gUnknown_2024024
_080BCFC8: .4byte gBattleMonForms
thumb_func_end sub_80BCEF4
thumb_func_start sub_80BCFCC
+2 -2
View File
@@ -3164,7 +3164,7 @@ _080DFAC6:
lsls r0, r1, 2
adds r2, 0x4
adds r2, r0
ldr r1, _080DFB0C @ =gUnknown_2024024
ldr r1, _080DFB0C @ =gBattleMonForms
ldr r0, _080DFB10 @ =gUnknown_2037F1A
ldrb r0, [r0]
adds r0, r1
@@ -3193,7 +3193,7 @@ _080DFB00:
b _080DFBCE
.align 2, 0
_080DFB08: .4byte gMonSpritesGfxPtr
_080DFB0C: .4byte gUnknown_2024024
_080DFB0C: .4byte gBattleMonForms
_080DFB10: .4byte gUnknown_2037F1A
_080DFB14: .4byte 0x04000200
_080DFB18: .4byte gTasks
+4 -4
View File
@@ -3641,7 +3641,7 @@ LinkOpponentHandleLoadPokeSprite: @ 803C3B4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _0803C4F8 @ =gUnknown_2024024
ldr r1, _0803C4F8 @ =gBattleMonForms
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
@@ -3681,7 +3681,7 @@ _0803C4E8: .4byte gMultiuseSpriteTemplate
_0803C4EC: .4byte gUnknown_2023D44
_0803C4F0: .4byte gSprites
_0803C4F4: .4byte 0x0000ff10
_0803C4F8: .4byte gUnknown_2024024
_0803C4F8: .4byte gBattleMonForms
_0803C4FC: .4byte gUnknown_3004FE0
_0803C500: .4byte sub_803AC14
thumb_func_end LinkOpponentHandleLoadPokeSprite
@@ -3844,7 +3844,7 @@ sub_803C550: @ 803C550
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _0803C6CC @ =gUnknown_2024024
ldr r1, _0803C6CC @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
@@ -3895,7 +3895,7 @@ _0803C6BC: .4byte gUnknown_3004FFC
_0803C6C0: .4byte gMultiuseSpriteTemplate
_0803C6C4: .4byte gUnknown_2023D44
_0803C6C8: .4byte gSprites
_0803C6CC: .4byte gUnknown_2024024
_0803C6CC: .4byte gBattleMonForms
_0803C6D0: .4byte SpriteCallbackDummy
thumb_func_end sub_803C550
+4 -4
View File
@@ -3435,7 +3435,7 @@ LinkPartnerHandleLoadPokeSprite: @ 80D5DB4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080D5EC4 @ =gUnknown_2024024
ldr r1, _080D5EC4 @ =gBattleMonForms
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
@@ -3458,7 +3458,7 @@ _080D5EB4: .4byte gMultiuseSpriteTemplate
_080D5EB8: .4byte gUnknown_2023D44
_080D5EBC: .4byte gSprites
_080D5EC0: .4byte 0x0000ff10
_080D5EC4: .4byte gUnknown_2024024
_080D5EC4: .4byte gBattleMonForms
_080D5EC8: .4byte gUnknown_3004FE0
_080D5ECC: .4byte sub_80D4590
thumb_func_end LinkPartnerHandleLoadPokeSprite
@@ -3626,7 +3626,7 @@ sub_80D5F40: @ 80D5F40
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080D60A4 @ =gUnknown_2024024
ldr r1, _080D60A4 @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
@@ -3677,7 +3677,7 @@ _080D6094: .4byte gUnknown_3004FFC
_080D6098: .4byte gMultiuseSpriteTemplate
_080D609C: .4byte gUnknown_2023D44
_080D60A0: .4byte gSprites
_080D60A4: .4byte gUnknown_2024024
_080D60A4: .4byte gBattleMonForms
_080D60A8: .4byte SpriteCallbackDummy
thumb_func_end sub_80D5F40
+2 -2
View File
@@ -7135,7 +7135,7 @@ sub_80EAF34: @ 80EAF34
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080EB0A0 @ =gUnknown_2024024
ldr r1, _080EB0A0 @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
@@ -7187,7 +7187,7 @@ _080EB090: .4byte gUnknown_3004FFC
_080EB094: .4byte gMultiuseSpriteTemplate
_080EB098: .4byte gUnknown_2023D44
_080EB09C: .4byte gSprites
_080EB0A0: .4byte gUnknown_2024024
_080EB0A0: .4byte gBattleMonForms
_080EB0A4: .4byte SpriteCallbackDummy
thumb_func_end sub_80EAF34
+4 -4
View File
@@ -3717,7 +3717,7 @@ _080378AA:
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080379B0 @ =gUnknown_2024024
ldr r1, _080379B0 @ =gBattleMonForms
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
@@ -3762,7 +3762,7 @@ _080379A0: .4byte gMultiuseSpriteTemplate
_080379A4: .4byte gUnknown_2023D44
_080379A8: .4byte gSprites
_080379AC: .4byte 0x0000ff10
_080379B0: .4byte gUnknown_2024024
_080379B0: .4byte gBattleMonForms
_080379B4: .4byte gBattleTypeFlags
_080379B8: .4byte gBattlerPartyIndexes
_080379BC: .4byte gEnemyParty
@@ -3936,7 +3936,7 @@ sub_8037A28: @ 8037A28
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08037BA4 @ =gUnknown_2024024
ldr r1, _08037BA4 @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
@@ -3987,7 +3987,7 @@ _08037B94: .4byte gUnknown_3004FFC
_08037B98: .4byte gMultiuseSpriteTemplate
_08037B9C: .4byte gUnknown_2023D44
_08037BA0: .4byte gSprites
_08037BA4: .4byte gUnknown_2024024
_08037BA4: .4byte gBattleMonForms
_08037BA8: .4byte SpriteCallbackDummy
thumb_func_end sub_8037A28
+2 -2
View File
@@ -7506,7 +7506,7 @@ sub_8031FF4: @ 8031FF4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08032158 @ =gUnknown_2024024
ldr r1, _08032158 @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
@@ -7557,7 +7557,7 @@ _08032148: .4byte gUnknown_3004FFC
_0803214C: .4byte gMultiuseSpriteTemplate
_08032150: .4byte gUnknown_2023D44
_08032154: .4byte gSprites
_08032158: .4byte gUnknown_2024024
_08032158: .4byte gBattleMonForms
_0803215C: .4byte SpriteCallbackDummy
thumb_func_end sub_8031FF4
+4 -4
View File
@@ -4001,7 +4001,7 @@ sub_81580E0: @ 81580E0
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08158230 @ =gUnknown_2024024
ldr r1, _08158230 @ =gBattleMonForms
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
@@ -4041,7 +4041,7 @@ _08158220: .4byte gMultiuseSpriteTemplate
_08158224: .4byte gUnknown_2023D44
_08158228: .4byte gSprites
_0815822C: .4byte 0x0000ff10
_08158230: .4byte gUnknown_2024024
_08158230: .4byte gBattleMonForms
_08158234: .4byte gUnknown_3004FE0
_08158238: .4byte sub_8156184
thumb_func_end sub_81580E0
@@ -6400,7 +6400,7 @@ sub_8159478: @ 8159478
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _081595E4 @ =gUnknown_2024024
ldr r1, _081595E4 @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
@@ -6452,7 +6452,7 @@ _081595D4: .4byte gUnknown_3004FFC
_081595D8: .4byte gMultiuseSpriteTemplate
_081595DC: .4byte gUnknown_2023D44
_081595E0: .4byte gSprites
_081595E4: .4byte gUnknown_2024024
_081595E4: .4byte gBattleMonForms
_081595E8: .4byte SpriteCallbackDummy
thumb_func_end sub_8159478
+1 -1
View File
@@ -81,7 +81,7 @@ _0800D298:
movs r4, 0
str r4, [r0]
bl ClearBattleAnimationVars
bl sub_8043FBC
bl ClearBattleMonForms
bl BattleAI_HandleItemUseBeforeAISetup
ldr r0, _0800D304 @ =gUnknown_2022B54
str r4, [r0]
+17 -17
View File
@@ -348,7 +348,7 @@ TryHandleLaunchBattleTableAnimation: @ 803401C
ands r0, r7
cmp r0, 0
beq _08034064
ldr r0, _08034060 @ =gUnknown_2024024
ldr r0, _08034060 @ =gBattleMonForms
adds r0, r6, r0
movs r2, 0x7F
adds r1, r7, 0
@@ -357,7 +357,7 @@ TryHandleLaunchBattleTableAnimation: @ 803401C
movs r0, 0x1
b _08034132
.align 2, 0
_08034060: .4byte gUnknown_2024024
_08034060: .4byte gBattleMonForms
_08034064:
ldr r0, _08034090 @ =gUnknown_2024018
mov r9, r0
@@ -829,7 +829,7 @@ _080343DA:
adds r1, r4
adds r0, r6, 0
bl LZDecompressWram
ldr r0, _08034480 @ =gUnknown_2024024
ldr r0, _08034480 @ =gBattleMonForms
add r0, r8
ldrb r1, [r0]
lsls r1, 5
@@ -872,7 +872,7 @@ _08034468:
.align 2, 0
_08034478: .4byte 0x00000181
_0803447C: .4byte gBattleStruct
_08034480: .4byte gUnknown_2024024
_08034480: .4byte gBattleMonForms
_08034484: .4byte gUnknown_2024018
_08034488: .4byte 0x00007fff
_0803448C: .4byte gUnknown_20375F8
@@ -1035,7 +1035,7 @@ _0803459A:
adds r1, r4
adds r0, r6, 0
bl LZDecompressWram
ldr r0, _08034640 @ =gUnknown_2024024
ldr r0, _08034640 @ =gBattleMonForms
add r0, r8
ldrb r1, [r0]
lsls r1, 5
@@ -1077,7 +1077,7 @@ _08034626:
.align 2, 0
_08034638: .4byte 0x00000181
_0803463C: .4byte gBattleStruct
_08034640: .4byte gUnknown_2024024
_08034640: .4byte gBattleMonForms
_08034644: .4byte gUnknown_2024018
_08034648: .4byte 0x00007fff
_0803464C: .4byte gUnknown_20375F8
@@ -1927,7 +1927,7 @@ _08034C16:
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08034D7C @ =gUnknown_2024024
ldr r1, _08034D7C @ =gBattleMonForms
add r1, r9
ldrb r1, [r1]
bl StartSpriteAnim
@@ -1968,7 +1968,7 @@ _08034D6C: .4byte gUnknown_2023D44
_08034D70: .4byte 0x06010000
_08034D74: .4byte 0x040000d4
_08034D78: .4byte 0x84000200
_08034D7C: .4byte gUnknown_2024024
_08034D7C: .4byte gBattleMonForms
_08034D80: .4byte gSpeciesNames
_08034D84: .4byte gUnknown_3004FF0
_08034D88:
@@ -2008,7 +2008,7 @@ _08034D88:
mov r1, r10
movs r2, 0x20
bl LoadPalette
ldr r1, _08034E38 @ =gUnknown_2024024
ldr r1, _08034E38 @ =gBattleMonForms
add r1, r9
ldr r0, [r4]
ldr r0, [r0, 0x8]
@@ -2052,7 +2052,7 @@ _08034E28: .4byte gUnknown_2023D44
_08034E2C: .4byte gSprites
_08034E30: .4byte gUnknown_2024018
_08034E34: .4byte gBattleStruct
_08034E38: .4byte gUnknown_2024024
_08034E38: .4byte gBattleMonForms
_08034E3C: .4byte 0x00007fff
_08034E40: .4byte gUnknown_20375F8
_08034E44: .4byte gUnknown_20371F8
@@ -2244,7 +2244,7 @@ _08034F5E:
adds r1, r4
adds r0, r6, 0
bl LZDecompressWram
ldr r0, _080350A4 @ =gUnknown_2024024
ldr r0, _080350A4 @ =gBattleMonForms
ldr r1, [sp]
adds r0, r1, r0
ldrb r1, [r0]
@@ -2276,7 +2276,7 @@ _08034FFC:
adds r0, r3, r0
mov r1, r8
strh r1, [r0, 0x2]
ldr r0, _080350A4 @ =gUnknown_2024024
ldr r0, _080350A4 @ =gBattleMonForms
mov r2, r9
adds r4, r2, r0
ldr r3, [sp]
@@ -2325,7 +2325,7 @@ _08035094: .4byte 0x040000d4
_08035098: .4byte 0x84000200
_0803509C: .4byte 0x00000181
_080350A0: .4byte gBattleStruct
_080350A4: .4byte gUnknown_2024024
_080350A4: .4byte gBattleMonForms
_080350A8: .4byte 0x00007fff
_080350AC: .4byte gUnknown_20375F8
_080350B0: .4byte gUnknown_20371F8
@@ -2465,7 +2465,7 @@ LoadBattleMonGfxAndAnimate: @ 80351A8
lsls r0, 2
ldr r1, _080351E4 @ =gSprites
adds r4, r0, r1
ldr r0, _080351E8 @ =gUnknown_2024024
ldr r0, _080351E8 @ =gBattleMonForms
adds r0, r6, r0
ldrb r1, [r0]
adds r0, r4, 0
@@ -2477,7 +2477,7 @@ LoadBattleMonGfxAndAnimate: @ 80351A8
b _080351F2
.align 2, 0
_080351E4: .4byte gSprites
_080351E8: .4byte gUnknown_2024024
_080351E8: .4byte gBattleMonForms
_080351EC:
adds r0, r6, 0
bl GetBankSpriteDefault_Y
@@ -3371,7 +3371,7 @@ ClearTemporarySpeciesSpriteData: @ 803589C
movs r3, 0
movs r2, 0
strh r2, [r0, 0x2]
ldr r0, _080358D0 @ =gUnknown_2024024
ldr r0, _080358D0 @ =gBattleMonForms
adds r0, r4, r0
strb r3, [r0]
cmp r1, 0
@@ -3384,7 +3384,7 @@ _080358C4:
bx r0
.align 2, 0
_080358CC: .4byte gUnknown_2024018
_080358D0: .4byte gUnknown_2024024
_080358D0: .4byte gBattleMonForms
thumb_func_end ClearTemporarySpeciesSpriteData
thumb_func_start AllocateMonSpritesGfx
+4 -4
View File
@@ -707,7 +707,7 @@ _080D77F0: .4byte gUnknown_83FDF3C
BattleStringExpandPlaceholdersToDisplayedString: @ 80D77F4
push {lr}
ldr r1, _080D7800 @ =gDisplayedStringBattle
bl sub_80D7868
bl BattleStringExpandPlaceholders
pop {r1}
bx r1
.align 2, 0
@@ -770,8 +770,8 @@ _080D785E:
bx r1
thumb_func_end TryGetStatusString
thumb_func_start sub_80D7868
sub_80D7868: @ 80D7868
thumb_func_start BattleStringExpandPlaceholders
BattleStringExpandPlaceholders: @ 80D7868
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -2177,7 +2177,7 @@ _080D83FA:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80D7868
thumb_func_end BattleStringExpandPlaceholders
thumb_func_start ExpandBattleTextBuffPlaceholders
ExpandBattleTextBuffPlaceholders: @ 80D8418
+2 -2
View File
@@ -734,7 +734,7 @@ sub_8083970: @ 8083970
str r2, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
ldr r1, _080839C0 @ =gUnknown_823730C
ldr r1, _080839C0 @ =gMonPaletteTable
lsls r4, r0, 3
adds r4, r1
ldrh r1, [r4, 0x4]
@@ -758,7 +758,7 @@ sub_8083970: @ 8083970
lsrs r0, 24
b _080839CA
.align 2, 0
_080839C0: .4byte gUnknown_823730C
_080839C0: .4byte gMonPaletteTable
_080839C4: .4byte 0x0000ffff
_080839C8:
movs r0, 0x40
-1306
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -726,7 +726,7 @@ _08077CD2:
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08077DA8 @ =gUnknown_2024024
ldr r1, _08077DA8 @ =gBattleMonForms
adds r1, r7, r1
ldrb r1, [r1]
bl StartSpriteAnim
@@ -738,7 +738,7 @@ _08077D98: .4byte gMultiuseSpriteTemplate
_08077D9C: .4byte gUnknown_2023D44
_08077DA0: .4byte gSprites
_08077DA4: .4byte SpriteCallbackDummy
_08077DA8: .4byte gUnknown_2024024
_08077DA8: .4byte gBattleMonForms
_08077DAC:
ldr r0, _08077E00 @ =gBattleTypeFlags
ldr r1, [r0]
@@ -952,7 +952,7 @@ _08077EA8:
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08077FDC @ =gUnknown_2024024
ldr r1, _08077FDC @ =gBattleMonForms
adds r1, r7, r1
ldrb r1, [r1]
bl StartSpriteAnim
@@ -996,7 +996,7 @@ _08077FCC: .4byte gMultiuseSpriteTemplate
_08077FD0: .4byte gUnknown_2023D44
_08077FD4: .4byte gSprites
_08077FD8: .4byte SpriteCallbackDummy
_08077FDC: .4byte gUnknown_2024024
_08077FDC: .4byte gBattleMonForms
_08077FE0: .4byte gUnknown_2024018
thumb_func_end sub_8077C38
+5 -5
View File
@@ -79,13 +79,13 @@ gUnknown_8235E6C:: @ 8235E6C
gUnknown_823654C:: @ 823654C
.incbin "baserom.gba", 0x23654C, 0xDC0
gUnknown_823730C:: @ 823730C
gMonPaletteTable:: @ 823730C
.incbin "baserom.gba", 0x23730C, 0xE8
gUnknown_82373F4:: @ 82373F4
.incbin "baserom.gba", 0x2373F4, 0xCD8
gUnknown_82380CC:: @ 82380CC
gMonShinyPaletteTable:: @ 82380CC
.incbin "baserom.gba", 0x2380CC, 0x1010
gTrainerFrontAnimsPtrTable:: @ 82390DC
@@ -316,7 +316,7 @@ gItemEffectTable:: @ 82528BC
gNatureStatTable:: @ 8252B48
.incbin "baserom.gba", 0x252B48, 0x80
gUnknown_8252BC8:: @ 8252BC8
gTMHMLearnsets:: @ 8252BC8
.incbin "baserom.gba", 0x252BC8, 0xCE0
gFacilityClassToPicIndex:: @ 82538A8
@@ -343,7 +343,7 @@ gEvolutionTable:: @ 8259754
gLevelUpLearnsets:: @ 825D7B4
.incbin "baserom.gba", 0x25D7B4, 0x670
gUnknown_825DE24:: @ 825DE24
gPokeblockFlavorCompatibilityTable:: @ 825DE24
.incbin "baserom.gba", 0x25DE24, 0x7D
gUnknown_825DEA1:: @ 825DEA1
@@ -379,7 +379,7 @@ gUnknown_825DFF0:: @ 825DFF0
sFriendshipEventDeltas:: @ 825DFF6
.incbin "baserom.gba", 0x25DFF6, 0x1E
gUnknown_825E014:: @ 825E014
sHMMoves:: @ 825E014
.incbin "baserom.gba", 0x25E014, 0x12
gUnknown_825E026:: @ 825E026
+1 -1
View File
@@ -282,7 +282,7 @@ BattleText_MistShroud:: @ 83FBBB4
BattleText_GetPumped:: @ 83FBBE9
.incbin "baserom.gba", 0x3FBBE9, 0xE43
gUnknown_83FCA2C:: @ 83FCA2C
gText_PkmnsXPreventsSwitching:: @ 83FCA2C
.incbin "baserom.gba", 0x3FCA2C, 0x11E
BattleText_Rose:: @ 83FCB4A
+3 -3
View File
@@ -47,7 +47,7 @@
#define BATTLE_TYPE_LEGENDARY 0x2000
#define BATTLE_TYPE_REGI 0x4000
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
#define BATTLE_TYPE_DOME 0x10000
#define BATTLE_TYPE_DOME 0x10000 // this is used in pokemon.c, but its clearly not the correct name for FR/LG. TODO: Fix these
#define BATTLE_TYPE_PALACE 0x20000
#define BATTLE_TYPE_ARENA 0x40000
#define BATTLE_TYPE_FACTORY 0x80000
@@ -545,7 +545,7 @@ struct BattleStruct
u8 field_46;
u8 field_47;
u8 focusPunchBank;
u8 field_49;
u8 battlerPreventingSwitchout;
u8 moneyMultiplier;
u8 savedTurnActionNumber;
u8 switchInAbilitiesCounter;
@@ -598,7 +598,7 @@ struct BattleStruct
u8 field_A7;
u16 hpOnSwitchout[2];
u32 savedBattleTypeFlags;
u8 field_B0;
u8 abilityPreventingSwitchout;
u8 hpScale;
u8 synchronizeMoveEffect;
u8 field_B3;
+407 -4
View File
@@ -15,6 +15,8 @@
#include "evolution_scene.h"
#include "battle_message.h"
#include "link.h"
#include "m4a.h"
#include "sound.h"
#include "constants/items.h"
#include "constants/species.h"
#include "constants/pokemon.h"
@@ -51,14 +53,13 @@ extern const u8 gUnknown_825DEA1[];
extern const u8 gPPUpWriteMasks[];
extern u8 *gUnknown_83FD5D0[];
extern const u8 gUnknown_825DFF0[];
extern u8 gBattleTextBuff1[];
extern u8 gBattleTextBuff2[];
extern const u8 gText_EggNickname[];
extern const u8 gText_BadEgg[];
extern const u8 BattleText_Rose[];
extern const u8 BattleText_UnknownString3[];
extern const u8 BattleText_GetPumped[];
extern const u8 BattleText_MistShroud[];
extern const u8 gText_PkmnsXPreventsSwitching[];
extern const u8 sHoldEffectToType[][2];
extern u8 sLearningMoveTableID;
extern const u8 sSecretBaseFacilityClasses[2][5];
@@ -69,6 +70,12 @@ extern u16 gUnknown_82539D4[];
extern struct SpindaSpot gSpindaSpotGraphics[];
extern s8 gNatureStatTable[][5];
extern const s8 sFriendshipEventDeltas[][3];
extern u32 gTMHMLearnsets[][2];
extern u8 gBattleMonForms[4];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const u16 sHMMoves[];
extern s8 gPokeblockFlavorCompatibilityTable[];
// External functions
extern u8 sav1_map_get_name(void); // overworld
@@ -4577,7 +4584,7 @@ u8 GetNatureFromPersonality(u32 personality)
return personality % 25;
}
extern bool32 sub_806E25C(u16 targetSpecies);
extern bool32 sub_806E25C(void);
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
{
@@ -4679,7 +4686,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
if (gEvolutionTable[species][i].param == heldItem)
{
targetSpecies = gEvolutionTable[species][i].targetSpecies;
if (sub_806E25C(targetSpecies) || targetSpecies <= 151)
if (sub_806E25C() || targetSpecies <= 151)
{
heldItem = 0;
SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem);
@@ -5204,3 +5211,399 @@ void sub_8043B40(void)
{
u8 foo[4]; // huh?
}
void sub_8043B48(struct Pokemon *mon, int species, u8 unused, u32 data)
{
if (data > gExperienceTables[gBaseStats[species].growthRate][100])
{
data = gExperienceTables[gBaseStats[species].growthRate][100];
SetMonData(mon, MON_DATA_EXP, &data);
}
}
bool32 sub_8043B90(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL);
u8 newLevel = level + 1;
u32 exp = GetMonData(mon, MON_DATA_EXP, NULL);
if(level < 100)
{
if(exp > gExperienceTables[gBaseStats[species].growthRate][newLevel])
{
SetMonData(mon, MON_DATA_LEVEL, &newLevel);
sub_8043B48(mon, species, newLevel, exp);
return TRUE;
}
else
return FALSE;
}
else
{
sub_8043B48(mon, species, level, exp);
return FALSE;
}
}
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
if (species == SPECIES_EGG)
{
return 0;
}
else if (tm < 32)
{
u32 mask = 1 << tm;
return gTMHMLearnsets[species][0] & mask;
}
else
{
u32 mask = 1 << (tm - 32);
return gTMHMLearnsets[species][1] & mask;
}
}
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves)
{
u16 learnedMoves[4];
u8 numMoves = 0;
u16 species = GetMonData(mon, MON_DATA_SPECIES, 0);
u8 level = GetMonData(mon, MON_DATA_LEVEL, 0);
int i, j, k;
for (i = 0; i < 4; i++)
learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0);
for (i = 0; i < 20; i++)
{
u16 moveLevel;
if (gLevelUpLearnsets[species][i] == 0xFFFF)
break;
moveLevel = gLevelUpLearnsets[species][i] & 0xFE00;
if (moveLevel <= (level << 9))
{
for (j = 0; j < 4 && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++)
;
if (j == 4)
{
for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++)
;
if (k == numMoves)
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
}
}
}
return numMoves;
}
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves)
{
u8 numMoves = 0;
int i;
for (i = 0; i < 20 && gLevelUpLearnsets[species][i] != 0xFFFF; i++)
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
return numMoves;
}
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon)
{
u16 learnedMoves[4];
u16 moves[20];
u8 numMoves = 0;
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u8 level = GetMonData(mon, MON_DATA_LEVEL, 0);
int i, j, k;
if (species == SPECIES_EGG)
return 0;
for (i = 0; i < 4; i++)
learnedMoves[i] = GetMonData(mon, MON_DATA_MOVE1 + i, 0);
for (i = 0; i < 20; i++)
{
u16 moveLevel;
if (gLevelUpLearnsets[species][i] == 0xFFFF)
break;
moveLevel = gLevelUpLearnsets[species][i] & 0xFE00;
if (moveLevel <= (level << 9))
{
for (j = 0; j < 4 && learnedMoves[j] != (gLevelUpLearnsets[species][i] & 0x1FF); j++)
;
if (j == 4)
{
for (k = 0; k < numMoves && moves[k] != (gLevelUpLearnsets[species][i] & 0x1FF); k++)
;
if (k == numMoves)
moves[numMoves++] = gLevelUpLearnsets[species][i] & 0x1FF;
}
}
}
return numMoves;
}
// SpeciesToPokedexNum?
u16 sub_8043F90(u16 species)
{
species = SpeciesToNationalPokedexNum(species);
if (!sub_806E25C() && species > 151)
return 0xFFFF;
return species;
}
void ClearBattleMonForms(void)
{
int i;
for(i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
}
u16 GetMUS_ForBattle(void)
{
if(gBattleTypeFlags & 0x1000)
return 0x12A;
if(gBattleTypeFlags & 0x4000)
return 0x10A;
if(gBattleTypeFlags & 0x2)
return 0x10A;
if(gBattleTypeFlags & 0x8)
{
switch (gTrainers[gTrainerBattleOpponent_A].trainerClass)
{
case 0x5A:
return 0x12B;
case 0x54:
case 0x57:
return 0x128;
case 0x53:
case 0x55:
case 0x56:
case 0x58:
case 0x59:
default:
return 0x129;
}
}
return 0x12A;
}
void PlayBattleBGM(void)
{
ResetMapMusic();
m4aMPlayAllStop();
PlayBGM(GetMUS_ForBattle());
}
void PlayMapChosenOrBattleBGM(u16 songId)
{
ResetMapMusic();
m4aMPlayAllStop();
if (songId)
PlayNewMapMusic(songId);
else
PlayNewMapMusic(GetMUS_ForBattle());
}
const u8 *GetMonFrontSpritePal(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality);
}
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)
{
u32 shinyValue;
if (species > SPECIES_EGG)
return gMonPaletteTable[0].data;
shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
if (shinyValue < 8)
return gMonShinyPaletteTable[species].data;
else
return gMonPaletteTable[species].data;
}
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
return GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
}
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality)
{
u32 shinyValue;
shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
if (shinyValue < 8)
return &gMonShinyPaletteTable[species];
else
return &gMonPaletteTable[species];
}
bool32 IsHMMove2(u16 move)
{
int i = 0;
while (sHMMoves[i] != 0xFFFF)
{
if (sHMMoves[i++] == move)
return TRUE;
}
return FALSE;
}
bool8 IsPokeSpriteNotFlipped(u16 species)
{
return gBaseStats[species].noFlip;
}
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor)
{
u8 nature = GetNature(mon);
return gPokeblockFlavorCompatibilityTable[nature * 5 + flavor];
}
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor)
{
u8 nature = GetNatureFromPersonality(personality);
return gPokeblockFlavorCompatibilityTable[nature * 5 + flavor];
}
bool8 IsTradedMon(struct Pokemon *mon)
{
u8 otName[7 + 1]; // change PLAYER_NAME_LENGTH to 7
u32 otId;
GetMonData(mon, MON_DATA_OT_NAME, otName);
otId = GetMonData(mon, MON_DATA_OT_ID, 0);
return IsOtherTrainer(otId, otName);
}
bool8 IsOtherTrainer(u32 otId, u8 *otName)
{
if (otId ==
(gSaveBlock2Ptr->playerTrainerId[0]
| (gSaveBlock2Ptr->playerTrainerId[1] << 8)
| (gSaveBlock2Ptr->playerTrainerId[2] << 16)
| (gSaveBlock2Ptr->playerTrainerId[3] << 24)))
{
int i;
for (i = 0; otName[i] != EOS; i++)
if (otName[i] != gSaveBlock2Ptr->playerName[i])
return TRUE;
return FALSE;
}
return TRUE;
}
void MonRestorePP(struct Pokemon *mon)
{
BoxMonRestorePP(&mon->box);
}
void BoxMonRestorePP(struct BoxPokemon *boxMon)
{
int i;
for (i = 0; i < 4; i++)
{
if (GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, 0))
{
u16 move = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, 0);
u16 bonus = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES, 0);
u8 pp = CalculatePPWithBonus(move, bonus, i);
SetBoxMonData(boxMon, MON_DATA_PP1 + i, &pp);
}
}
}
// SetMonPreventsSwitchingString
void sub_8044348(void)
{
#ifdef NONMATCHING
gLastUsedAbility = gBattleStruct -> abilityPreventingSwitchout; // fixed from the original
#else
gLastUsedAbility = ((u8 *) gBattleStruct)[0xac]; // huh? why is this wrong?
#endif
gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN;
gBattleTextBuff1[1] = B_BUFF_MON_NICK_WITH_PREFIX;
gBattleTextBuff1[2] = gBattleStruct->battlerPreventingSwitchout;
gBattleTextBuff1[4] = B_BUFF_EOS;
if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER)
gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]);
else
gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout];
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, pokemon_order_func(gBattlerPartyIndexes[gBattlerInMenuId]))
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4);
}
void SetWildMonHeldItem(void)
{
// TODO: Replace 0x00010000 with the right flag that isnt BATTLE_TYPE_DOME
if (!(gBattleTypeFlags & (0x00010000 | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER)))
{
u16 rnd = Random() % 100;
u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0);
if (gBaseStats[species].item1 == gBaseStats[species].item2)
{
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
return;
}
if (rnd > 44)
{
if (rnd <= 94)
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item1);
else
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &gBaseStats[species].item2);
}
}
}
bool8 IsMonShiny(struct Pokemon *mon)
{
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
return IsShinyOtIdPersonality(otId, personality);
}
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality)
{
bool8 retVal = FALSE;
u32 shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
if (shinyValue < 8)
retVal = TRUE;
return retVal;
}
u8 *sub_80444C4(void)
{
u8 id = GetMultiplayerId();
return gLinkPlayers[GetBankMultiplayerId(gLinkPlayers[id].id ^ 2)].name;
}
+1 -1
View File
@@ -464,7 +464,7 @@ gBattleMovePower: @ 2024020
gMoveToLearn: @ 2024022
.space 0x2
gUnknown_2024024: @ 2024024
gBattleMonForms: @ 2024024
.space 0x4
sLearningMoveTableID: @ 2024028