finished decompress (1 failed attempt)

This commit is contained in:
jiangzhengwenjz 2019-06-28 01:56:26 +08:00
parent fd543fd799
commit f52d439a85
43 changed files with 778 additions and 1006 deletions

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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
View 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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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++)
{

View File

@ -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++)
{

View File

@ -469,7 +469,7 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void)
sTMCaseDynamicResources->seqId++;
break;
case 4:
LoadCompressedObjectPic(&sTMSpriteSheet);
LoadCompressedSpriteSheet(&sTMSpriteSheet);
sTMCaseDynamicResources->seqId++;
break;
default:

View File

@ -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]);
}
}
}

View File

@ -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)

View File

@ -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);
}