mirror of
https://github.com/pret/pokefirered.git
synced 2026-06-02 22:04:27 -05:00
finished decompress (1 failed attempt)
This commit is contained in:
parent
fd543fd799
commit
f52d439a85
|
|
@ -1197,7 +1197,7 @@ sub_800FAE0: @ 800FAE0
|
|||
ldr r0, _0800FB8C @ =gBattle_BG2_Y
|
||||
strh r1, [r0]
|
||||
ldr r0, _0800FB90 @ =gUnknown_8248318
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0800FC26
|
||||
.align 2, 0
|
||||
_0800FB64: .4byte gBattleTypeFlags
|
||||
|
|
|
|||
|
|
@ -483,11 +483,11 @@ ScriptCmd_loadspritegfx: @ 8072868
|
|||
lsls r5, r4, 3
|
||||
ldr r0, _080728B8 @ =gUnknown_8399388
|
||||
adds r0, r5, r0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080728BC @ =gUnknown_8399C90
|
||||
adds r5, r0
|
||||
adds r0, r5, 0
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
ldr r0, [r6]
|
||||
adds r0, 0x2
|
||||
str r0, [r6]
|
||||
|
|
|
|||
|
|
@ -3264,10 +3264,10 @@ sub_80F05B4: @ 80F05B4
|
|||
cmp r0, r1
|
||||
bne _080F05DA
|
||||
adds r0, r4, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080F05E8 @ =gUnknown_840BFA8
|
||||
adds r0, r5, r0
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
_080F05DA:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
|
|
@ -5514,9 +5514,9 @@ _080F177E:
|
|||
cmp r0, r7
|
||||
bne _080F179E
|
||||
ldr r0, _080F17E8 @ =gUnknown_83AD350
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080F17EC @ =gUnknown_83ADC58
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
_080F179E:
|
||||
ldr r5, _080F17F0 @ =sub_80F181C
|
||||
adds r0, r5, 0
|
||||
|
|
@ -5941,9 +5941,9 @@ sub_80F1AE0: @ 80F1AE0
|
|||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _080F1B08 @ =gUnknown_83AD470
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080F1B0C @ =gUnknown_83ADD78
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
ldr r0, _080F1B10 @ =0x0000281d
|
||||
bl IndexOfSpritePaletteTag
|
||||
adds r0, r4, 0
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ sub_8078178: @ 8078178
|
|||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
ldr r0, _08078224 @ =gUnknown_83AD048
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _08078228 @ =gUnknown_83AD950
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
ldr r1, _0807822C @ =gTasks
|
||||
mov r2, r8
|
||||
lsls r0, r2, 2
|
||||
|
|
|
|||
|
|
@ -975,7 +975,7 @@ _08034548:
|
|||
ldr r1, [r1]
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
_08034562:
|
||||
mov r2, r8
|
||||
lsls r1, r2, 4
|
||||
|
|
@ -1184,7 +1184,7 @@ sub_80346C4: @ 80346C4
|
|||
ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable
|
||||
adds r5, r0
|
||||
adds r0, r5, 0
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
add sp, 0x8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
|
|
@ -1262,9 +1262,9 @@ sub_80347A8: @ 80347A8
|
|||
cmp r0, 0
|
||||
bne _080347E0
|
||||
ldr r0, _080347D8 @ =gUnknown_8260208
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080347DC @ =gUnknown_8260210
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
movs r5, 0x2
|
||||
b _08034802
|
||||
.align 2, 0
|
||||
|
|
@ -1274,16 +1274,16 @@ _080347DC: .4byte gUnknown_8260210
|
|||
_080347E0:
|
||||
ldr r4, _08034828 @ =gUnknown_8260218
|
||||
adds r0, r4, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
adds r4, 0x8
|
||||
adds r0, r4, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r4, _0803482C @ =gUnknown_8260228
|
||||
adds r0, r4, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
adds r4, 0x8
|
||||
adds r0, r4, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
movs r5, 0x4
|
||||
_08034802:
|
||||
movs r4, 0
|
||||
|
|
@ -1296,7 +1296,7 @@ _0803480C:
|
|||
ldrb r0, [r0]
|
||||
lsls r0, 3
|
||||
adds r0, r6
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
|
|
@ -1349,14 +1349,14 @@ _08034864:
|
|||
cmp r0, 0
|
||||
beq _08034890
|
||||
ldr r0, _0803488C @ =gUnknown_8260238
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_08034888: .4byte gBattleTypeFlags
|
||||
_0803488C: .4byte gUnknown_8260238
|
||||
_08034890:
|
||||
ldr r0, _08034898 @ =gUnknown_8260208
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_08034898: .4byte gUnknown_8260208
|
||||
|
|
@ -1364,7 +1364,7 @@ _0803489C:
|
|||
cmp r4, 0x3
|
||||
bne _080348AC
|
||||
ldr r0, _080348A8 @ =gUnknown_8260210
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_080348A8: .4byte gUnknown_8260210
|
||||
|
|
@ -1388,7 +1388,7 @@ _080348CC:
|
|||
cmp r4, 0x2
|
||||
bne _080348DC
|
||||
ldr r0, _080348D8 @ =gUnknown_8260218
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_080348D8: .4byte gUnknown_8260218
|
||||
|
|
@ -1396,7 +1396,7 @@ _080348DC:
|
|||
cmp r4, 0x3
|
||||
bne _080348EC
|
||||
ldr r0, _080348E8 @ =gUnknown_8260220
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_080348E8: .4byte gUnknown_8260220
|
||||
|
|
@ -1404,7 +1404,7 @@ _080348EC:
|
|||
cmp r4, 0x4
|
||||
bne _080348FC
|
||||
ldr r0, _080348F8 @ =gUnknown_8260228
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_080348F8: .4byte gUnknown_8260228
|
||||
|
|
@ -1412,7 +1412,7 @@ _080348FC:
|
|||
cmp r4, 0x5
|
||||
bne _0803490C
|
||||
ldr r0, _08034908 @ =gUnknown_8260230
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_08034908: .4byte gUnknown_8260230
|
||||
|
|
@ -1449,7 +1449,7 @@ _08034944:
|
|||
lsls r0, 3
|
||||
ldr r1, _08034954 @ =gUnknown_8260240
|
||||
adds r0, r1
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
b _0803495A
|
||||
.align 2, 0
|
||||
_08034950: .4byte gUnknown_2023BD6
|
||||
|
|
@ -2911,7 +2911,7 @@ LoadAndCreateEnemyShadowSprites: @ 8035538
|
|||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r0, _08035614 @ =gUnknown_8250A0C
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
movs r0, 0x1
|
||||
bl GetBattlerAtPosition
|
||||
adds r5, r0, 0
|
||||
|
|
|
|||
|
|
@ -2381,7 +2381,7 @@ _08048DC4:
|
|||
bge _08048DB0
|
||||
mov r6, r10
|
||||
adds r0, r4, r6
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _08048E4C @ =gUnknown_826049C
|
||||
adds r0, r4, r0
|
||||
bl LoadSpriteSheet
|
||||
|
|
|
|||
|
|
@ -2845,7 +2845,7 @@ sub_814ECE0: @ 814ECE0
|
|||
_0814ECF6:
|
||||
lsls r0, r5, 3
|
||||
adds r0, r4
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
|
|
|
|||
|
|
@ -498,7 +498,7 @@ _0813D170: .4byte gSaveBlock2Ptr
|
|||
_0813D174: .4byte gUnknown_8E85BF4
|
||||
_0813D178:
|
||||
ldr r0, _0813D18C @ =gUnknown_84644A8
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
_0813D17E:
|
||||
ldr r1, [r5]
|
||||
adds r1, r6
|
||||
|
|
@ -510,7 +510,7 @@ _0813D17E:
|
|||
_0813D18C: .4byte gUnknown_84644A8
|
||||
_0813D190:
|
||||
ldr r0, _0813D1A8 @ =gUnknown_84644B0
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
ldr r0, _0813D1AC @ =gUnknown_203F36C
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0813D1B0 @ =0x0000080c
|
||||
|
|
|
|||
|
|
@ -1987,7 +1987,7 @@ _080F49D8:
|
|||
ands r1, r3
|
||||
orrs r1, r2
|
||||
str r1, [r0, 0x4]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4A1C @ =gUnknown_8410E10
|
||||
b _080F4A36
|
||||
.align 2, 0
|
||||
|
|
@ -2005,7 +2005,7 @@ _080F4A20:
|
|||
strh r1, [r0, 0x4]
|
||||
ldrh r1, [r6, 0x2]
|
||||
strh r1, [r0, 0x6]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4A48 @ =gUnknown_8411BF8
|
||||
_080F4A36:
|
||||
movs r1, 0xF8
|
||||
|
|
@ -2025,7 +2025,7 @@ _080F4A4C:
|
|||
strh r1, [r0, 0x4]
|
||||
ldrh r1, [r6, 0x2]
|
||||
strh r1, [r0, 0x6]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4ADC @ =gUnknown_84129A0
|
||||
movs r1, 0xF8
|
||||
lsls r1, 1
|
||||
|
|
@ -2107,7 +2107,7 @@ _080F4AFE:
|
|||
strh r1, [r0, 0x4]
|
||||
ldrh r1, [r6, 0x8]
|
||||
strh r1, [r0, 0x6]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4B1C @ =gUnknown_8413318
|
||||
b _080F4B8A
|
||||
.align 2, 0
|
||||
|
|
@ -2122,7 +2122,7 @@ _080F4B20:
|
|||
strh r1, [r0, 0x4]
|
||||
ldrh r1, [r6, 0x8]
|
||||
strh r1, [r0, 0x6]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4B4C @ =gUnknown_8413318
|
||||
movs r1, 0xF0
|
||||
lsls r1, 1
|
||||
|
|
@ -2144,7 +2144,7 @@ _080F4B54:
|
|||
strh r1, [r0, 0x4]
|
||||
ldrh r1, [r6, 0x8]
|
||||
strh r1, [r0, 0x6]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4B70 @ =gUnknown_8413854
|
||||
b _080F4B8A
|
||||
.align 2, 0
|
||||
|
|
@ -2159,7 +2159,7 @@ _080F4B74:
|
|||
strh r1, [r0, 0x4]
|
||||
ldrh r1, [r6, 0x8]
|
||||
strh r1, [r0, 0x6]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F4BF0 @ =gUnknown_8413D98
|
||||
_080F4B8A:
|
||||
movs r1, 0xF0
|
||||
|
|
|
|||
887
asm/decompress.s
887
asm/decompress.s
|
|
@ -1,887 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start LZDecompressWram
|
||||
LZDecompressWram: @ 800EBB4
|
||||
push {lr}
|
||||
bl LZ77UnCompWram
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end LZDecompressWram
|
||||
|
||||
thumb_func_start LZDecompressVram
|
||||
LZDecompressVram: @ 800EBC0
|
||||
push {lr}
|
||||
bl LZ77UnCompVram
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end LZDecompressVram
|
||||
|
||||
thumb_func_start LoadCompressedObjectPic
|
||||
LoadCompressedObjectPic: @ 800EBCC
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4]
|
||||
ldr r5, _0800EBFC @ =gDecompressionBuffer
|
||||
adds r1, r5, 0
|
||||
bl LZ77UnCompWram
|
||||
str r5, [sp]
|
||||
ldrh r1, [r4, 0x6]
|
||||
lsls r1, 16
|
||||
ldrh r0, [r4, 0x4]
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpriteSheet
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0800EBFC: .4byte gDecompressionBuffer
|
||||
thumb_func_end LoadCompressedObjectPic
|
||||
|
||||
thumb_func_start LoadCompressedObjectPicOverrideBuffer
|
||||
LoadCompressedObjectPicOverrideBuffer: @ 800EC00
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
ldr r0, [r4]
|
||||
bl LZ77UnCompWram
|
||||
str r5, [sp]
|
||||
ldrh r1, [r4, 0x6]
|
||||
lsls r1, 16
|
||||
ldrh r0, [r4, 0x4]
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpriteSheet
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end LoadCompressedObjectPicOverrideBuffer
|
||||
|
||||
thumb_func_start LoadCompressedObjectPalette
|
||||
LoadCompressedObjectPalette: @ 800EC28
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r5, r0, 0
|
||||
ldr r0, [r5]
|
||||
ldr r4, _0800EC54 @ =gDecompressionBuffer
|
||||
adds r1, r4, 0
|
||||
bl LZ77UnCompWram
|
||||
str r4, [sp]
|
||||
ldrh r2, [r5, 0x4]
|
||||
ldr r1, _0800EC58 @ =0xffff0000
|
||||
ldr r0, [sp, 0x4]
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpritePalette
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800EC54: .4byte gDecompressionBuffer
|
||||
_0800EC58: .4byte 0xffff0000
|
||||
thumb_func_end LoadCompressedObjectPalette
|
||||
|
||||
thumb_func_start LoadCompressedObjectPaletteOverrideBuffer
|
||||
LoadCompressedObjectPaletteOverrideBuffer: @ 800EC5C
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r5, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r0, [r5]
|
||||
bl LZ77UnCompWram
|
||||
str r4, [sp]
|
||||
ldrh r2, [r5, 0x4]
|
||||
ldr r1, _0800EC88 @ =0xffff0000
|
||||
ldr r0, [sp, 0x4]
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpritePalette
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800EC88: .4byte 0xffff0000
|
||||
thumb_func_end LoadCompressedObjectPaletteOverrideBuffer
|
||||
|
||||
thumb_func_start DecompressPicFromTable
|
||||
DecompressPicFromTable: @ 800EC8C
|
||||
push {r4,r5,lr}
|
||||
adds r3, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r5, r2, 0
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r5, r0
|
||||
ble _0800ECAC
|
||||
ldr r0, _0800ECA8 @ =gMonFrontPicTable
|
||||
ldr r0, [r0]
|
||||
bl LZ77UnCompWram
|
||||
b _0800ECB4
|
||||
.align 2, 0
|
||||
_0800ECA8: .4byte gMonFrontPicTable
|
||||
_0800ECAC:
|
||||
ldr r0, [r3]
|
||||
adds r1, r4, 0
|
||||
bl LZ77UnCompWram
|
||||
_0800ECB4:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_800EDAC
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end DecompressPicFromTable
|
||||
|
||||
thumb_func_start sub_800ECC4
|
||||
sub_800ECC4: @ 800ECC4
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
lsls r0, r2, 3
|
||||
ldr r1, _0800ECEC @ =gMonFrontPicTable
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
cmp r4, r0
|
||||
bne _0800ECDA
|
||||
movs r1, 0x1
|
||||
_0800ECDA:
|
||||
str r1, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl LoadSpecialPokePic
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800ECEC: .4byte gMonFrontPicTable
|
||||
thumb_func_end sub_800ECC4
|
||||
|
||||
thumb_func_start LoadSpecialPokePic
|
||||
LoadSpecialPokePic: @ 800ECF0
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r7, r2, 0
|
||||
adds r5, r3, 0
|
||||
ldr r0, [sp, 0x18]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
cmp r7, 0xC9
|
||||
bne _0800ED6C
|
||||
movs r0, 0xC0
|
||||
lsls r0, 18
|
||||
ands r0, r5
|
||||
lsrs r0, 18
|
||||
movs r1, 0xC0
|
||||
lsls r1, 10
|
||||
ands r1, r5
|
||||
lsrs r1, 12
|
||||
orrs r0, r1
|
||||
movs r1, 0xC0
|
||||
lsls r1, 2
|
||||
ands r1, r5
|
||||
lsrs r1, 6
|
||||
orrs r0, r1
|
||||
movs r1, 0x3
|
||||
ands r1, r5
|
||||
orrs r0, r1
|
||||
movs r1, 0x1C
|
||||
bl __umodsi3
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
cmp r1, 0
|
||||
bne _0800ED3E
|
||||
movs r1, 0xC9
|
||||
b _0800ED48
|
||||
_0800ED3E:
|
||||
movs r2, 0xCE
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
_0800ED48:
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
bne _0800ED5C
|
||||
ldr r0, _0800ED58 @ =gMonBackPicTable
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
b _0800ED78
|
||||
.align 2, 0
|
||||
_0800ED58: .4byte gMonBackPicTable
|
||||
_0800ED5C:
|
||||
ldr r0, _0800ED68 @ =gMonFrontPicTable
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
b _0800ED78
|
||||
.align 2, 0
|
||||
_0800ED68: .4byte gMonFrontPicTable
|
||||
_0800ED6C:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r7, r0
|
||||
ble _0800ED84
|
||||
ldr r0, _0800ED80 @ =gMonFrontPicTable
|
||||
ldr r0, [r0]
|
||||
_0800ED78:
|
||||
adds r1, r4, 0
|
||||
bl LZ77UnCompWram
|
||||
b _0800ED8C
|
||||
.align 2, 0
|
||||
_0800ED80: .4byte gMonFrontPicTable
|
||||
_0800ED84:
|
||||
ldr r0, [r6]
|
||||
adds r1, r4, 0
|
||||
bl LZ77UnCompWram
|
||||
_0800ED8C:
|
||||
adds r0, r4, 0
|
||||
adds r1, r7, 0
|
||||
bl sub_800EDAC
|
||||
lsls r0, r7, 16
|
||||
lsrs r0, 16
|
||||
adds r1, r5, 0
|
||||
adds r2, r4, 0
|
||||
mov r3, r8
|
||||
bl DrawSpindaSpots
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end LoadSpecialPokePic
|
||||
|
||||
thumb_func_start sub_800EDAC
|
||||
sub_800EDAC: @ 800EDAC
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
movs r0, 0xCD
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bne _0800EDC6
|
||||
movs r1, 0x80
|
||||
lsls r1, 4
|
||||
adds r0, r3, r1
|
||||
ldr r2, _0800EDCC @ =0x04000200
|
||||
adds r1, r3, 0
|
||||
bl CpuSet
|
||||
_0800EDC6:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800EDCC: .4byte 0x04000200
|
||||
thumb_func_end sub_800EDAC
|
||||
|
||||
thumb_func_start sub_800EDD0
|
||||
sub_800EDD0: @ 800EDD0
|
||||
push {lr}
|
||||
ldr r0, [r0]
|
||||
bl LZ77UnCompWram
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_800EDD0
|
||||
|
||||
thumb_func_start sub_800EDDC
|
||||
sub_800EDDC: @ 800EDDC
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x24
|
||||
mov r9, r0
|
||||
str r1, [sp]
|
||||
str r2, [sp, 0x4]
|
||||
adds r5, r3, 0
|
||||
movs r0, 0x1
|
||||
mov r1, r9
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0800EDFC
|
||||
b _0800EF94
|
||||
_0800EDFC:
|
||||
asrs r0, r1, 1
|
||||
adds r0, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0
|
||||
ldr r2, [sp]
|
||||
cmp r0, r2
|
||||
blt _0800EE10
|
||||
b _0800F024
|
||||
_0800EE10:
|
||||
movs r4, 0x8
|
||||
subs r1, r4, r1
|
||||
str r1, [sp, 0x10]
|
||||
_0800EE16:
|
||||
movs r7, 0
|
||||
adds r0, 0x1
|
||||
str r0, [sp, 0x14]
|
||||
ldr r0, [sp, 0x10]
|
||||
cmp r7, r0
|
||||
bge _0800EE92
|
||||
ldr r1, [sp, 0x8]
|
||||
lsls r1, 8
|
||||
str r1, [sp, 0x18]
|
||||
movs r2, 0
|
||||
mov r10, r2
|
||||
mov r0, r9
|
||||
movs r4, 0x8
|
||||
subs r0, r4, r0
|
||||
str r0, [sp, 0xC]
|
||||
_0800EE34:
|
||||
movs r3, 0
|
||||
asrs r0, r7, 1
|
||||
adds r1, r7, 0
|
||||
movs r2, 0x1
|
||||
ands r1, r2
|
||||
str r1, [sp, 0x20]
|
||||
lsls r0, 8
|
||||
mov r8, r0
|
||||
mov r12, r5
|
||||
_0800EE46:
|
||||
lsls r1, r3, 5
|
||||
ldr r4, [sp, 0x18]
|
||||
adds r0, r5, r4
|
||||
adds r0, r1
|
||||
mov r1, r8
|
||||
adds r2, r0, r1
|
||||
mov r1, r12
|
||||
add r1, r8
|
||||
movs r6, 0xF
|
||||
_0800EE58:
|
||||
ldr r4, [sp, 0x20]
|
||||
cmp r4, 0
|
||||
bne _0800EE68
|
||||
strb r4, [r1]
|
||||
add r4, sp, 0x20
|
||||
ldrb r4, [r4]
|
||||
strb r4, [r2, 0x10]
|
||||
b _0800EE76
|
||||
_0800EE68:
|
||||
mov r0, r10
|
||||
strb r0, [r1, 0x10]
|
||||
movs r4, 0x80
|
||||
lsls r4, 1
|
||||
adds r4, r2, r4
|
||||
str r4, [sp, 0x1C]
|
||||
strb r0, [r4]
|
||||
_0800EE76:
|
||||
adds r2, 0x1
|
||||
adds r1, 0x1
|
||||
subs r6, 0x1
|
||||
cmp r6, 0
|
||||
bge _0800EE58
|
||||
movs r0, 0x20
|
||||
add r12, r0
|
||||
adds r3, 0x1
|
||||
cmp r3, 0x7
|
||||
ble _0800EE46
|
||||
adds r7, 0x1
|
||||
ldr r1, [sp, 0xC]
|
||||
cmp r7, r1
|
||||
blt _0800EE34
|
||||
_0800EE92:
|
||||
movs r7, 0
|
||||
movs r2, 0
|
||||
_0800EE96:
|
||||
movs r6, 0
|
||||
adds r4, r7, 0x1
|
||||
mov r8, r4
|
||||
lsls r4, r7, 5
|
||||
_0800EE9E:
|
||||
adds r0, r6, 0x1
|
||||
mov r10, r0
|
||||
lsls r1, r6, 8
|
||||
adds r0, r1, 0
|
||||
adds r0, 0xC0
|
||||
adds r0, r5, r0
|
||||
adds r0, r4
|
||||
adds r1, r5, r1
|
||||
adds r1, r4
|
||||
movs r3, 0x1F
|
||||
_0800EEB2:
|
||||
strb r2, [r1]
|
||||
strb r2, [r0]
|
||||
adds r0, 0x1
|
||||
adds r1, 0x1
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0800EEB2
|
||||
mov r6, r10
|
||||
cmp r6, 0x7
|
||||
ble _0800EE9E
|
||||
mov r7, r8
|
||||
cmp r7, 0x1
|
||||
ble _0800EE96
|
||||
mov r1, r9
|
||||
cmp r1, 0x5
|
||||
bne _0800EED8
|
||||
movs r2, 0x90
|
||||
lsls r2, 1
|
||||
adds r5, r2
|
||||
_0800EED8:
|
||||
movs r7, 0
|
||||
cmp r7, r9
|
||||
bge _0800EF6E
|
||||
_0800EEDE:
|
||||
movs r3, 0
|
||||
adds r7, 0x1
|
||||
mov r8, r7
|
||||
cmp r3, r9
|
||||
bge _0800EF4E
|
||||
_0800EEE8:
|
||||
adds r3, 0x1
|
||||
mov r10, r3
|
||||
ldr r4, [sp, 0x4]
|
||||
adds r4, 0x20
|
||||
adds r7, r5, 0
|
||||
adds r7, 0x20
|
||||
movs r0, 0x12
|
||||
adds r0, r5
|
||||
mov r12, r0
|
||||
ldr r2, [sp, 0x4]
|
||||
adds r3, r5, 0
|
||||
movs r6, 0x3
|
||||
_0800EF00:
|
||||
ldrb r0, [r2]
|
||||
mov r1, r12
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r2, 0x1]
|
||||
strb r0, [r1, 0x1]
|
||||
ldrb r0, [r2, 0x2]
|
||||
strb r0, [r1, 0x1E]
|
||||
ldrb r0, [r2, 0x3]
|
||||
strb r0, [r1, 0x1F]
|
||||
movs r0, 0x81
|
||||
lsls r0, 1
|
||||
adds r1, r3, r0
|
||||
ldrb r0, [r2, 0x10]
|
||||
strb r0, [r1]
|
||||
ldr r0, _0800EF58 @ =0x00000103
|
||||
adds r1, r3, r0
|
||||
ldrb r0, [r2, 0x11]
|
||||
strb r0, [r1]
|
||||
movs r0, 0x90
|
||||
lsls r0, 1
|
||||
adds r1, r3, r0
|
||||
ldrb r0, [r2, 0x12]
|
||||
strb r0, [r1]
|
||||
ldr r0, _0800EF5C @ =0x00000121
|
||||
adds r1, r3, r0
|
||||
ldrb r0, [r2, 0x13]
|
||||
strb r0, [r1]
|
||||
movs r1, 0x4
|
||||
add r12, r1
|
||||
adds r2, 0x4
|
||||
adds r3, 0x4
|
||||
subs r6, 0x1
|
||||
cmp r6, 0
|
||||
bge _0800EF00
|
||||
str r4, [sp, 0x4]
|
||||
adds r5, r7, 0
|
||||
mov r3, r10
|
||||
cmp r3, r9
|
||||
blt _0800EEE8
|
||||
_0800EF4E:
|
||||
mov r2, r9
|
||||
cmp r2, 0x7
|
||||
bne _0800EF60
|
||||
adds r5, 0x20
|
||||
b _0800EF68
|
||||
.align 2, 0
|
||||
_0800EF58: .4byte 0x00000103
|
||||
_0800EF5C: .4byte 0x00000121
|
||||
_0800EF60:
|
||||
mov r4, r9
|
||||
cmp r4, 0x5
|
||||
bne _0800EF68
|
||||
adds r5, 0x60
|
||||
_0800EF68:
|
||||
mov r7, r8
|
||||
cmp r7, r9
|
||||
blt _0800EEDE
|
||||
_0800EF6E:
|
||||
mov r0, r9
|
||||
cmp r0, 0x7
|
||||
bne _0800EF7C
|
||||
movs r1, 0x80
|
||||
lsls r1, 1
|
||||
adds r5, r1
|
||||
b _0800EF88
|
||||
_0800EF7C:
|
||||
mov r2, r9
|
||||
cmp r2, 0x5
|
||||
bne _0800EF88
|
||||
movs r4, 0xF0
|
||||
lsls r4, 1
|
||||
adds r5, r4
|
||||
_0800EF88:
|
||||
ldr r0, [sp, 0x14]
|
||||
ldr r1, [sp]
|
||||
cmp r0, r1
|
||||
bge _0800EF92
|
||||
b _0800EE16
|
||||
_0800EF92:
|
||||
b _0800F024
|
||||
_0800EF94:
|
||||
movs r6, 0
|
||||
ldr r2, [sp]
|
||||
cmp r6, r2
|
||||
bge _0800F024
|
||||
_0800EF9C:
|
||||
adds r6, 0x1
|
||||
mov r10, r6
|
||||
mov r4, r9
|
||||
cmp r4, 0x6
|
||||
bne _0800EFB4
|
||||
movs r0, 0
|
||||
movs r3, 0xFF
|
||||
_0800EFAA:
|
||||
strb r0, [r5]
|
||||
adds r5, 0x1
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0800EFAA
|
||||
_0800EFB4:
|
||||
movs r7, 0
|
||||
cmp r7, r9
|
||||
bge _0800F008
|
||||
_0800EFBA:
|
||||
adds r7, 0x1
|
||||
mov r8, r7
|
||||
mov r1, r9
|
||||
lsls r0, r1, 5
|
||||
cmp r1, 0x6
|
||||
bne _0800EFD4
|
||||
movs r1, 0
|
||||
movs r3, 0x1F
|
||||
_0800EFCA:
|
||||
strb r1, [r5]
|
||||
adds r5, 0x1
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0800EFCA
|
||||
_0800EFD4:
|
||||
adds r1, r0, 0
|
||||
cmp r1, 0
|
||||
ble _0800EFEE
|
||||
adds r3, r1, 0
|
||||
_0800EFDC:
|
||||
ldr r2, [sp, 0x4]
|
||||
ldrb r0, [r2]
|
||||
strb r0, [r5]
|
||||
adds r2, 0x1
|
||||
str r2, [sp, 0x4]
|
||||
adds r5, 0x1
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bne _0800EFDC
|
||||
_0800EFEE:
|
||||
mov r4, r9
|
||||
cmp r4, 0x6
|
||||
bne _0800F002
|
||||
movs r0, 0
|
||||
movs r3, 0x1F
|
||||
_0800EFF8:
|
||||
strb r0, [r5]
|
||||
adds r5, 0x1
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0800EFF8
|
||||
_0800F002:
|
||||
mov r7, r8
|
||||
cmp r7, r9
|
||||
blt _0800EFBA
|
||||
_0800F008:
|
||||
mov r0, r9
|
||||
cmp r0, 0x6
|
||||
bne _0800F01C
|
||||
movs r0, 0
|
||||
movs r3, 0xFF
|
||||
_0800F012:
|
||||
strb r0, [r5]
|
||||
adds r5, 0x1
|
||||
subs r3, 0x1
|
||||
cmp r3, 0
|
||||
bge _0800F012
|
||||
_0800F01C:
|
||||
mov r6, r10
|
||||
ldr r1, [sp]
|
||||
cmp r6, r1
|
||||
blt _0800EF9C
|
||||
_0800F024:
|
||||
add sp, 0x24
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_800EDDC
|
||||
|
||||
thumb_func_start sub_800F034
|
||||
sub_800F034: @ 800F034
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
lsrs r0, 8
|
||||
bl AllocZeroed
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
beq _0800F06E
|
||||
ldr r0, [r4]
|
||||
adds r1, r5, 0
|
||||
bl LZ77UnCompWram
|
||||
str r5, [sp]
|
||||
ldrh r1, [r4, 0x6]
|
||||
lsls r1, 16
|
||||
ldrh r0, [r4, 0x4]
|
||||
orrs r0, r1
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpriteSheet
|
||||
adds r0, r5, 0
|
||||
bl Free
|
||||
movs r0, 0
|
||||
b _0800F070
|
||||
_0800F06E:
|
||||
movs r0, 0x1
|
||||
_0800F070:
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800F034
|
||||
|
||||
thumb_func_start sub_800F078
|
||||
sub_800F078: @ 800F078
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r0, 0
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
lsrs r0, 8
|
||||
bl AllocZeroed
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
beq _0800F0B8
|
||||
ldr r0, [r4]
|
||||
adds r1, r5, 0
|
||||
bl LZ77UnCompWram
|
||||
str r5, [sp]
|
||||
ldrh r2, [r4, 0x4]
|
||||
ldr r1, _0800F0B4 @ =0xffff0000
|
||||
ldr r0, [sp, 0x4]
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpritePalette
|
||||
adds r0, r5, 0
|
||||
bl Free
|
||||
movs r0, 0
|
||||
b _0800F0BA
|
||||
.align 2, 0
|
||||
_0800F0B4: .4byte 0xffff0000
|
||||
_0800F0B8:
|
||||
movs r0, 0x1
|
||||
_0800F0BA:
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800F078
|
||||
|
||||
thumb_func_start GetDecompressedDataSize
|
||||
GetDecompressedDataSize: @ 800F0C4
|
||||
sub sp, 0x4
|
||||
mov r3, sp
|
||||
ldrb r2, [r0, 0x1]
|
||||
mov r1, sp
|
||||
strb r2, [r1]
|
||||
ldrb r1, [r0, 0x2]
|
||||
strb r1, [r3, 0x1]
|
||||
ldrb r0, [r0, 0x3]
|
||||
strb r0, [r3, 0x2]
|
||||
movs r0, 0
|
||||
strb r0, [r3, 0x3]
|
||||
ldr r0, [sp]
|
||||
add sp, 0x4
|
||||
bx lr
|
||||
thumb_func_end GetDecompressedDataSize
|
||||
|
||||
thumb_func_start DecompressPicFromTable_DontHandleDeoxys
|
||||
DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r2, r0
|
||||
ble _0800F0FC
|
||||
ldr r0, _0800F0F8 @ =gMonFrontPicTable
|
||||
ldr r0, [r0]
|
||||
bl LZ77UnCompWram
|
||||
b _0800F102
|
||||
.align 2, 0
|
||||
_0800F0F8: .4byte gMonFrontPicTable
|
||||
_0800F0FC:
|
||||
ldr r0, [r3]
|
||||
bl LZ77UnCompWram
|
||||
_0800F102:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end DecompressPicFromTable_DontHandleDeoxys
|
||||
|
||||
thumb_func_start HandleLoadSpecialPokePic_DontHandleDeoxys
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
lsls r0, r2, 3
|
||||
ldr r1, _0800F130 @ =gMonFrontPicTable
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
cmp r4, r0
|
||||
bne _0800F11E
|
||||
movs r1, 0x1
|
||||
_0800F11E:
|
||||
str r1, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl LoadSpecialPokePic_DontHandleDeoxys
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800F130: .4byte gMonFrontPicTable
|
||||
thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys
|
||||
|
||||
thumb_func_start LoadSpecialPokePic_DontHandleDeoxys
|
||||
LoadSpecialPokePic_DontHandleDeoxys: @ 800F134
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, 0
|
||||
adds r5, r1, 0
|
||||
adds r7, r2, 0
|
||||
adds r4, r3, 0
|
||||
ldr r0, [sp, 0x18]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
cmp r7, 0xC9
|
||||
bne _0800F1B0
|
||||
movs r0, 0xC0
|
||||
lsls r0, 18
|
||||
ands r0, r4
|
||||
lsrs r0, 18
|
||||
movs r1, 0xC0
|
||||
lsls r1, 10
|
||||
ands r1, r4
|
||||
lsrs r1, 12
|
||||
orrs r0, r1
|
||||
movs r1, 0xC0
|
||||
lsls r1, 2
|
||||
ands r1, r4
|
||||
lsrs r1, 6
|
||||
orrs r0, r1
|
||||
movs r1, 0x3
|
||||
ands r1, r4
|
||||
orrs r0, r1
|
||||
movs r1, 0x1C
|
||||
bl __umodsi3
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
cmp r1, 0
|
||||
bne _0800F182
|
||||
movs r1, 0xC9
|
||||
b _0800F18C
|
||||
_0800F182:
|
||||
movs r2, 0xCE
|
||||
lsls r2, 1
|
||||
adds r0, r1, r2
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
_0800F18C:
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
bne _0800F1A0
|
||||
ldr r0, _0800F19C @ =gMonBackPicTable
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
b _0800F1BC
|
||||
.align 2, 0
|
||||
_0800F19C: .4byte gMonBackPicTable
|
||||
_0800F1A0:
|
||||
ldr r0, _0800F1AC @ =gMonFrontPicTable
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
b _0800F1BC
|
||||
.align 2, 0
|
||||
_0800F1AC: .4byte gMonFrontPicTable
|
||||
_0800F1B0:
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r7, r0
|
||||
ble _0800F1C8
|
||||
ldr r0, _0800F1C4 @ =gMonFrontPicTable
|
||||
ldr r0, [r0]
|
||||
_0800F1BC:
|
||||
adds r1, r5, 0
|
||||
bl LZ77UnCompWram
|
||||
b _0800F1D0
|
||||
.align 2, 0
|
||||
_0800F1C4: .4byte gMonFrontPicTable
|
||||
_0800F1C8:
|
||||
ldr r0, [r6]
|
||||
adds r1, r5, 0
|
||||
bl LZ77UnCompWram
|
||||
_0800F1D0:
|
||||
lsls r0, r7, 16
|
||||
lsrs r0, 16
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
mov r3, r8
|
||||
bl DrawSpindaSpots
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end LoadSpecialPokePic_DontHandleDeoxys
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
|
@ -573,7 +573,7 @@ _080F5D80: .4byte SpriteCB_PostEvoSparkleSet2
|
|||
LoadEvoSparkleSpriteAndPal: @ 80F5D84
|
||||
push {lr}
|
||||
ldr r0, _080F5D98 @ =gUnknown_841EEC4
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _080F5D9C @ =gUnknown_841EED4
|
||||
bl LoadSpritePalettes
|
||||
pop {r0}
|
||||
|
|
|
|||
|
|
@ -608,12 +608,12 @@ CreateTrainerSprite: @ 8083858
|
|||
add r8, r4
|
||||
mov r0, r8
|
||||
adds r1, r7, 0
|
||||
bl LoadCompressedObjectPaletteOverrideBuffer
|
||||
bl LoadCompressedSpritePaletteOverrideBuffer
|
||||
ldr r0, _080838E4 @ =gTrainerFrontPicTable
|
||||
adds r4, r0
|
||||
adds r0, r4, 0
|
||||
adds r1, r7, 0
|
||||
bl LoadCompressedObjectPicOverrideBuffer
|
||||
bl LoadCompressedSpriteSheetOverrideBuffer
|
||||
mov r1, sp
|
||||
ldrh r0, [r4, 0x6]
|
||||
movs r2, 0
|
||||
|
|
|
|||
|
|
@ -3080,9 +3080,9 @@ sub_80F36BC: @ 80F36BC
|
|||
movs r0, 0x8
|
||||
strb r0, [r1]
|
||||
ldr r0, _080F36F0 @ =gUnknown_840C248
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _080F36F4 @ =gUnknown_840C258
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -2759,7 +2759,7 @@ sub_80EDC40: @ 80EDC40
|
|||
ldr r4, _080EDCE4 @ =gUnknown_840BBC0
|
||||
_080EDC46:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x4
|
||||
|
|
@ -4823,7 +4823,7 @@ sub_80EEBE4: @ 80EEBE4
|
|||
ldr r4, _080EEC04 @ =gUnknown_840BEDC
|
||||
_080EEBEA:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x6
|
||||
|
|
|
|||
|
|
@ -676,20 +676,20 @@ _0810832C: .4byte gSaveBlock2Ptr
|
|||
_08108330: .4byte gUnknown_83D41E4
|
||||
_08108334:
|
||||
ldr r0, _0810833C @ =gUnknown_83D41EC
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
b _08108352
|
||||
.align 2, 0
|
||||
_0810833C: .4byte gUnknown_83D41EC
|
||||
_08108340:
|
||||
ldr r0, _08108348 @ =gUnknown_83D41F4
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
b _08108352
|
||||
.align 2, 0
|
||||
_08108348: .4byte gUnknown_83D41F4
|
||||
_0810834C:
|
||||
ldr r0, _08108360 @ =gBagSwapSpriteSheet
|
||||
_0810834E:
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
_08108352:
|
||||
ldr r0, _08108364 @ =gUnknown_203AD10
|
||||
ldr r1, [r0]
|
||||
|
|
@ -702,7 +702,7 @@ _08108360: .4byte gBagSwapSpriteSheet
|
|||
_08108364: .4byte gUnknown_203AD10
|
||||
_08108368:
|
||||
ldr r0, _08108378 @ =gBagSwapSpritePalette
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
ldr r1, [r4]
|
||||
movs r0, 0
|
||||
strb r0, [r1, 0x10]
|
||||
|
|
|
|||
|
|
@ -9465,7 +9465,7 @@ sub_8101A90: @ 8101A90
|
|||
ldr r4, _08101AC0 @ =gUnknown_843F938
|
||||
_08101AA2:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x3
|
||||
|
|
|
|||
|
|
@ -9525,7 +9525,7 @@ sub_80FCEA8: @ 80FCEA8
|
|||
cmp r0, r1
|
||||
bne _080FCEC0
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
_080FCEC0:
|
||||
ldr r0, _080FCEDC @ =gUnknown_843F27C
|
||||
bl LoadSpritePalette
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ AddScrollIndicatorArrowPair: @ 8133A20
|
|||
orrs r0, r1
|
||||
str r0, [sp, 0x8]
|
||||
add r0, sp, 0x4
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldrh r2, [r6, 0xC]
|
||||
cmp r2, r4
|
||||
bne _08133A7C
|
||||
|
|
@ -727,7 +727,7 @@ ListMenuAddRedOutlineCursorObject: @ 8133E38
|
|||
ands r1, r3
|
||||
orrs r1, r2
|
||||
str r1, [r0, 0x4]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldrh r2, [r6, 0x8]
|
||||
ldr r7, _08133E8C @ =0x0000ffff
|
||||
cmp r2, r7
|
||||
|
|
@ -1005,7 +1005,7 @@ ListMenuAddRedArrowCursorObject: @ 8134070
|
|||
ands r1, r4
|
||||
orrs r1, r2
|
||||
str r1, [r0, 0x4]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldrh r2, [r5, 0x8]
|
||||
cmp r2, r4
|
||||
bne _081340C4
|
||||
|
|
|
|||
|
|
@ -8013,11 +8013,11 @@ _0812285C: .4byte 0x0000fffc
|
|||
sub_8122860: @ 8122860
|
||||
push {lr}
|
||||
ldr r0, _08122878 @ =gUnknown_845A474
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _0812287C @ =gUnknown_845A4EC
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _08122880 @ =gUnknown_845A47C
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
|
|
@ -8164,9 +8164,9 @@ _0812297C: .4byte gSprites
|
|||
sub_8122980: @ 8122980
|
||||
push {lr}
|
||||
ldr r0, _08122994 @ =gUnknown_845A574
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _08122998 @ =gUnknown_845A57C
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -2029,9 +2029,9 @@ CreatePokeballSpriteToReleaseMon: @ 804B908
|
|||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
ldr r0, _0804B9D4 @ =gUnknown_826056C
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _0804B9D8 @ =gUnknown_82605CC
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
ldr r0, _0804B9DC @ =gUnknown_82606F4
|
||||
mov r1, r9
|
||||
mov r2, r10
|
||||
|
|
@ -2362,9 +2362,9 @@ sub_804BB98: @ 804BB98
|
|||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
ldr r0, _0804BC3C @ =gUnknown_826056C
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _0804BC40 @ =gUnknown_82605CC
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
ldr r0, _0804BC44 @ =gUnknown_82606F4
|
||||
adds r1, r6, 0
|
||||
mov r2, r8
|
||||
|
|
@ -2790,10 +2790,10 @@ LoadBallGfx: @ 804BEF4
|
|||
cmp r0, r1
|
||||
bne _0804BF1C
|
||||
adds r0, r5, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _0804BF58 @ =gUnknown_82605CC
|
||||
adds r0, r6, r0
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
_0804BF1C:
|
||||
cmp r4, 0x6
|
||||
beq _0804BF48
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ sub_8134230: @ 8134230
|
|||
ands r2, r5
|
||||
orrs r2, r1
|
||||
str r2, [r0, 0x4]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _081343D0 @ =gUnknown_846341C
|
||||
mov r3, r8
|
||||
lsls r3, 4
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ sub_81476E0: @ 81476E0
|
|||
lsls r0, 3
|
||||
ldr r1, _081477B0 @ =gUnknown_846B42C
|
||||
adds r0, r1
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
movs r2, 0x8
|
||||
ldrsh r0, [r4, r2]
|
||||
lsls r0, 3
|
||||
|
|
|
|||
|
|
@ -6777,7 +6777,7 @@ sub_814AD6C: @ 814AD6C
|
|||
ldr r5, _0814ADAC @ =gUnknown_846E0B0
|
||||
_0814AD74:
|
||||
adds r0, r5, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r5, 0x8
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x4
|
||||
|
|
@ -6881,7 +6881,7 @@ _0814AE2A:
|
|||
adds r0, r1
|
||||
ldr r3, [r7, 0x8]
|
||||
mov r1, r8
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
mov r3, r8
|
||||
str r3, [sp, 0x18]
|
||||
adds r4, r6, 0
|
||||
|
|
@ -6903,7 +6903,7 @@ _0814AE2A:
|
|||
ands r1, r5
|
||||
orrs r1, r4
|
||||
str r1, [r0, 0x4]
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
mov r0, r8
|
||||
bl Free
|
||||
mov r0, r10
|
||||
|
|
|
|||
|
|
@ -2446,7 +2446,7 @@ _0811D884:
|
|||
adds r1, r6, 0
|
||||
adds r2, r7, 0
|
||||
mov r3, r10
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
mov r0, r8
|
||||
bl GetMonFrontSpritePal
|
||||
adds r1, r4, 0
|
||||
|
|
@ -3699,7 +3699,7 @@ sub_811E204: @ 811E204
|
|||
sub sp, 0x8
|
||||
mov r10, r0
|
||||
ldr r0, _0811E2E0 @ =gUnknown_84599B8
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _0811E2E4 @ =gUnknown_84599C0
|
||||
bl LoadSpritePalette
|
||||
movs r0, 0
|
||||
|
|
@ -4148,7 +4148,7 @@ _0811E582:
|
|||
sub_811E588: @ 811E588
|
||||
push {lr}
|
||||
ldr r0, _0811E59C @ =gUnknown_84599C8
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
ldr r0, _0811E5A0 @ =gUnknown_84599D0
|
||||
bl LoadSpritePalette
|
||||
pop {r0}
|
||||
|
|
@ -4216,7 +4216,7 @@ sub_811E5B8: @ 811E5B8
|
|||
str r1, [r4]
|
||||
mov r1, r9
|
||||
strh r1, [r4, 0x4]
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r0, r4, 0
|
||||
bl LoadSpritePalette
|
||||
ldr r0, _0811E674 @ =sub_811E694
|
||||
|
|
|
|||
|
|
@ -7233,7 +7233,7 @@ sub_808F3F8: @ 808F3F8
|
|||
adds r0, r1
|
||||
ldr r5, _0808F474 @ =0x000022bc
|
||||
adds r1, r4, r5
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
ldr r1, [r6]
|
||||
ldr r2, _0808F478 @ =0x00000cd8
|
||||
adds r0, r1, r2
|
||||
|
|
@ -20609,7 +20609,7 @@ _08095B9C:
|
|||
orrs r0, r1
|
||||
str r0, [r2, 0x4]
|
||||
mov r0, r9
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
mov r4, r9
|
||||
ldrh r0, [r4, 0x6]
|
||||
bl GetSpriteTileStartByTag
|
||||
|
|
|
|||
|
|
@ -2689,7 +2689,7 @@ sub_8140C0C: @ 8140C0C
|
|||
ldr r4, _08140C3C @ =gUnknown_84655B0
|
||||
_08140C12:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x2
|
||||
|
|
|
|||
|
|
@ -26,9 +26,9 @@ sub_804A76C: @ 804A76C
|
|||
cmp r0, r1
|
||||
bne _0804A79E
|
||||
adds r0, r5, 0
|
||||
bl sub_800F034
|
||||
bl LoadCompressedSpriteSheetUsingHeap
|
||||
ldr r0, _0804A8AC @ =gUnknown_8250994
|
||||
bl sub_800F078
|
||||
bl LoadCompressedSpritePaletteUsingHeap
|
||||
_0804A79E:
|
||||
ldr r0, _0804A8B0 @ =sub_804A8C0
|
||||
bl CreateInvisibleSpriteWithCallback
|
||||
|
|
|
|||
|
|
@ -1704,7 +1704,7 @@ sub_8079708: @ 8079708
|
|||
ldr r4, _08079728 @ =gUnknown_83BFB9C
|
||||
_0807970E:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x3
|
||||
|
|
|
|||
|
|
@ -7292,7 +7292,7 @@ _08050040:
|
|||
ldr r1, [r1, 0x8]
|
||||
adds r2, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
movs r4, 0
|
||||
b _0805009A
|
||||
.align 2, 0
|
||||
|
|
@ -7316,7 +7316,7 @@ _0805007C:
|
|||
_0805009A:
|
||||
mov r0, r8
|
||||
bl GetMonSpritePalStruct
|
||||
bl LoadCompressedObjectPalette
|
||||
bl LoadCompressedSpritePalette
|
||||
ldr r0, _080500C4 @ =gUnknown_2031DAC
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, 0
|
||||
|
|
@ -10813,7 +10813,7 @@ _08052042:
|
|||
ldr r1, [r1]
|
||||
ldr r1, [r1, 0x10]
|
||||
ldr r3, [r3, 0x6C]
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
ldr r1, [r7]
|
||||
b _080522AC
|
||||
.align 2, 0
|
||||
|
|
@ -13038,7 +13038,7 @@ _0805349E:
|
|||
ldr r1, [r1]
|
||||
ldr r1, [r1, 0x10]
|
||||
ldr r3, [r3, 0x6C]
|
||||
bl sub_800ECC4
|
||||
bl HandleLoadSpecialPokePic
|
||||
ldr r1, [r7]
|
||||
b _08053708
|
||||
.align 2, 0
|
||||
|
|
|
|||
|
|
@ -5510,7 +5510,7 @@ sub_812AE70: @ 812AE70
|
|||
ldr r4, _0812AE9C @ =gUnknown_845AF58
|
||||
_0812AE76:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedObjectPic
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x4
|
||||
|
|
|
|||
|
|
@ -10,15 +10,13 @@ extern u8 gDecompressionBuffer[0x4000];
|
|||
void LZDecompressWram(const void *src, void *dest);
|
||||
void LZDecompressVram(const void *src, void *dest);
|
||||
|
||||
u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
|
||||
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src);
|
||||
u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src);
|
||||
void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
|
||||
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src);
|
||||
|
||||
void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src);
|
||||
void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
|
||||
bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src);
|
||||
|
||||
bool8 sub_800F078(const struct CompressedSpritePalette *src);
|
||||
void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src);
|
||||
void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
|
||||
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
|
|
@ -27,15 +25,12 @@ void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet
|
|||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void sub_800ECC4(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
|
||||
void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
|
||||
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
|
||||
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
|
||||
|
||||
u32 sub_8034974(const u8 *ptr);
|
||||
|
||||
void sub_800F034(const struct CompressedSpriteSheet *src);
|
||||
u32 GetDecompressedDataSize(const u8 *ptr);
|
||||
|
||||
#endif // GUARD_DECOMPRESS_H
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ SECTIONS {
|
|||
asm/multiboot.o(.text);
|
||||
asm/main_menu.o(.text);
|
||||
asm/battle_controllers.o(.text);
|
||||
asm/decompress.o(.text);
|
||||
src/decompress.o(.text);
|
||||
asm/battle_1.o(.text);
|
||||
asm/battle_2.o(.text);
|
||||
asm/battle_util.o(.text);
|
||||
|
|
|
|||
|
|
@ -1768,8 +1768,8 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
|
|||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid);
|
||||
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
|
||||
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid);
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
|
||||
*speciesLoc = species;
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
664
src/decompress.c
Normal file
664
src/decompress.c
Normal file
|
|
@ -0,0 +1,664 @@
|
|||
#include "global.h"
|
||||
#include "malloc.h"
|
||||
#include "decompress.h"
|
||||
#include "pokemon.h"
|
||||
#include "text.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
extern const struct CompressedSpriteSheet gMonBackPicTable[];
|
||||
|
||||
static void DuplicateDeoxysTiles(void *pointer, s32 species);
|
||||
|
||||
void LZDecompressWram(const void *src, void *dest)
|
||||
{
|
||||
LZ77UnCompWram(src, dest);
|
||||
}
|
||||
|
||||
void LZDecompressVram(const void *src, void *dest)
|
||||
{
|
||||
LZ77UnCompVram(src, dest);
|
||||
}
|
||||
|
||||
u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src)
|
||||
{
|
||||
struct SpriteSheet dest;
|
||||
|
||||
LZ77UnCompWram(src->data, gDecompressionBuffer);
|
||||
dest.data = gDecompressionBuffer;
|
||||
dest.size = src->size;
|
||||
dest.tag = src->tag;
|
||||
return LoadSpriteSheet(&dest);
|
||||
}
|
||||
|
||||
void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer)
|
||||
{
|
||||
struct SpriteSheet dest;
|
||||
|
||||
LZ77UnCompWram(src->data, buffer);
|
||||
dest.data = buffer;
|
||||
dest.size = src->size;
|
||||
dest.tag = src->tag;
|
||||
LoadSpriteSheet(&dest);
|
||||
}
|
||||
|
||||
void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src)
|
||||
{
|
||||
struct SpritePalette dest;
|
||||
|
||||
LZ77UnCompWram(src->data, gDecompressionBuffer);
|
||||
dest.data = (void*) gDecompressionBuffer;
|
||||
dest.tag = src->tag;
|
||||
LoadSpritePalette(&dest);
|
||||
}
|
||||
|
||||
void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer)
|
||||
{
|
||||
struct SpritePalette dest;
|
||||
|
||||
LZ77UnCompWram(a->data, buffer);
|
||||
dest.data = buffer;
|
||||
dest.tag = a->tag;
|
||||
LoadSpritePalette(&dest);
|
||||
}
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species)
|
||||
{
|
||||
if (species > NUM_SPECIES)
|
||||
LZ77UnCompWram(gMonFrontPicTable[0].data, buffer);
|
||||
else
|
||||
LZ77UnCompWram(src->data, buffer);
|
||||
DuplicateDeoxysTiles(buffer, species);
|
||||
}
|
||||
|
||||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality)
|
||||
{
|
||||
bool8 isFrontPic;
|
||||
|
||||
if (src == &gMonFrontPicTable[species])
|
||||
isFrontPic = TRUE; // frontPic
|
||||
else
|
||||
isFrontPic = FALSE; // backPic
|
||||
|
||||
LoadSpecialPokePic(src, dest, species, personality, isFrontPic);
|
||||
}
|
||||
|
||||
void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic)
|
||||
{
|
||||
if (species == SPECIES_UNOWN)
|
||||
{
|
||||
u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C;
|
||||
|
||||
// The other Unowns are separate from Unown A.
|
||||
if (i == 0)
|
||||
i = SPECIES_UNOWN;
|
||||
else
|
||||
i += SPECIES_UNOWN_B - 1;
|
||||
|
||||
if (!isFrontPic)
|
||||
LZ77UnCompWram(gMonBackPicTable[i].data, dest);
|
||||
else
|
||||
LZ77UnCompWram(gMonFrontPicTable[i].data, dest);
|
||||
}
|
||||
else if (species > NUM_SPECIES) // is species unknown? draw the ? icon
|
||||
LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
|
||||
else
|
||||
LZ77UnCompWram(src->data, dest);
|
||||
|
||||
DuplicateDeoxysTiles(dest, species);
|
||||
DrawSpindaSpots(species, personality, dest, isFrontPic);
|
||||
}
|
||||
|
||||
static void DuplicateDeoxysTiles(void *pointer, s32 species)
|
||||
{
|
||||
if (species == SPECIES_DEOXYS)
|
||||
CpuCopy32(pointer + 0x800, pointer, 0x800);
|
||||
}
|
||||
|
||||
static void Unused_LZDecompressWramIndirect(const void **src, void *dest)
|
||||
{
|
||||
LZ77UnCompWram(*src, dest);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3)
|
||||
{
|
||||
u8 *v1, *v2;
|
||||
int i, j, k, l;
|
||||
|
||||
if (a0 & 1)
|
||||
{
|
||||
u8 v40 = ((a0 >> 1) + 4);
|
||||
for (i = 0; i < a1; ++i)
|
||||
{
|
||||
// this nested loop failed to match
|
||||
for (j = 0; j < 8 - a0; ++j)
|
||||
{
|
||||
for (k = 0; k < 8; ++k)
|
||||
{
|
||||
|
||||
v1 = a3 + 0x100 * v40 + 0x100 * (j >> 1) + 0x20 * k;
|
||||
v2 = a3 + 0x20 * k + 0x100 * (j >> 1);
|
||||
for (l = 0; l < 0x10; ++l)
|
||||
{
|
||||
if (!(j & 1))
|
||||
{
|
||||
v2[0] = j & 1;
|
||||
v1[16] = 0;
|
||||
// a3[0x100 * (j / 2) + 0x20 * k + l] = 0;
|
||||
// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
v2[16] = 0;
|
||||
v1[0x100] = 0;
|
||||
// a3[0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0;
|
||||
// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x100] = 0;
|
||||
}
|
||||
++v1;
|
||||
++v2; // this should be generated if you write stuff inside operator [] instead of declaring v1/v2
|
||||
}
|
||||
}
|
||||
}
|
||||
for (j = 0; j < 2; ++j)
|
||||
{
|
||||
for (k = 0; k < 8; ++k)
|
||||
{
|
||||
for (l = 0; l < 0x20; ++l)
|
||||
{
|
||||
a3[0x100 * k + 0x20 * j + l] = 0;
|
||||
a3[0x100 * k + 0xC0 + 0x20 * j + l] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (a0 == 5)
|
||||
a3 += 0x120;
|
||||
for (j = 0; j < a0; ++j)
|
||||
{
|
||||
for (k = 0; k < a0; ++k)
|
||||
{
|
||||
for (l = 0; l < 4; ++l)
|
||||
{
|
||||
a3[0x12 + 4 * l] = a2[0 + 4 * l];
|
||||
a3[0x13 + 4 * l] = a2[1 + 4 * l];
|
||||
a3[0x12 + 0x1E + 4 * l] = a2[2 + 4 * l];
|
||||
a3[0x12 + 0x1F + 4 * l] = a2[3 + 4 * l];
|
||||
a3[0x102 + 4 * l] = a2[0x10 + 4 * l];
|
||||
a3[0x103 + 4 * l] = a2[0x11 + 4 * l];
|
||||
a3[0x120 + 4 * l] = a2[0x12 + 4 * l];
|
||||
a3[0x121 + 4 * l] = a2[0x13 + 4 * l];
|
||||
}
|
||||
a2 += 0x20;
|
||||
a3 += 0x20;
|
||||
}
|
||||
if (a0 == 7)
|
||||
a3 += 0x20;
|
||||
else if (a0 == 5)
|
||||
a3 += 0x60;
|
||||
}
|
||||
if (a0 == 7)
|
||||
a3 += 0x100;
|
||||
else if (a0 == 5)
|
||||
a3 += 0x1E0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < a1; ++i)
|
||||
{
|
||||
if (a0 == 6)
|
||||
for (j = 0; j < 0x100; ++j)
|
||||
*a3++ = 0;
|
||||
for (j = 0; j < a0; ++j)
|
||||
{
|
||||
if (a0 == 6)
|
||||
for (k = 0; k < 0x20; ++k)
|
||||
*a3++ = 0;
|
||||
for (k = 0; k < 0x20 * a0; ++k)
|
||||
*a3++ = *a2++;
|
||||
if (a0 == 6)
|
||||
for (k = 0; k < 0x20; ++k)
|
||||
*a3++ = 0;
|
||||
}
|
||||
if (a0 == 6)
|
||||
for (j = 0; j < 0x100; ++j)
|
||||
*a3++ = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3)
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r10\n\
|
||||
mov r6, r9\n\
|
||||
mov r5, r8\n\
|
||||
push {r5-r7}\n\
|
||||
sub sp, 0x24\n\
|
||||
mov r9, r0\n\
|
||||
str r1, [sp]\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r5, r3, 0\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r9\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
bne _0800EDFC\n\
|
||||
b _0800EF94\n\
|
||||
_0800EDFC:\n\
|
||||
asrs r0, r1, 1\n\
|
||||
adds r0, 0x4\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
str r0, [sp, 0x8]\n\
|
||||
movs r0, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r0, r2\n\
|
||||
blt _0800EE10\n\
|
||||
b _0800F024\n\
|
||||
_0800EE10:\n\
|
||||
movs r4, 0x8\n\
|
||||
subs r1, r4, r1\n\
|
||||
str r1, [sp, 0x10]\n\
|
||||
_0800EE16:\n\
|
||||
movs r7, 0\n\
|
||||
adds r0, 0x1\n\
|
||||
str r0, [sp, 0x14]\n\
|
||||
ldr r0, [sp, 0x10]\n\
|
||||
cmp r7, r0\n\
|
||||
bge _0800EE92\n\
|
||||
ldr r1, [sp, 0x8]\n\
|
||||
lsls r1, 8\n\
|
||||
str r1, [sp, 0x18]\n\
|
||||
movs r2, 0\n\
|
||||
mov r10, r2\n\
|
||||
mov r0, r9\n\
|
||||
movs r4, 0x8\n\
|
||||
subs r0, r4, r0\n\
|
||||
str r0, [sp, 0xC]\n\
|
||||
_0800EE34:\n\
|
||||
movs r3, 0\n\
|
||||
asrs r0, r7, 1\n\
|
||||
adds r1, r7, 0\n\
|
||||
movs r2, 0x1\n\
|
||||
ands r1, r2\n\
|
||||
str r1, [sp, 0x20]\n\
|
||||
lsls r0, 8\n\
|
||||
mov r8, r0\n\
|
||||
mov r12, r5\n\
|
||||
_0800EE46:\n\
|
||||
lsls r1, r3, 5\n\
|
||||
ldr r4, [sp, 0x18]\n\
|
||||
adds r0, r5, r4\n\
|
||||
adds r0, r1\n\
|
||||
mov r1, r8\n\
|
||||
adds r2, r0, r1\n\
|
||||
mov r1, r12\n\
|
||||
add r1, r8\n\
|
||||
movs r6, 0xF\n\
|
||||
_0800EE58:\n\
|
||||
ldr r4, [sp, 0x20]\n\
|
||||
cmp r4, 0\n\
|
||||
bne _0800EE68\n\
|
||||
strb r4, [r1]\n\
|
||||
add r4, sp, 0x20\n\
|
||||
ldrb r4, [r4]\n\
|
||||
strb r4, [r2, 0x10]\n\
|
||||
b _0800EE76\n\
|
||||
_0800EE68:\n\
|
||||
mov r0, r10\n\
|
||||
strb r0, [r1, 0x10]\n\
|
||||
movs r4, 0x80\n\
|
||||
lsls r4, 1\n\
|
||||
adds r4, r2, r4\n\
|
||||
str r4, [sp, 0x1C]\n\
|
||||
strb r0, [r4]\n\
|
||||
_0800EE76:\n\
|
||||
adds r2, 0x1\n\
|
||||
adds r1, 0x1\n\
|
||||
subs r6, 0x1\n\
|
||||
cmp r6, 0\n\
|
||||
bge _0800EE58\n\
|
||||
movs r0, 0x20\n\
|
||||
add r12, r0\n\
|
||||
adds r3, 0x1\n\
|
||||
cmp r3, 0x7\n\
|
||||
ble _0800EE46\n\
|
||||
adds r7, 0x1\n\
|
||||
ldr r1, [sp, 0xC]\n\
|
||||
cmp r7, r1\n\
|
||||
blt _0800EE34\n\
|
||||
_0800EE92:\n\
|
||||
movs r7, 0\n\
|
||||
movs r2, 0\n\
|
||||
_0800EE96:\n\
|
||||
movs r6, 0\n\
|
||||
adds r4, r7, 0x1\n\
|
||||
mov r8, r4\n\
|
||||
lsls r4, r7, 5\n\
|
||||
_0800EE9E:\n\
|
||||
adds r0, r6, 0x1\n\
|
||||
mov r10, r0\n\
|
||||
lsls r1, r6, 8\n\
|
||||
adds r0, r1, 0\n\
|
||||
adds r0, 0xC0\n\
|
||||
adds r0, r5, r0\n\
|
||||
adds r0, r4\n\
|
||||
adds r1, r5, r1\n\
|
||||
adds r1, r4\n\
|
||||
movs r3, 0x1F\n\
|
||||
_0800EEB2:\n\
|
||||
strb r2, [r1]\n\
|
||||
strb r2, [r0]\n\
|
||||
adds r0, 0x1\n\
|
||||
adds r1, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0800EEB2\n\
|
||||
mov r6, r10\n\
|
||||
cmp r6, 0x7\n\
|
||||
ble _0800EE9E\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, 0x1\n\
|
||||
ble _0800EE96\n\
|
||||
mov r1, r9\n\
|
||||
cmp r1, 0x5\n\
|
||||
bne _0800EED8\n\
|
||||
movs r2, 0x90\n\
|
||||
lsls r2, 1\n\
|
||||
adds r5, r2\n\
|
||||
_0800EED8:\n\
|
||||
movs r7, 0\n\
|
||||
cmp r7, r9\n\
|
||||
bge _0800EF6E\n\
|
||||
_0800EEDE:\n\
|
||||
movs r3, 0\n\
|
||||
adds r7, 0x1\n\
|
||||
mov r8, r7\n\
|
||||
cmp r3, r9\n\
|
||||
bge _0800EF4E\n\
|
||||
_0800EEE8:\n\
|
||||
adds r3, 0x1\n\
|
||||
mov r10, r3\n\
|
||||
ldr r4, [sp, 0x4]\n\
|
||||
adds r4, 0x20\n\
|
||||
adds r7, r5, 0\n\
|
||||
adds r7, 0x20\n\
|
||||
movs r0, 0x12\n\
|
||||
adds r0, r5\n\
|
||||
mov r12, r0\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
adds r3, r5, 0\n\
|
||||
movs r6, 0x3\n\
|
||||
_0800EF00:\n\
|
||||
ldrb r0, [r2]\n\
|
||||
mov r1, r12\n\
|
||||
strb r0, [r1]\n\
|
||||
ldrb r0, [r2, 0x1]\n\
|
||||
strb r0, [r1, 0x1]\n\
|
||||
ldrb r0, [r2, 0x2]\n\
|
||||
strb r0, [r1, 0x1E]\n\
|
||||
ldrb r0, [r2, 0x3]\n\
|
||||
strb r0, [r1, 0x1F]\n\
|
||||
movs r0, 0x81\n\
|
||||
lsls r0, 1\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x10]\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, _0800EF58 @ =0x00000103\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x11]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r0, 0x90\n\
|
||||
lsls r0, 1\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x12]\n\
|
||||
strb r0, [r1]\n\
|
||||
ldr r0, _0800EF5C @ =0x00000121\n\
|
||||
adds r1, r3, r0\n\
|
||||
ldrb r0, [r2, 0x13]\n\
|
||||
strb r0, [r1]\n\
|
||||
movs r1, 0x4\n\
|
||||
add r12, r1\n\
|
||||
adds r2, 0x4\n\
|
||||
adds r3, 0x4\n\
|
||||
subs r6, 0x1\n\
|
||||
cmp r6, 0\n\
|
||||
bge _0800EF00\n\
|
||||
str r4, [sp, 0x4]\n\
|
||||
adds r5, r7, 0\n\
|
||||
mov r3, r10\n\
|
||||
cmp r3, r9\n\
|
||||
blt _0800EEE8\n\
|
||||
_0800EF4E:\n\
|
||||
mov r2, r9\n\
|
||||
cmp r2, 0x7\n\
|
||||
bne _0800EF60\n\
|
||||
adds r5, 0x20\n\
|
||||
b _0800EF68\n\
|
||||
.align 2, 0\n\
|
||||
_0800EF58: .4byte 0x00000103\n\
|
||||
_0800EF5C: .4byte 0x00000121\n\
|
||||
_0800EF60:\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x5\n\
|
||||
bne _0800EF68\n\
|
||||
adds r5, 0x60\n\
|
||||
_0800EF68:\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, r9\n\
|
||||
blt _0800EEDE\n\
|
||||
_0800EF6E:\n\
|
||||
mov r0, r9\n\
|
||||
cmp r0, 0x7\n\
|
||||
bne _0800EF7C\n\
|
||||
movs r1, 0x80\n\
|
||||
lsls r1, 1\n\
|
||||
adds r5, r1\n\
|
||||
b _0800EF88\n\
|
||||
_0800EF7C:\n\
|
||||
mov r2, r9\n\
|
||||
cmp r2, 0x5\n\
|
||||
bne _0800EF88\n\
|
||||
movs r4, 0xF0\n\
|
||||
lsls r4, 1\n\
|
||||
adds r5, r4\n\
|
||||
_0800EF88:\n\
|
||||
ldr r0, [sp, 0x14]\n\
|
||||
ldr r1, [sp]\n\
|
||||
cmp r0, r1\n\
|
||||
bge _0800EF92\n\
|
||||
b _0800EE16\n\
|
||||
_0800EF92:\n\
|
||||
b _0800F024\n\
|
||||
_0800EF94:\n\
|
||||
movs r6, 0\n\
|
||||
ldr r2, [sp]\n\
|
||||
cmp r6, r2\n\
|
||||
bge _0800F024\n\
|
||||
_0800EF9C:\n\
|
||||
adds r6, 0x1\n\
|
||||
mov r10, r6\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x6\n\
|
||||
bne _0800EFB4\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0xFF\n\
|
||||
_0800EFAA:\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0800EFAA\n\
|
||||
_0800EFB4:\n\
|
||||
movs r7, 0\n\
|
||||
cmp r7, r9\n\
|
||||
bge _0800F008\n\
|
||||
_0800EFBA:\n\
|
||||
adds r7, 0x1\n\
|
||||
mov r8, r7\n\
|
||||
mov r1, r9\n\
|
||||
lsls r0, r1, 5\n\
|
||||
cmp r1, 0x6\n\
|
||||
bne _0800EFD4\n\
|
||||
movs r1, 0\n\
|
||||
movs r3, 0x1F\n\
|
||||
_0800EFCA:\n\
|
||||
strb r1, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0800EFCA\n\
|
||||
_0800EFD4:\n\
|
||||
adds r1, r0, 0\n\
|
||||
cmp r1, 0\n\
|
||||
ble _0800EFEE\n\
|
||||
adds r3, r1, 0\n\
|
||||
_0800EFDC:\n\
|
||||
ldr r2, [sp, 0x4]\n\
|
||||
ldrb r0, [r2]\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r2, 0x1\n\
|
||||
str r2, [sp, 0x4]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bne _0800EFDC\n\
|
||||
_0800EFEE:\n\
|
||||
mov r4, r9\n\
|
||||
cmp r4, 0x6\n\
|
||||
bne _0800F002\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0x1F\n\
|
||||
_0800EFF8:\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0800EFF8\n\
|
||||
_0800F002:\n\
|
||||
mov r7, r8\n\
|
||||
cmp r7, r9\n\
|
||||
blt _0800EFBA\n\
|
||||
_0800F008:\n\
|
||||
mov r0, r9\n\
|
||||
cmp r0, 0x6\n\
|
||||
bne _0800F01C\n\
|
||||
movs r0, 0\n\
|
||||
movs r3, 0xFF\n\
|
||||
_0800F012:\n\
|
||||
strb r0, [r5]\n\
|
||||
adds r5, 0x1\n\
|
||||
subs r3, 0x1\n\
|
||||
cmp r3, 0\n\
|
||||
bge _0800F012\n\
|
||||
_0800F01C:\n\
|
||||
mov r6, r10\n\
|
||||
ldr r1, [sp]\n\
|
||||
cmp r6, r1\n\
|
||||
blt _0800EF9C\n\
|
||||
_0800F024:\n\
|
||||
add sp, 0x24\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\
|
||||
");
|
||||
}
|
||||
#endif
|
||||
|
||||
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src)
|
||||
{
|
||||
struct SpriteSheet dest;
|
||||
void* buffer;
|
||||
|
||||
buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8);
|
||||
if (!buffer)
|
||||
return TRUE;
|
||||
LZ77UnCompWram(src->data, buffer);
|
||||
dest.data = buffer;
|
||||
dest.size = src->size;
|
||||
dest.tag = src->tag;
|
||||
LoadSpriteSheet(&dest);
|
||||
Free(buffer);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src)
|
||||
{
|
||||
struct SpritePalette dest;
|
||||
void* buffer;
|
||||
|
||||
buffer = AllocZeroed(*((u32*)(&src->data[0])) >> 8);
|
||||
if (!buffer)
|
||||
return TRUE;
|
||||
LZ77UnCompWram(src->data, buffer);
|
||||
dest.data = buffer;
|
||||
dest.tag = src->tag;
|
||||
LoadSpritePalette(&dest);
|
||||
Free(buffer);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u32 GetDecompressedDataSize(const u8 *ptr)
|
||||
{
|
||||
u32 ptr32[1];
|
||||
u8 *ptr8 = (u8 *)ptr32;
|
||||
|
||||
ptr8[0] = ptr[1];
|
||||
ptr8[1] = ptr[2];
|
||||
ptr8[2] = ptr[3];
|
||||
ptr8[3] = 0;
|
||||
return ptr32[0];
|
||||
}
|
||||
|
||||
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species)
|
||||
{
|
||||
if (species > NUM_SPECIES)
|
||||
LZ77UnCompWram(gMonFrontPicTable[0].data, buffer);
|
||||
else
|
||||
LZ77UnCompWram(src->data, buffer);
|
||||
}
|
||||
|
||||
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality)
|
||||
{
|
||||
bool8 isFrontPic;
|
||||
|
||||
if (src == &gMonFrontPicTable[species])
|
||||
isFrontPic = TRUE; // frontPic
|
||||
else
|
||||
isFrontPic = FALSE; // backPic
|
||||
LoadSpecialPokePic_DontHandleDeoxys(src, dest, species, personality, isFrontPic);
|
||||
}
|
||||
|
||||
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic)
|
||||
{
|
||||
if (species == SPECIES_UNOWN)
|
||||
{
|
||||
u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C;
|
||||
|
||||
// The other Unowns are separate from Unown A.
|
||||
if (i == 0)
|
||||
i = SPECIES_UNOWN;
|
||||
else
|
||||
i += SPECIES_UNOWN_B - 1;
|
||||
if (!isFrontPic)
|
||||
LZ77UnCompWram(gMonBackPicTable[i].data, dest);
|
||||
else
|
||||
LZ77UnCompWram(gMonFrontPicTable[i].data, dest);
|
||||
}
|
||||
else if (species > NUM_SPECIES) // is species unknown? draw the ? icon
|
||||
{
|
||||
LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
|
||||
}
|
||||
else
|
||||
{
|
||||
LZ77UnCompWram(src->data, dest);
|
||||
}
|
||||
DrawSpindaSpots(species, personality, dest, isFrontPic);
|
||||
}
|
||||
|
|
@ -437,8 +437,8 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
|
|||
{
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid);
|
||||
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
|
||||
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid);
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
|
||||
*speciesLoc = species;
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -683,7 +683,7 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
|
|||
|
||||
spritePalette.data = sub_8098974(itemId, 1);
|
||||
spritePalette.tag = paletteTag;
|
||||
LoadCompressedObjectPalette(&spritePalette);
|
||||
LoadCompressedSpritePalette(&spritePalette);
|
||||
|
||||
CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate));
|
||||
template.tileTag = tilesTag;
|
||||
|
|
@ -714,7 +714,7 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
|
|||
|
||||
spritePalette.data = sub_8098974(itemId, 1);
|
||||
spritePalette.tag = paletteTag;
|
||||
LoadCompressedObjectPalette(&spritePalette);
|
||||
LoadCompressedSpritePalette(&spritePalette);
|
||||
|
||||
CpuCopy16(origTemplate, &template, sizeof(struct SpriteTemplate));
|
||||
template.tileTag = tilesTag;
|
||||
|
|
|
|||
|
|
@ -452,11 +452,11 @@ static bool8 ItemPc_LoadGraphics(void)
|
|||
sStateDataPtr->data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
LoadCompressedObjectPic(&gBagSwapSpriteSheet);
|
||||
LoadCompressedSpriteSheet(&gBagSwapSpriteSheet);
|
||||
sStateDataPtr->data[0]++;
|
||||
break;
|
||||
default:
|
||||
LoadCompressedObjectPalette(&gBagSwapSpritePalette);
|
||||
LoadCompressedSpritePalette(&gBagSwapSpritePalette);
|
||||
sStateDataPtr->data[0] = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -402,7 +402,7 @@ void sub_8146060(void)
|
|||
}
|
||||
if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1)
|
||||
{
|
||||
sub_800F034(&gUnknown_8467F58);
|
||||
LoadCompressedSpriteSheetUsingHeap(&gUnknown_8467F58);
|
||||
LoadSpritePalette(&gUnknown_8467F60[gUnknown_203F3C8->unk_0170->textPal4]);
|
||||
for (; r7 < gUnknown_203F3C8->unk_0000.unk_09; r7++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1613,7 +1613,7 @@ static void CreateNidoranFSprite(u8 taskId)
|
|||
u8 spriteId;
|
||||
|
||||
DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F);
|
||||
sub_800F078(&gUnknown_82373F4);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4);
|
||||
SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0);
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1);
|
||||
gSprites[spriteId].callback = SpriteCallbackDummy;
|
||||
|
|
@ -1635,9 +1635,9 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st
|
|||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]);
|
||||
LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]);
|
||||
LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]);
|
||||
LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[0]);
|
||||
LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[1]);
|
||||
LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[2]);
|
||||
LoadSpritePalette(&sOakSpeech_PikaSpritePal);
|
||||
spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2);
|
||||
gSprites[spriteId].oam.priority = 0;
|
||||
|
|
@ -1654,7 +1654,7 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st
|
|||
gTasks[taskId].data[9] = spriteId;
|
||||
break;
|
||||
case 1:
|
||||
LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet);
|
||||
LoadCompressedSpriteSheet(&sOakSpeech_GrassPlatformSpriteSheet);
|
||||
LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal);
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -469,7 +469,7 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void)
|
|||
sTMCaseDynamicResources->seqId++;
|
||||
break;
|
||||
case 4:
|
||||
LoadCompressedObjectPic(&sTMSpriteSheet);
|
||||
LoadCompressedSpriteSheet(&sTMSpriteSheet);
|
||||
sTMCaseDynamicResources->seqId++;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett
|
|||
else
|
||||
{
|
||||
sCreatingSpriteTemplate.paletteTag = paletteTag;
|
||||
LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -122,7 +122,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett
|
|||
else
|
||||
{
|
||||
sCreatingSpriteTemplate.paletteTag = paletteTag;
|
||||
LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
|
||||
LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[species]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ bool32 sub_815CA40(u32 id, s32 arg1, const struct UnkStruct3 *arg2)
|
|||
|
||||
compObjectPic = *(struct CompressedSpriteSheet*)(arg2->spriteSheet);
|
||||
compObjectPic.size = GetDecompressedDataSize(arg2->spriteSheet->data);
|
||||
gUnknown_203F454->array[id].tileStart = LoadCompressedObjectPic(&compObjectPic);
|
||||
gUnknown_203F454->array[id].tileStart = LoadCompressedSpriteSheet(&compObjectPic);
|
||||
}
|
||||
|
||||
if (gUnknown_203F454->array[id].tileStart == 0xFFFF)
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ void sub_815F564(u16 tilesTag, u16 palTag)
|
|||
struct SpritePalette spritePalette = {gUnknown_847A328};
|
||||
spriteSheet.tag = tilesTag;
|
||||
spritePalette.tag = palTag;
|
||||
LoadCompressedObjectPic(&spriteSheet);
|
||||
LoadCompressedSpriteSheet(&spriteSheet);
|
||||
LoadSpritePalette(&spritePalette);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user