summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2018-01-28 14:31:39 -0500
committeryenatch <yenatch@gmail.com>2018-01-28 14:31:39 -0500
commit48ef425d46b5879940fdad6641a5040cba900ca0 (patch)
tree7c2d361acfec1dfa3912261df1be36f2c97fcf7c
parente92ead0e159ccaa8301b189b9ef2bb1a33b2ea62 (diff)
try to match trailing battle_1 section
-rw-r--r--asm/battle_1.s1151
-rw-r--r--ld_script.txt1
-rw-r--r--src/rom_800D42C.c913
3 files changed, 913 insertions, 1152 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 980bd6a65..0528dcacf 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -983,1154 +983,3 @@ _0800DC12:
_0800DC1C: .4byte gTasks
_0800DC20: .4byte 0x00006001
thumb_func_end sub_800DAF8
-
- .section .text_800DC24
-
- thumb_func_start sub_800DE30
-sub_800DE30: @ 800DE30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _0800DE64 @ =gTasks
- lsls r0, 2
- mov r10, r0
- add r0, r9
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0800DE58
- b _0800DF9C
-_0800DE58:
- cmp r0, 0x1
- bgt _0800DE68
- cmp r0, 0
- beq _0800DE70
- b _0800E212
- .align 2, 0
-_0800DE64: .4byte gTasks
-_0800DE68:
- cmp r0, 0x2
- bne _0800DE6E
- b _0800E03C
-_0800DE6E:
- b _0800E212
-_0800DE70:
- ldr r0, _0800DED0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DEE0
- ldr r0, _0800DED4 @ =gLinkPlayers
- ldr r2, _0800DED8 @ =gUnknown_081F9680
- mov r8, r2
- adds r7, r0, 0
- adds r7, 0x8
- movs r5, 0x3
-_0800DE88:
- ldrb r0, [r7, 0x10]
- movs r1, 0x3
- ands r1, r0
- str r1, [sp, 0x8]
- lsls r4, r1, 1
- adds r4, r1
- lsls r4, 2
- mov r2, r8
- adds r0, r4, r2
- ldr r1, [r0]
- str r1, [sp, 0xC]
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r1, 0
- adds r1, r7, 0
- bl Text_InitWindow8002E4C
- ldr r0, [sp, 0xC]
- bl Text_PrintWindow8002F44
- ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
- adds r4, r2
- ldr r2, [r4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- bl sub_800DAF8
- adds r7, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _0800DE88
- b _0800DF70
- .align 2, 0
-_0800DED0: .4byte gBattleTypeFlags
-_0800DED4: .4byte gLinkPlayers
-_0800DED8: .4byte gUnknown_081F9680
-_0800DEDC: .4byte gUnknown_081F9680 + 0x8
-_0800DEE0:
- ldr r0, _0800DF84 @ =gSharedMem
- ldr r5, _0800DF88 @ =0x000160cb
- adds r0, r5
- ldrb r7, [r0]
- movs r0, 0x1
- adds r6, r7, 0
- eors r6, r0
- adds r1, r6, 0
- ldr r2, _0800DF8C @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DF04
- adds r6, r7, 0
- adds r7, r1, 0
-_0800DF04:
- ldr r0, _0800DF90 @ =gUnknown_081F9680
- mov r8, r0
- adds r0, 0x30
- mov r1, r8
- ldr r4, [r1, 0x30]
- lsls r1, r7, 3
- subs r1, r7
- lsls r1, 2
- ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
- adds r1, r2
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- adds r0, r4, 0
- bl Text_InitWindow8002E4C
- adds r0, r4, 0
- bl Text_PrintWindow8002F44
- mov r0, r8
- ldr r2, [r0, 0x38]
- mov r0, r9
- adds r1, r7, 0
- bl sub_800DAF8
- mov r0, r8
- adds r0, 0x3C
- mov r1, r8
- ldr r4, [r1, 0x3C]
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
- adds r1, r2
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- str r5, [sp, 0x4]
- adds r0, r4, 0
- bl Text_InitWindow8002E4C
- adds r0, r4, 0
- bl Text_PrintWindow8002F44
- mov r5, r8
- ldr r2, [r5, 0x44]
- mov r0, r9
- adds r1, r6, 0
- bl sub_800DAF8
-_0800DF70:
- ldr r0, _0800DF98 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0800E212
- .align 2, 0
-_0800DF84: .4byte gSharedMem
-_0800DF88: .4byte 0x000160cb
-_0800DF8C: .4byte gLinkPlayers
-_0800DF90: .4byte gUnknown_081F9680
-_0800DF94: .4byte gLinkPlayers + 0x8
-_0800DF98: .4byte gTasks
-_0800DF9C:
- ldr r0, _0800E010 @ =0x00002710
- bl AllocSpritePalette
- lsls r0, 24
- ldr r2, _0800E014 @ =gPlttBufferUnfaded
- lsrs r0, 19
- ldr r1, _0800E018 @ =0x0000021e
- adds r0, r1
- adds r2, r0, r2
- ldr r1, _0800E01C @ =gPlttBufferFaded
- adds r0, r1
- ldr r1, _0800E020 @ =0x00007fff
- strh r1, [r0]
- strh r1, [r2]
- ldr r0, _0800E024 @ =gSpriteTemplate_81F9574
- movs r1, 0x6C
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r4, _0800E028 @ =gSharedMem
- ldr r2, _0800E02C @ =0x0001608a
- adds r7, r4, r2
- strb r0, [r7]
- ldr r0, _0800E030 @ =gSpriteTemplate_81F958C
- movs r1, 0x84
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r5, _0800E034 @ =0x0001608b
- adds r4, r5
- strb r0, [r4]
- ldr r3, _0800E038 @ =gSprites
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0800E212
- .align 2, 0
-_0800E010: .4byte 0x00002710
-_0800E014: .4byte gPlttBufferUnfaded
-_0800E018: .4byte 0x0000021e
-_0800E01C: .4byte gPlttBufferFaded
-_0800E020: .4byte 0x00007fff
-_0800E024: .4byte gSpriteTemplate_81F9574
-_0800E028: .4byte gSharedMem
-_0800E02C: .4byte 0x0001608a
-_0800E030: .4byte gSpriteTemplate_81F958C
-_0800E034: .4byte 0x0001608b
-_0800E038: .4byte gSprites
-_0800E03C:
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0800E0A4
- ldr r4, _0800E090 @ =gBattle_BG1_X
- ldrh r0, [r6, 0xA]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E056
- adds r0, 0x1F
-_0800E056:
- asrs r1, r0, 5
- movs r2, 0x14
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E094 @ =gBattle_BG2_X
- ldrh r0, [r6, 0xC]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E074
- adds r0, 0x1F
-_0800E074:
- asrs r1, r0, 5
- movs r5, 0x8C
- negs r5, r5
- adds r0, r5, 0
- subs r0, r1
- strh r0, [r4]
- ldr r0, _0800E098 @ =gBattle_BG1_Y
- ldr r2, _0800E09C @ =0x0000ffdc
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0800E0A0 @ =gBattle_BG2_Y
- strh r1, [r0]
- b _0800E110
- .align 2, 0
-_0800E090: .4byte gBattle_BG1_X
-_0800E094: .4byte gBattle_BG2_X
-_0800E098: .4byte gBattle_BG1_Y
-_0800E09C: .4byte 0x0000ffdc
-_0800E0A0: .4byte gBattle_BG2_Y
-_0800E0A4:
- ldr r4, _0800E134 @ =gBattle_BG1_X
- ldrh r0, [r6, 0xA]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0B6
- adds r0, 0x1F
-_0800E0B6:
- asrs r1, r0, 5
- movs r5, 0x14
- negs r5, r5
- adds r0, r5, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E138 @ =gBattle_BG1_Y
- ldrh r0, [r6, 0xA]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0D4
- adds r0, 0x1F
-_0800E0D4:
- asrs r0, 5
- subs r0, 0xA4
- strh r0, [r4]
- ldr r4, _0800E13C @ =gBattle_BG2_X
- ldrh r0, [r6, 0xC]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0EC
- adds r0, 0x1F
-_0800E0EC:
- asrs r1, r0, 5
- movs r2, 0x8C
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E140 @ =gBattle_BG2_Y
- ldrh r0, [r6, 0xC]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E10A
- adds r0, 0x1F
-_0800E10A:
- asrs r0, 5
- subs r0, 0xA4
- strh r0, [r4]
-_0800E110:
- ldr r1, _0800E144 @ =gTasks
- mov r5, r9
- lsls r0, r5, 2
- add r0, r9
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xC]
- movs r2, 0xC
- ldrsh r7, [r1, r2]
- cmp r7, 0
- beq _0800E148
- subs r0, 0x2
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0xA]
- adds r0, 0x2
- strh r0, [r1, 0xA]
- b _0800E212
- .align 2, 0
-_0800E134: .4byte gBattle_BG1_X
-_0800E138: .4byte gBattle_BG1_Y
-_0800E13C: .4byte gBattle_BG2_X
-_0800E140: .4byte gBattle_BG2_Y
-_0800E144: .4byte gTasks
-_0800E148:
- movs r5, 0x12
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _0800E154
- bl PrintLinkBattleWinLossTie
-_0800E154:
- movs r0, 0x78
- bl PlaySE
- mov r0, r9
- bl DestroyTask
- ldr r4, _0800E224 @ =gSprites
- ldr r0, _0800E228 @ =gSharedMem
- mov r8, r0
- ldr r1, _0800E22C @ =0x0001608a
- add r1, r8
- mov r9, r1
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r5, _0800E230 @ =0x0001608b
- add r8, r5
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- mov r1, r8
- ldrb r0, [r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r5, _0800E234 @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _0800E238 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x2E]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- mov r5, r9
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x32]
-_0800E212:
- 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
-_0800E224: .4byte gSprites
-_0800E228: .4byte gSharedMem
-_0800E22C: .4byte 0x0001608a
-_0800E230: .4byte 0x0001608b
-_0800E234: .4byte 0x000003ff
-_0800E238: .4byte 0xfffffc00
- thumb_func_end sub_800DE30
-
- thumb_func_start sub_800E23C
-sub_800E23C: @ 800E23C
- push {r4,r5,lr}
- ldr r0, _0800E29C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800E2DC
- ldr r0, _0800E2A0 @ =gVersusFrameGfx
- ldr r1, _0800E2A4 @ =0x06004000
- bl LZDecompressVram
- ldr r4, _0800E2A8 @ =gVersusFrameTilemap
- ldr r1, _0800E2AC @ =0x0600e000
- adds r0, r4, 0
- bl LZDecompressVram
- ldr r1, _0800E2B0 @ =0x0600f000
- adds r0, r4, 0
- bl LZDecompressVram
- ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C
- ldr r1, _0800E2B8 @ =0x06010000
- bl LZDecompressVram
- ldr r0, _0800E2BC @ =gVersusFramePal
- movs r1, 0x60
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0800E2C0 @ =REG_BG1CNT
- ldr r2, _0800E2C4 @ =0x00005c04
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800E2C8 @ =REG_WININ
- movs r1, 0x36
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _0800E2CC @ =gBattle_BG1_Y
- ldr r2, _0800E2D0 @ =0x0000ff5c
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0800E2D4 @ =gBattle_BG2_Y
- strh r1, [r0]
- ldr r0, _0800E2D8 @ =gUnknown_081F95A4
- bl LoadCompressedObjectPic
- b _0800E3FC
- .align 2, 0
-_0800E29C: .4byte gBattleTypeFlags
-_0800E2A0: .4byte gVersusFrameGfx
-_0800E2A4: .4byte 0x06004000
-_0800E2A8: .4byte gVersusFrameTilemap
-_0800E2AC: .4byte 0x0600e000
-_0800E2B0: .4byte 0x0600f000
-_0800E2B4: .4byte gUnknown_08E5DC2C
-_0800E2B8: .4byte 0x06010000
-_0800E2BC: .4byte gVersusFramePal
-_0800E2C0: .4byte REG_BG1CNT
-_0800E2C4: .4byte 0x00005c04
-_0800E2C8: .4byte REG_WININ
-_0800E2CC: .4byte gBattle_BG1_Y
-_0800E2D0: .4byte 0x0000ff5c
-_0800E2D4: .4byte gBattle_BG2_Y
-_0800E2D8: .4byte gUnknown_081F95A4
-_0800E2DC:
- ldr r0, _0800E2F0 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E300
- ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E2F8 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E2F0: .4byte 0x00000902
-_0800E2F4: .4byte gBattleTerrainAnimTiles_Building
-_0800E2F8: .4byte 0x06004000
-_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building
-_0800E300:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E348
- ldr r0, _0800E320 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E330
- ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave
- ldr r1, _0800E328 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave
- b _0800E3D2
- .align 2, 0
-_0800E320: .4byte gGameVersion
-_0800E324: .4byte gBattleTerrainAnimTiles_Cave
-_0800E328: .4byte 0x06004000
-_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave
-_0800E330:
- ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater
- ldr r1, _0800E340 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater
- b _0800E3D2
- .align 2, 0
-_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater
-_0800E340: .4byte 0x06004000
-_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater
-_0800E348:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E3A0
- ldr r2, _0800E370 @ =gTrainers
- ldr r0, _0800E374 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800E384
- ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E37C @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E370: .4byte gTrainers
-_0800E374: .4byte gTrainerBattleOpponent
-_0800E378: .4byte gBattleTerrainAnimTiles_Building
-_0800E37C: .4byte 0x06004000
-_0800E380: .4byte gBattleTerrainAnimTilemap_Building
-_0800E384:
- cmp r0, 0x20
- bne _0800E3A0
- ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E398 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E394: .4byte gBattleTerrainAnimTiles_Building
-_0800E398: .4byte 0x06004000
-_0800E39C: .4byte gBattleTerrainAnimTilemap_Building
-_0800E3A0:
- bl sav1_map_get_battletype
- lsls r0, 24
- cmp r0, 0
- bne _0800E3EC
- ldr r4, _0800E3DC @ =gBattleTerrainTable
- ldr r5, _0800E3E0 @ =gBattleTerrain
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0800E3E4 @ =0x06004000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, 0xC
- adds r0, r4
- ldr r0, [r0]
-_0800E3D2:
- ldr r1, _0800E3E8 @ =0x0600e000
- bl LZDecompressVram
- b _0800E3FC
- .align 2, 0
-_0800E3DC: .4byte gBattleTerrainTable
-_0800E3E0: .4byte gBattleTerrain
-_0800E3E4: .4byte 0x06004000
-_0800E3E8: .4byte 0x0600e000
-_0800E3EC:
- ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E408 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building
- ldr r1, _0800E410 @ =0x0600e000
- bl LZDecompressVram
-_0800E3FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E404: .4byte gBattleTerrainAnimTiles_Building
-_0800E408: .4byte 0x06004000
-_0800E40C: .4byte gBattleTerrainAnimTilemap_Building
-_0800E410: .4byte 0x0600e000
- thumb_func_end sub_800E23C
-
- thumb_func_start sub_800E414
-sub_800E414: @ 800E414
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- cmp r0, 0x6
- bls _0800E422
- b _0800E7BA
-_0800E422:
- lsls r0, 2
- ldr r1, _0800E42C @ =_0800E430
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E42C: .4byte _0800E430
- .align 2, 0
-_0800E430:
- .4byte _0800E44C
- .4byte _0800E45C
- .4byte _0800E474
- .4byte _0800E484
- .4byte _0800E590
- .4byte _0800E69C
- .4byte _0800E7B4
-_0800E44C:
- ldr r0, _0800E458 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E458: .4byte gUnknown_08D00000
-_0800E45C:
- ldr r0, _0800E46C @ =gUnknown_08D00524
- ldr r1, _0800E470 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- b _0800E7BC
- .align 2, 0
-_0800E46C: .4byte gUnknown_08D00524
-_0800E470: .4byte 0x0600c000
-_0800E474:
- ldr r0, _0800E480 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _0800E7BC
- .align 2, 0
-_0800E480: .4byte gUnknown_08D004E0
-_0800E484:
- ldr r0, _0800E4A8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0800E4AC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E492
- b _0800E57C
-_0800E492:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E4C0
- ldr r0, _0800E4B0 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E4B8
- ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
- b _0800E57E
- .align 2, 0
-_0800E4A8: .4byte gBattleTypeFlags
-_0800E4AC: .4byte 0x00000902
-_0800E4B0: .4byte gGameVersion
-_0800E4B4: .4byte gBattleTerrainTiles_Cave
-_0800E4B8:
- ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water
- b _0800E57E
- .align 2, 0
-_0800E4BC: .4byte gBattleTerrainTiles_Water
-_0800E4C0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E4F0
- ldr r2, _0800E4E4 @ =gTrainers
- ldr r0, _0800E4E8 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- beq _0800E57C
- cmp r0, 0x20
- bne _0800E4F0
- ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E4E4: .4byte gTrainers
-_0800E4E8: .4byte gTrainerBattleOpponent
-_0800E4EC: .4byte gBattleTerrainTiles_Stadium
-_0800E4F0:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800E4FE
- b _0800E7BC
-_0800E4FE:
- lsls r0, 2
- ldr r1, _0800E508 @ =_0800E50C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E508: .4byte _0800E50C
- .align 2, 0
-_0800E50C:
- .4byte _0800E530
- .4byte _0800E57C
- .4byte _0800E54C
- .4byte _0800E554
- .4byte _0800E55C
- .4byte _0800E564
- .4byte _0800E56C
- .4byte _0800E574
- .4byte _0800E57C
-_0800E530:
- ldr r2, _0800E544 @ =gBattleTerrainTable
- ldr r0, _0800E548 @ =gBattleTerrain
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- b _0800E57E
- .align 2, 0
-_0800E544: .4byte gBattleTerrainTable
-_0800E548: .4byte gBattleTerrain
-_0800E54C:
- ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E550: .4byte gBattleTerrainTiles_Stadium
-_0800E554:
- ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E558: .4byte gBattleTerrainTiles_Stadium
-_0800E55C:
- ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E560: .4byte gBattleTerrainTiles_Stadium
-_0800E564:
- ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E568: .4byte gBattleTerrainTiles_Stadium
-_0800E56C:
- ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E570: .4byte gBattleTerrainTiles_Stadium
-_0800E574:
- ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E578: .4byte gBattleTerrainTiles_Stadium
-_0800E57C:
- ldr r0, _0800E588 @ =gBattleTerrainTiles_Building
-_0800E57E:
- ldr r1, _0800E58C @ =0x06008000
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E588: .4byte gBattleTerrainTiles_Building
-_0800E58C: .4byte 0x06008000
-_0800E590:
- ldr r0, _0800E5B4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0800E5B8 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E59E
- b _0800E688
-_0800E59E:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E5CC
- ldr r0, _0800E5BC @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E5C4
- ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
- b _0800E68A
- .align 2, 0
-_0800E5B4: .4byte gBattleTypeFlags
-_0800E5B8: .4byte 0x00000902
-_0800E5BC: .4byte gGameVersion
-_0800E5C0: .4byte gBattleTerrainTilemap_Cave
-_0800E5C4:
- ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water
- b _0800E68A
- .align 2, 0
-_0800E5C8: .4byte gBattleTerrainTilemap_Water
-_0800E5CC:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E5FC
- ldr r2, _0800E5F0 @ =gTrainers
- ldr r0, _0800E5F4 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- beq _0800E688
- cmp r0, 0x20
- bne _0800E5FC
- ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E5F0: .4byte gTrainers
-_0800E5F4: .4byte gTrainerBattleOpponent
-_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
-_0800E5FC:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800E60A
- b _0800E7BC
-_0800E60A:
- lsls r0, 2
- ldr r1, _0800E614 @ =_0800E618
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E614: .4byte _0800E618
- .align 2, 0
-_0800E618:
- .4byte _0800E63C
- .4byte _0800E688
- .4byte _0800E658
- .4byte _0800E660
- .4byte _0800E668
- .4byte _0800E670
- .4byte _0800E678
- .4byte _0800E680
- .4byte _0800E688
-_0800E63C:
- ldr r2, _0800E650 @ =gBattleTerrainTable
- ldr r0, _0800E654 @ =gBattleTerrain
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- b _0800E68A
- .align 2, 0
-_0800E650: .4byte gBattleTerrainTable
-_0800E654: .4byte gBattleTerrain
-_0800E658:
- ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E65C: .4byte gBattleTerrainTilemap_Stadium
-_0800E660:
- ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E664: .4byte gBattleTerrainTilemap_Stadium
-_0800E668:
- ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E66C: .4byte gBattleTerrainTilemap_Stadium
-_0800E670:
- ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E674: .4byte gBattleTerrainTilemap_Stadium
-_0800E678:
- ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E67C: .4byte gBattleTerrainTilemap_Stadium
-_0800E680:
- ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E684: .4byte gBattleTerrainTilemap_Stadium
-_0800E688:
- ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building
-_0800E68A:
- ldr r1, _0800E698 @ =0x0600d000
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E694: .4byte gBattleTerrainTilemap_Building
-_0800E698: .4byte 0x0600d000
-_0800E69C:
- ldr r0, _0800E6C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0800E6C4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E6AA
- b _0800E7A4
-_0800E6AA:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E6D8
- ldr r0, _0800E6C8 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E6D0
- ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
- b _0800E7A6
- .align 2, 0
-_0800E6C0: .4byte gBattleTypeFlags
-_0800E6C4: .4byte 0x00000902
-_0800E6C8: .4byte gGameVersion
-_0800E6CC: .4byte gBattleTerrainPalette_Groudon
-_0800E6D0:
- ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre
- b _0800E7A6
- .align 2, 0
-_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
-_0800E6D8:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E710
- ldr r2, _0800E6F8 @ =gTrainers
- ldr r0, _0800E6FC @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800E704
- ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader
- b _0800E7A6
- .align 2, 0
-_0800E6F8: .4byte gTrainers
-_0800E6FC: .4byte gTrainerBattleOpponent
-_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
-_0800E704:
- cmp r0, 0x20
- bne _0800E710
- ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven
- b _0800E7A6
- .align 2, 0
-_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
-_0800E710:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bhi _0800E7BC
- lsls r0, 2
- ldr r1, _0800E728 @ =_0800E72C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E728: .4byte _0800E72C
- .align 2, 0
-_0800E72C:
- .4byte _0800E750
- .4byte _0800E76C
- .4byte _0800E774
- .4byte _0800E77C
- .4byte _0800E784
- .4byte _0800E78C
- .4byte _0800E794
- .4byte _0800E79C
- .4byte _0800E7A4
-_0800E750:
- ldr r2, _0800E764 @ =gBattleTerrainTable
- ldr r0, _0800E768 @ =gBattleTerrain
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- adds r0, r2
- ldr r0, [r0]
- b _0800E7A6
- .align 2, 0
-_0800E764: .4byte gBattleTerrainTable
-_0800E768: .4byte gBattleTerrain
-_0800E76C:
- ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
- b _0800E7A6
- .align 2, 0
-_0800E770: .4byte gBattleTerrainPalette_BuildingGym
-_0800E774:
- ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma
- b _0800E7A6
- .align 2, 0
-_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
-_0800E77C:
- ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua
- b _0800E7A6
- .align 2, 0
-_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
-_0800E784:
- ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney
- b _0800E7A6
- .align 2, 0
-_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
-_0800E78C:
- ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe
- b _0800E7A6
- .align 2, 0
-_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
-_0800E794:
- ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia
- b _0800E7A6
- .align 2, 0
-_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
-_0800E79C:
- ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake
- b _0800E7A6
- .align 2, 0
-_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
-_0800E7A4:
- ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower
-_0800E7A6:
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0800E7BC
- .align 2, 0
-_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
-_0800E7B4:
- bl sub_800D74C
- b _0800E7BC
-_0800E7BA:
- movs r4, 0x1
-_0800E7BC:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_800E414
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index fc13444f1..ca3d68ddc 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -49,7 +49,6 @@ SECTIONS {
src/engine/decompress.o(.text);
asm/battle_1.o(.text);
src/rom_800D42C.o(.text);
- asm/battle_1.o(.text_800DC24);
src/battle/battle_2.o(.text);
src/battle/battle_util.o(.text);
src/battle/battle_4.o(.text);
diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c
index a1b0f5ecb..032d979b8 100644
--- a/src/rom_800D42C.c
+++ b/src/rom_800D42C.c
@@ -117,3 +117,916 @@ void PrintLinkBattleWinLossTie(void)
}
}
}
+
+
+#include "global.h"
+#include "decompress.h"
+#include "palette.h"
+#include "battle.h"
+#include "text.h"
+#include "trig.h"
+#include "sound.h"
+#include "constants/songs.h"
+#include "task.h"
+#include "link.h"
+
+
+#define gBattle gBattleStruct
+
+extern const u8 gGameVersion;
+extern u8 gUnknown_08D00000[];
+extern u16 gUnknown_08D00524[];
+extern u16 gUnknown_08D004E0[];
+extern u16 gBattleTypeFlags;
+extern struct Trainer gTrainers[];
+extern u16 gTrainerBattleOpponent;
+
+extern void *gBattleTerrainTable[][5];
+extern u8 gBattleTerrain;
+
+extern u8 gBattleTerrainTiles_Cave[];
+extern u8 gBattleTerrainTiles_Water[];
+extern u8 gBattleTerrainTiles_Building[];
+extern u8 gBattleTerrainTiles_Stadium[];
+
+extern u16 gBattleTerrainTilemap_Cave[];
+extern u16 gBattleTerrainTilemap_Water[];
+extern u16 gBattleTerrainTilemap_Building[];
+extern u16 gBattleTerrainTilemap_Stadium[];
+
+extern u16 gBattleTerrainPalette_Groudon[];
+extern u16 gBattleTerrainPalette_Kyogre[];
+extern u16 gBattleTerrainPalette_BuildingLeader[];
+extern u16 gBattleTerrainPalette_StadiumSteven[];
+extern u16 gBattleTerrainPalette_BuildingGym[];
+extern u16 gBattleTerrainPalette_StadiumMagma[];
+extern u16 gBattleTerrainPalette_StadiumAqua[];
+extern u16 gBattleTerrainPalette_StadiumSidney[];
+extern u16 gBattleTerrainPalette_StadiumPhoebe[];
+extern u16 gBattleTerrainPalette_StadiumGlacia[];
+extern u16 gBattleTerrainPalette_StadiumDrake[];
+extern u16 gBattleTerrainPalette_BattleTower[];
+
+extern u8 gBattleTerrainAnimTiles_Building[];
+extern u16 gBattleTerrainAnimTilemap_Building[];
+extern u8 gBattleTerrainAnimTiles_Cave[];
+extern u16 gBattleTerrainAnimTilemap_Cave[];
+extern u8 gBattleTerrainAnimTiles_Underwater[];
+extern u16 gBattleTerrainAnimTilemap_Underwater[];
+extern u8 gVersusFrameGfx[];
+extern u16 gVersusFrameTilemap[];
+extern u8 gUnknown_08E5DC2C[];
+extern u16 gVersusFramePal[];
+
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_Y;
+extern struct CompressedSpriteSheet gUnknown_081F95A4;
+
+extern u8 sav1_map_get_battletype(void);
+extern void sub_800D74C(void);
+
+struct Struct_081F9680 {
+ struct Window *window;
+ u16 offset;
+ u8 left;
+ u8 top;
+ u8 *field_8;
+};
+
+extern struct Struct_081F9680 gUnknown_081F9680[];
+extern void PrintLinkBattleWinLossTie(void);
+extern void sub_800DAF8(u8, u8, u8 *);
+
+extern struct SpriteTemplate gSpriteTemplate_81F9574;
+extern struct SpriteTemplate gSpriteTemplate_81F958C;
+
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG2_X;
+
+
+
+
+#ifdef NONMATCHING
+
+void sub_800DE30(u8 taskId)
+{
+ int palette;
+ int i;
+
+ switch (gTasks[taskId].data[0]) {
+
+ case 0:
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI) {
+ for (i = 0; i < 4; i++) {
+ u8 sp8 = (gLinkPlayers[i].lp_field_18 & 3);
+ struct Window *window;
+ Text_InitWindow8002E4C(
+ window = gUnknown_081F9680[sp8].window,
+ gLinkPlayers[i].name,
+ gUnknown_081F9680[sp8].offset,
+ gUnknown_081F9680[sp8].left,
+ gUnknown_081F9680[sp8].top,
+ 1);
+ Text_PrintWindow8002F44(window);
+ sub_800DAF8(taskId, sp8, gUnknown_081F9680[sp8].field_8);
+ }
+ } else {
+ int r7 = gBattle->linkPlayerIndex;
+ int r6 = gBattle->linkPlayerIndex ^ 1;
+ int r1 = r6;
+ if (gLinkPlayers[r7].lp_field_18) {
+ r6 = r7;
+ r7 = r1;
+ }
+
+ i = 4;
+ Text_InitWindow8002E4C(
+ gUnknown_081F9680[i].window,
+ gLinkPlayers[r7].name,
+ gUnknown_081F9680[i].offset,
+ gUnknown_081F9680[i].left,
+ gUnknown_081F9680[i].top,
+ 1);
+ Text_PrintWindow8002F44(gUnknown_081F9680[i].window);
+ sub_800DAF8(taskId, r7, gUnknown_081F9680[i].field_8);
+
+ i = 5;
+ Text_InitWindow8002E4C(
+ gUnknown_081F9680[i].window,
+ gLinkPlayers[r6].name,
+ gUnknown_081F9680[i].offset,
+ gUnknown_081F9680[i].left,
+ gUnknown_081F9680[i].top,
+ 1);
+ Text_PrintWindow8002F44(gUnknown_081F9680[i].window);
+ sub_800DAF8(taskId, r6, gUnknown_081F9680[i].field_8);
+ }
+ gTasks[taskId].data[0]++;
+ break;
+
+ case 1:
+ palette = AllocSpritePalette(10000);
+ gPlttBufferUnfaded[palette * 16 + 0x10f] = gPlttBufferFaded[palette * 16 + 0x10f] = 0x7fff;
+ gBattle->unk1608A = CreateSprite(&gSpriteTemplate_81F9574, 108, 80, 0);
+ gBattle->unk1608B = CreateSprite(&gSpriteTemplate_81F958C, 132, 80, 0);
+ gSprites[gBattle->unk1608A].invisible = TRUE;
+ gSprites[gBattle->unk1608B].invisible = TRUE;
+ gTasks[taskId].data[0]++;
+ break;
+
+ case 2:
+ if (gTasks[taskId].data[5]) {
+ gBattle_BG1_X = (-20) - (Sin2(gTasks[taskId].data[1]) / 32);
+ gBattle_BG2_X = (-140) - (Sin2(gTasks[taskId].data[2]) / 32);
+ gBattle_BG1_Y = -36;
+ gBattle_BG2_Y = -36;
+ } else {
+ gBattle_BG1_X = (-20) - (Sin2(gTasks[taskId].data[1]) / 32);
+ gBattle_BG1_Y = (-164) + (Cos2(gTasks[taskId].data[1]) / 32);
+ gBattle_BG2_X = (-140) - (Sin2(gTasks[taskId].data[2]) / 32);
+ gBattle_BG2_Y = (-164) + (Cos2(gTasks[taskId].data[2]) / 32);
+ }
+ if (gTasks[taskId].data[2]) {
+ gTasks[taskId].data[2] -= 2;
+ gTasks[taskId].data[1] += 2;
+ } else {
+ if (gTasks[taskId].data[5]) {
+ PrintLinkBattleWinLossTie();
+ }
+ PlaySE(SE_W231);
+ DestroyTask(taskId);
+ gSprites[gBattle->unk1608B].invisible = gSprites[gBattle->unk1608A].invisible = FALSE;
+ gSprites[gBattle->unk1608B].oam.tileNum += 0x40;
+ gSprites[gBattle->unk1608A].data[0] = 0;
+ gSprites[gBattle->unk1608B].data[0] = 1;
+ gSprites[gBattle->unk1608A].data[1] = gSprites[gBattle->unk1608A].pos1.x;
+ gSprites[gBattle->unk1608B].data[1] = gSprites[gBattle->unk1608B].pos1.x;
+ gSprites[gBattle->unk1608A].data[2] = 0;
+ gSprites[gBattle->unk1608B].data[2] = 0;
+ }
+ break;
+ }
+}
+
+#else
+
+asm_unified(
+".include \"macros.inc\"\n"
+" thumb_func_start sub_800DE30\n"
+"sub_800DE30: @ 800DE30\n"
+" push {r4-r7,lr}\n"
+" mov r7, r10\n"
+" mov r6, r9\n"
+" mov r5, r8\n"
+" push {r5-r7}\n"
+" sub sp, 0x10\n"
+" lsls r0, 24\n"
+" lsrs r0, 24\n"
+" mov r9, r0\n"
+" ldr r1, _0800DE64 @ =gTasks\n"
+" lsls r0, 2\n"
+" mov r10, r0\n"
+" add r0, r9\n"
+" lsls r0, 3\n"
+" adds r6, r0, r1\n"
+" movs r1, 0x8\n"
+" ldrsh r0, [r6, r1]\n"
+" cmp r0, 0x1\n"
+" bne _0800DE58\n"
+" b _0800DF9C\n"
+"_0800DE58:\n"
+" cmp r0, 0x1\n"
+" bgt _0800DE68\n"
+" cmp r0, 0\n"
+" beq _0800DE70\n"
+" b _0800E212\n"
+" .align 2, 0\n"
+"_0800DE64: .4byte gTasks\n"
+"_0800DE68:\n"
+" cmp r0, 0x2\n"
+" bne _0800DE6E\n"
+" b _0800E03C\n"
+"_0800DE6E:\n"
+" b _0800E212\n"
+"_0800DE70:\n"
+" ldr r0, _0800DED0 @ =gBattleTypeFlags\n"
+" ldrh r1, [r0]\n"
+" movs r0, 0x40\n"
+" ands r0, r1\n"
+" cmp r0, 0\n"
+" beq _0800DEE0\n"
+" ldr r0, _0800DED4 @ =gLinkPlayers\n"
+" ldr r2, _0800DED8 @ =gUnknown_081F9680\n"
+" mov r8, r2\n"
+" adds r7, r0, 0\n"
+" adds r7, 0x8\n"
+" movs r5, 0x3\n"
+"_0800DE88:\n"
+" ldrb r0, [r7, 0x10]\n"
+" movs r1, 0x3\n"
+" ands r1, r0\n"
+" str r1, [sp, 0x8]\n"
+" lsls r4, r1, 1\n"
+" adds r4, r1\n"
+" lsls r4, 2\n"
+" mov r2, r8\n"
+" adds r0, r4, r2\n"
+" ldr r1, [r0]\n"
+" str r1, [sp, 0xC]\n"
+" ldrh r2, [r0, 0x4]\n"
+" ldrb r3, [r0, 0x6]\n"
+" ldrb r0, [r0, 0x7]\n"
+" str r0, [sp]\n"
+" movs r0, 0x1\n"
+" str r0, [sp, 0x4]\n"
+" adds r0, r1, 0\n"
+" adds r1, r7, 0\n"
+" bl Text_InitWindow8002E4C\n"
+" ldr r0, [sp, 0xC]\n"
+" bl Text_PrintWindow8002F44\n"
+" ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8\n"
+" adds r4, r2\n"
+" ldr r2, [r4]\n"
+" mov r0, r9\n"
+" ldr r1, [sp, 0x8]\n"
+" bl sub_800DAF8\n"
+" adds r7, 0x1C\n"
+" subs r5, 0x1\n"
+" cmp r5, 0\n"
+" bge _0800DE88\n"
+" b _0800DF70\n"
+" .align 2, 0\n"
+"_0800DED0: .4byte gBattleTypeFlags\n"
+"_0800DED4: .4byte gLinkPlayers\n"
+"_0800DED8: .4byte gUnknown_081F9680\n"
+"_0800DEDC: .4byte gUnknown_081F9680 + 0x8\n"
+"_0800DEE0:\n"
+" ldr r0, _0800DF84 @ =0x02000000\n"
+" ldr r5, _0800DF88 @ =0x000160cb\n"
+" adds r0, r5\n"
+" ldrb r7, [r0]\n"
+" movs r0, 0x1\n"
+" adds r6, r7, 0\n"
+" eors r6, r0\n"
+" adds r1, r6, 0\n"
+" ldr r2, _0800DF8C @ =gLinkPlayers\n"
+" lsls r0, r7, 3\n"
+" subs r0, r7\n"
+" lsls r0, 2\n"
+" adds r0, r2\n"
+" ldrh r0, [r0, 0x18]\n"
+" cmp r0, 0\n"
+" beq _0800DF04\n"
+" adds r6, r7, 0\n"
+" adds r7, r1, 0\n"
+"_0800DF04:\n"
+" ldr r0, _0800DF90 @ =gUnknown_081F9680\n"
+" mov r8, r0\n"
+" adds r0, 0x30\n"
+" mov r1, r8\n"
+" ldr r4, [r1, 0x30]\n"
+" lsls r1, r7, 3\n"
+" subs r1, r7\n"
+" lsls r1, 2\n"
+" ldr r2, _0800DF94 @ =gLinkPlayers + 0x8\n"
+" adds r1, r2\n"
+" ldrh r2, [r0, 0x4]\n"
+" ldrb r3, [r0, 0x6]\n"
+" ldrb r0, [r0, 0x7]\n"
+" str r0, [sp]\n"
+" movs r5, 0x1\n"
+" str r5, [sp, 0x4]\n"
+" adds r0, r4, 0\n"
+" bl Text_InitWindow8002E4C\n"
+" adds r0, r4, 0\n"
+" bl Text_PrintWindow8002F44\n"
+" mov r0, r8\n"
+" ldr r2, [r0, 0x38]\n"
+" mov r0, r9\n"
+" adds r1, r7, 0\n"
+" bl sub_800DAF8\n"
+" mov r0, r8\n"
+" adds r0, 0x3C\n"
+" mov r1, r8\n"
+" ldr r4, [r1, 0x3C]\n"
+" lsls r1, r6, 3\n"
+" subs r1, r6\n"
+" lsls r1, 2\n"
+" ldr r2, _0800DF94 @ =gLinkPlayers + 0x8\n"
+" adds r1, r2\n"
+" ldrh r2, [r0, 0x4]\n"
+" ldrb r3, [r0, 0x6]\n"
+" ldrb r0, [r0, 0x7]\n"
+" str r0, [sp]\n"
+" str r5, [sp, 0x4]\n"
+" adds r0, r4, 0\n"
+" bl Text_InitWindow8002E4C\n"
+" adds r0, r4, 0\n"
+" bl Text_PrintWindow8002F44\n"
+" mov r5, r8\n"
+" ldr r2, [r5, 0x44]\n"
+" mov r0, r9\n"
+" adds r1, r6, 0\n"
+" bl sub_800DAF8\n"
+"_0800DF70:\n"
+" ldr r0, _0800DF98 @ =gTasks\n"
+" mov r1, r10\n"
+" add r1, r9\n"
+" lsls r1, 3\n"
+" adds r1, r0\n"
+" ldrh r0, [r1, 0x8]\n"
+" adds r0, 0x1\n"
+" strh r0, [r1, 0x8]\n"
+" b _0800E212\n"
+" .align 2, 0\n"
+"_0800DF84: .4byte 0x02000000\n"
+"_0800DF88: .4byte 0x000160cb\n"
+"_0800DF8C: .4byte gLinkPlayers\n"
+"_0800DF90: .4byte gUnknown_081F9680\n"
+"_0800DF94: .4byte gLinkPlayers + 0x8\n"
+"_0800DF98: .4byte gTasks\n"
+"_0800DF9C:\n"
+" ldr r0, _0800E010 @ =0x00002710\n"
+" bl AllocSpritePalette\n"
+" lsls r0, 24\n"
+" ldr r2, _0800E014 @ =gPlttBufferUnfaded\n"
+" lsrs r0, 19\n"
+" ldr r1, _0800E018 @ =0x0000021e\n"
+" adds r0, r1\n"
+" adds r2, r0, r2\n"
+" ldr r1, _0800E01C @ =gPlttBufferFaded\n"
+" adds r0, r1\n"
+" ldr r1, _0800E020 @ =0x00007fff\n"
+" strh r1, [r0]\n"
+" strh r1, [r2]\n"
+" ldr r0, _0800E024 @ =gSpriteTemplate_81F9574\n"
+" movs r1, 0x6C\n"
+" movs r2, 0x50\n"
+" movs r3, 0\n"
+" bl CreateSprite\n"
+" ldr r4, _0800E028 @ =0x02000000\n"
+" ldr r2, _0800E02C @ =0x0001608a\n"
+" adds r7, r4, r2\n"
+" strb r0, [r7]\n"
+" ldr r0, _0800E030 @ =gSpriteTemplate_81F958C\n"
+" movs r1, 0x84\n"
+" movs r2, 0x50\n"
+" movs r3, 0\n"
+" bl CreateSprite\n"
+" ldr r5, _0800E034 @ =0x0001608b\n"
+" adds r4, r5\n"
+" strb r0, [r4]\n"
+" ldr r3, _0800E038 @ =gSprites\n"
+" ldrb r1, [r7]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r3\n"
+" adds r0, 0x3E\n"
+" ldrb r1, [r0]\n"
+" movs r2, 0x4\n"
+" orrs r1, r2\n"
+" strb r1, [r0]\n"
+" ldrb r1, [r4]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r3\n"
+" adds r0, 0x3E\n"
+" ldrb r1, [r0]\n"
+" orrs r1, r2\n"
+" strb r1, [r0]\n"
+" ldrh r0, [r6, 0x8]\n"
+" adds r0, 0x1\n"
+" strh r0, [r6, 0x8]\n"
+" b _0800E212\n"
+" .align 2, 0\n"
+"_0800E010: .4byte 0x00002710\n"
+"_0800E014: .4byte gPlttBufferUnfaded\n"
+"_0800E018: .4byte 0x0000021e\n"
+"_0800E01C: .4byte gPlttBufferFaded\n"
+"_0800E020: .4byte 0x00007fff\n"
+"_0800E024: .4byte gSpriteTemplate_81F9574\n"
+"_0800E028: .4byte 0x02000000\n"
+"_0800E02C: .4byte 0x0001608a\n"
+"_0800E030: .4byte gSpriteTemplate_81F958C\n"
+"_0800E034: .4byte 0x0001608b\n"
+"_0800E038: .4byte gSprites\n"
+"_0800E03C:\n"
+" movs r1, 0x12\n"
+" ldrsh r0, [r6, r1]\n"
+" cmp r0, 0\n"
+" beq _0800E0A4\n"
+" ldr r4, _0800E090 @ =gBattle_BG1_X\n"
+" ldrh r0, [r6, 0xA]\n"
+" bl Sin2\n"
+" lsls r0, 16\n"
+" asrs r0, 16\n"
+" cmp r0, 0\n"
+" bge _0800E056\n"
+" adds r0, 0x1F\n"
+"_0800E056:\n"
+" asrs r1, r0, 5\n"
+" movs r2, 0x14\n"
+" negs r2, r2\n"
+" adds r0, r2, 0\n"
+" subs r0, r1\n"
+" strh r0, [r4]\n"
+" ldr r4, _0800E094 @ =gBattle_BG2_X\n"
+" ldrh r0, [r6, 0xC]\n"
+" bl Sin2\n"
+" lsls r0, 16\n"
+" asrs r0, 16\n"
+" cmp r0, 0\n"
+" bge _0800E074\n"
+" adds r0, 0x1F\n"
+"_0800E074:\n"
+" asrs r1, r0, 5\n"
+" movs r5, 0x8C\n"
+" negs r5, r5\n"
+" adds r0, r5, 0\n"
+" subs r0, r1\n"
+" strh r0, [r4]\n"
+" ldr r0, _0800E098 @ =gBattle_BG1_Y\n"
+" ldr r2, _0800E09C @ =0x0000ffdc\n"
+" adds r1, r2, 0\n"
+" strh r1, [r0]\n"
+" ldr r0, _0800E0A0 @ =gBattle_BG2_Y\n"
+" strh r1, [r0]\n"
+" b _0800E110\n"
+" .align 2, 0\n"
+"_0800E090: .4byte gBattle_BG1_X\n"
+"_0800E094: .4byte gBattle_BG2_X\n"
+"_0800E098: .4byte gBattle_BG1_Y\n"
+"_0800E09C: .4byte 0x0000ffdc\n"
+"_0800E0A0: .4byte gBattle_BG2_Y\n"
+"_0800E0A4:\n"
+" ldr r4, _0800E134 @ =gBattle_BG1_X\n"
+" ldrh r0, [r6, 0xA]\n"
+" bl Sin2\n"
+" lsls r0, 16\n"
+" asrs r0, 16\n"
+" cmp r0, 0\n"
+" bge _0800E0B6\n"
+" adds r0, 0x1F\n"
+"_0800E0B6:\n"
+" asrs r1, r0, 5\n"
+" movs r5, 0x14\n"
+" negs r5, r5\n"
+" adds r0, r5, 0\n"
+" subs r0, r1\n"
+" strh r0, [r4]\n"
+" ldr r4, _0800E138 @ =gBattle_BG1_Y\n"
+" ldrh r0, [r6, 0xA]\n"
+" bl Cos2\n"
+" lsls r0, 16\n"
+" asrs r0, 16\n"
+" cmp r0, 0\n"
+" bge _0800E0D4\n"
+" adds r0, 0x1F\n"
+"_0800E0D4:\n"
+" asrs r0, 5\n"
+" subs r0, 0xA4\n"
+" strh r0, [r4]\n"
+" ldr r4, _0800E13C @ =gBattle_BG2_X\n"
+" ldrh r0, [r6, 0xC]\n"
+" bl Sin2\n"
+" lsls r0, 16\n"
+" asrs r0, 16\n"
+" cmp r0, 0\n"
+" bge _0800E0EC\n"
+" adds r0, 0x1F\n"
+"_0800E0EC:\n"
+" asrs r1, r0, 5\n"
+" movs r2, 0x8C\n"
+" negs r2, r2\n"
+" adds r0, r2, 0\n"
+" subs r0, r1\n"
+" strh r0, [r4]\n"
+" ldr r4, _0800E140 @ =gBattle_BG2_Y\n"
+" ldrh r0, [r6, 0xC]\n"
+" bl Cos2\n"
+" lsls r0, 16\n"
+" asrs r0, 16\n"
+" cmp r0, 0\n"
+" bge _0800E10A\n"
+" adds r0, 0x1F\n"
+"_0800E10A:\n"
+" asrs r0, 5\n"
+" subs r0, 0xA4\n"
+" strh r0, [r4]\n"
+"_0800E110:\n"
+" ldr r1, _0800E144 @ =gTasks\n"
+" mov r5, r9\n"
+" lsls r0, r5, 2\n"
+" add r0, r9\n"
+" lsls r0, 3\n"
+" adds r1, r0, r1\n"
+" ldrh r0, [r1, 0xC]\n"
+" movs r2, 0xC\n"
+" ldrsh r7, [r1, r2]\n"
+" cmp r7, 0\n"
+" beq _0800E148\n"
+" subs r0, 0x2\n"
+" strh r0, [r1, 0xC]\n"
+" ldrh r0, [r1, 0xA]\n"
+" adds r0, 0x2\n"
+" strh r0, [r1, 0xA]\n"
+" b _0800E212\n"
+" .align 2, 0\n"
+"_0800E134: .4byte gBattle_BG1_X\n"
+"_0800E138: .4byte gBattle_BG1_Y\n"
+"_0800E13C: .4byte gBattle_BG2_X\n"
+"_0800E140: .4byte gBattle_BG2_Y\n"
+"_0800E144: .4byte gTasks\n"
+"_0800E148:\n"
+" movs r5, 0x12\n"
+" ldrsh r0, [r1, r5]\n"
+" cmp r0, 0\n"
+" beq _0800E154\n"
+" bl PrintLinkBattleWinLossTie\n"
+"_0800E154:\n"
+" movs r0, 0x78\n"
+" bl PlaySE\n"
+" mov r0, r9\n"
+" bl DestroyTask\n"
+" ldr r4, _0800E224 @ =gSprites\n"
+" ldr r0, _0800E228 @ =0x02000000\n"
+" mov r8, r0\n"
+" ldr r1, _0800E22C @ =0x0001608a\n"
+" add r1, r8\n"
+" mov r9, r1\n"
+" ldrb r0, [r1]\n"
+" lsls r1, r0, 4\n"
+" adds r1, r0\n"
+" lsls r1, 2\n"
+" adds r1, r4\n"
+" adds r1, 0x3E\n"
+" ldrb r3, [r1]\n"
+" movs r2, 0x5\n"
+" negs r2, r2\n"
+" adds r0, r2, 0\n"
+" ands r0, r3\n"
+" strb r0, [r1]\n"
+" ldr r5, _0800E230 @ =0x0001608b\n"
+" add r8, r5\n"
+" mov r0, r8\n"
+" ldrb r1, [r0]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" adds r0, 0x3E\n"
+" ldrb r1, [r0]\n"
+" ands r2, r1\n"
+" strb r2, [r0]\n"
+" mov r1, r8\n"
+" ldrb r0, [r1]\n"
+" lsls r2, r0, 4\n"
+" adds r2, r0\n"
+" lsls r2, 2\n"
+" adds r2, r4\n"
+" ldrh r3, [r2, 0x4]\n"
+" lsls r1, r3, 22\n"
+" lsrs r1, 22\n"
+" adds r1, 0x40\n"
+" ldr r5, _0800E234 @ =0x000003ff\n"
+" adds r0, r5, 0\n"
+" ands r1, r0\n"
+" ldr r0, _0800E238 @ =0xfffffc00\n"
+" ands r0, r3\n"
+" orrs r0, r1\n"
+" strh r0, [r2, 0x4]\n"
+" mov r0, r9\n"
+" ldrb r1, [r0]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" strh r7, [r0, 0x2E]\n"
+" mov r2, r8\n"
+" ldrb r1, [r2]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" movs r1, 0x1\n"
+" strh r1, [r0, 0x2E]\n"
+" mov r5, r9\n"
+" ldrb r1, [r5]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" ldrh r1, [r0, 0x20]\n"
+" strh r1, [r0, 0x30]\n"
+" ldrb r1, [r2]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" ldrh r1, [r0, 0x20]\n"
+" strh r1, [r0, 0x30]\n"
+" ldrb r1, [r5]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" strh r7, [r0, 0x32]\n"
+" ldrb r1, [r2]\n"
+" lsls r0, r1, 4\n"
+" adds r0, r1\n"
+" lsls r0, 2\n"
+" adds r0, r4\n"
+" strh r7, [r0, 0x32]\n"
+"_0800E212:\n"
+" add sp, 0x10\n"
+" pop {r3-r5}\n"
+" mov r8, r3\n"
+" mov r9, r4\n"
+" mov r10, r5\n"
+" pop {r4-r7}\n"
+" pop {r0}\n"
+" bx r0\n"
+" .align 2, 0\n"
+"_0800E224: .4byte gSprites\n"
+"_0800E228: .4byte 0x02000000\n"
+"_0800E22C: .4byte 0x0001608a\n"
+"_0800E230: .4byte 0x0001608b\n"
+"_0800E234: .4byte 0x000003ff\n"
+"_0800E238: .4byte 0xfffffc00\n"
+" thumb_func_end sub_800DE30\n"
+);
+
+#endif // NONMATCHING
+
+
+void sub_800E23C(void) {
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK) {
+ LZDecompressVram(gVersusFrameGfx, (void *)0x6004000);
+ LZDecompressVram(gVersusFrameTilemap, (void *)0x600e000);
+ LZDecompressVram(gVersusFrameTilemap, (void *)0x600f000);
+ LZDecompressVram(gUnknown_08E5DC2C, (void *)0x6010000);
+ LoadCompressedPalette(gVersusFramePal, 0x60, 0x20);
+ REG_BG1CNT = 0x5c04;
+ REG_WININ = 0x36;
+ REG_WINOUT = 0x36;
+ gBattle_BG1_Y = 0xff5c;
+ gBattle_BG2_Y = 0xff5c;
+ LoadCompressedObjectPic(&gUnknown_081F95A4);
+ return;
+ } else if (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) {
+ LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000);
+ return;
+ } else if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
+ if (gGameVersion == VERSION_RUBY) {
+ LZDecompressVram(gBattleTerrainAnimTiles_Cave, (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainAnimTilemap_Cave, (void *)0x600e000);
+ return;
+ } else {
+ LZDecompressVram(gBattleTerrainAnimTiles_Underwater, (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainAnimTilemap_Underwater, (void *)0x600e000);
+ return;
+ }
+ } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
+ if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
+ LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000);
+ return;
+ } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
+ LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000);
+ return;
+ }
+ }
+ if (sav1_map_get_battletype() == 0) {
+ LZDecompressVram(gBattleTerrainTable[gBattleTerrain][2], (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainTable[gBattleTerrain][3], (void *)0x600e000);
+ return;
+ }
+ LZDecompressVram(gBattleTerrainAnimTiles_Building, (void *)0x6004000);
+ LZDecompressVram(gBattleTerrainAnimTilemap_Building, (void *)0x600e000);
+}
+
+int sub_800E414(u8 a1) {
+ int ret = 0;
+ switch (a1) {
+ case 0:
+ LZDecompressVram(&gUnknown_08D00000, (void *)0x6000000);
+ break;
+ case 1:
+ CpuCopy16(gUnknown_08D00524, (void *)0x600c000, 0x1000);
+ break;
+ case 2:
+ LoadCompressedPalette(gUnknown_08D004E0, 0, 0x40);
+ break;
+ case 3: // tiles
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) {
+ if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
+ if (gGameVersion == VERSION_RUBY) {
+ LZDecompressVram(gBattleTerrainTiles_Cave, (void *)0x6008000);
+ break;
+ } else {
+ LZDecompressVram(gBattleTerrainTiles_Water, (void *)0x6008000);
+ break;
+ }
+ } else {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
+ if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
+ LZDecompressVram(gBattleTerrainTiles_Building, (void *)0x6008000);
+ break;
+ } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ }
+ }
+ switch (sav1_map_get_battletype()) {
+ case 0:
+ LZDecompressVram(gBattleTerrainTable[gBattleTerrain][0], (void *)0x6008000);
+ break;
+ case 2:
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ case 3:
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ case 4:
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ case 5:
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ case 6:
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ case 7:
+ LZDecompressVram(gBattleTerrainTiles_Stadium, (void *)0x6008000);
+ break;
+ case 1:
+ case 8:
+ LZDecompressVram(gBattleTerrainTiles_Building, (void *)0x6008000);
+ break;
+ }
+ break;
+ }
+ } else {
+ LZDecompressVram(gBattleTerrainTiles_Building, (void *)0x6008000);
+ break;
+ }
+ case 4: // tilemap
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) {
+ if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
+ if (gGameVersion == 2) {
+ LZDecompressVram(gBattleTerrainTilemap_Cave, (void *)0x600d000);
+ break;
+ } else {
+ LZDecompressVram(gBattleTerrainTilemap_Water, (void *)0x600d000);
+ break;
+ }
+ } else {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
+ if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
+ LZDecompressVram(gBattleTerrainTilemap_Building, (void *)0x600d000);
+ break;
+ } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ }
+ }
+ switch (sav1_map_get_battletype()) {
+ case 0:
+ LZDecompressVram(gBattleTerrainTable[gBattleTerrain][1], (void *)0x600d000);
+ break;
+ case 2:
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ case 3:
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ case 4:
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ case 5:
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ case 6:
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ case 7:
+ LZDecompressVram(gBattleTerrainTilemap_Stadium, (void *)0x600d000);
+ break;
+ case 1:
+ case 8:
+ LZDecompressVram(gBattleTerrainTilemap_Building, (void *)0x600d000);
+ break;
+ }
+ break;
+ }
+ } else {
+ LZDecompressVram(gBattleTerrainTilemap_Building, (void *)0x600d000);
+ break;
+ }
+ case 5: // palette
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK))) {
+ if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) {
+ if (gGameVersion == 2) {
+ LoadCompressedPalette(gBattleTerrainPalette_Groudon, 0x20, 0x60);
+ break;
+ } else {
+ LoadCompressedPalette(gBattleTerrainPalette_Kyogre, 0x20, 0x60);
+ break;
+ }
+ } else {
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) {
+ if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x19) {
+ LoadCompressedPalette(gBattleTerrainPalette_BuildingLeader, 0x20, 0x60);
+ break;
+ } else if (gTrainers[gTrainerBattleOpponent].trainerClass == 0x20) {
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumSteven, 0x20, 0x60);
+ break;
+ }
+ }
+ switch (sav1_map_get_battletype()) {
+ case 0:
+ LoadCompressedPalette(gBattleTerrainTable[gBattleTerrain][4], 0x20, 0x60);
+ break;
+ case 1:
+ LoadCompressedPalette(gBattleTerrainPalette_BuildingGym, 0x20, 0x60);
+ break;
+ case 2:
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumMagma, 0x20, 0x60);
+ break;
+ case 3:
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumAqua, 0x20, 0x60);
+ break;
+ case 4:
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumSidney, 0x20, 0x60);
+ break;
+ case 5:
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumPhoebe, 0x20, 0x60);
+ break;
+ case 6:
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumGlacia, 0x20, 0x60);
+ break;
+ case 7:
+ LoadCompressedPalette(gBattleTerrainPalette_StadiumDrake, 0x20, 0x60);
+ break;
+ case 8:
+ LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
+ break;
+ }
+ break;
+ }
+ } else {
+ LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
+ break;
+ }
+ case 6:
+ sub_800D74C();
+ break;
+ default:
+ ret = 1;
+ }
+ return ret;
+}