summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/battle_7.c51
-rw-r--r--src/battle/battle_interface.c564
-rw-r--r--src/engine/sprite.c14
-rw-r--r--src/engine/text.c2
-rw-r--r--src/pokemon/pokemon_icon.c3
-rw-r--r--src/rom_8077ABC.c3
6 files changed, 536 insertions, 101 deletions
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index b4c71b9c2..96bdc5cbf 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -20,6 +20,7 @@
#include "text.h"
#include "gba/m4a_internal.h"
#include "ewram.h"
+#include "graphics.h"
extern u8 gBattleBufferA[][0x200];
extern u8 gActiveBank;
@@ -49,19 +50,47 @@ extern const u8 *const gBattleAnims_Special[];
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
extern const struct MonCoords gTrainerFrontPicCoords[];
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
-extern const u8 gSubstituteDollTilemap[];
-extern const u8 gSubstituteDollGfx[];
-extern const u8 gSubstituteDollPal[];
extern const struct CompressedSpriteSheet gUnknown_081FAF24;
extern const struct SpriteTemplate gSpriteTemplate_81FAF34;
-extern const struct CompressedSpriteSheet gUnknown_0820A47C;
-extern const struct CompressedSpriteSheet gUnknown_0820A484;
-extern const struct CompressedSpriteSheet gUnknown_0820A48C[];
-extern const struct CompressedSpriteSheet gUnknown_0820A49C[];
-extern const struct CompressedSpriteSheet gUnknown_0820A4AC;
-extern const struct CompressedSpriteSheet gUnknown_0820A4B4[];
-extern const struct SpritePalette gUnknown_0820A4D4[];
-extern const u8 gUnknown_08D09C48[];
+extern const u8 gSubstituteDollTilemap[]; // graphics.s
+extern const u8 gSubstituteDollGfx[]; // graphics.s
+extern const u8 gSubstituteDollPal[]; // graphics.s
+extern const u8 gUnknown_08D09C48[]; // graphics.s
+
+const struct CompressedSpriteSheet gUnknown_0820A47C =
+{ gBattleWindowLargeGfx, 4096, 0xd6ff };
+
+const struct CompressedSpriteSheet gUnknown_0820A484 =
+{ gBattleWindowSmallGfx, 4096, 0xd701 };
+
+const struct CompressedSpriteSheet gUnknown_0820A48C[] =
+{
+ { gBattleWindowSmall2Gfx, 2048, 0xd6ff },
+ { gBattleWindowSmall2Gfx, 2048, 0xd700 },
+};
+
+const struct CompressedSpriteSheet gUnknown_0820A49C[] =
+{
+ { gBattleWindowSmall3Gfx, 2048, 0xd701 },
+ { gBattleWindowSmall3Gfx, 2048, 0xd702 },
+};
+
+const struct CompressedSpriteSheet gUnknown_0820A4AC =
+{ gBattleWindowLarge2Gfx, 4096, 0xd70b };
+
+const struct CompressedSpriteSheet gUnknown_0820A4B4[] =
+{
+ { gBlankGfxCompressed, 256, 0xd704 },
+ { gBlankGfxCompressed, 288, 0xd705 },
+ { gBlankGfxCompressed, 256, 0xd706 },
+ { gBlankGfxCompressed, 288, 0xd707 },
+};
+
+const struct SpritePalette gUnknown_0820A4D4[] =
+{
+ { gUnknown_08D1212C, 0xD6FF },
+ { gUnknown_08D1214C, 0xD704 },
+};
extern void c3_0802FDF4(u8);
extern void sub_80440EC();
diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c
index 97568d254..12d7f48b2 100644
--- a/src/battle/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -14,6 +14,7 @@
#include "task.h"
#include "text.h"
#include "ewram.h"
+#include "graphics.h"
struct UnknownStruct5
{
@@ -29,6 +30,398 @@ struct UnknownStruct7
u8 filler0[0x180];
};
+static void sub_8043CEC(struct Sprite *sprite);
+static void sub_8045030(struct Sprite *sprite);
+static void sub_804507C(struct Sprite *sprite);
+
+const struct OamData gOamData_820A4E4 =
+{
+ .shape = 1,
+ .size = 3,
+ .priority = 1,
+};
+
+const struct SpriteTemplate gSpriteTemplates_820A4EC[] =
+{
+ {
+ .tileTag = 55039,
+ .paletteTag = 55039,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ },
+ {
+ .tileTag = 55040,
+ .paletteTag = 55039,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ },
+};
+
+const struct SpriteTemplate gSpriteTemplates_820A51C[] =
+{
+ {
+ .tileTag = 55041,
+ .paletteTag = 55039,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ },
+ {
+ .tileTag = 55042,
+ .paletteTag = 55039,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ },
+};
+
+const struct SpriteTemplate gSpriteTemplate_820A54C =
+{
+ .tileTag = 55051,
+ .paletteTag = 55039,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct OamData gOamData_820A564 =
+{
+ .shape = 1,
+ .size = 1,
+ .priority = 1,
+};
+
+const struct SpriteTemplate gSpriteTemplates_820A56C[] =
+{
+ {
+ .tileTag = 55044,
+ .paletteTag = 55044,
+ .oam = &gOamData_820A564,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8043CEC,
+ },
+ {
+ .tileTag = 55045,
+ .paletteTag = 55044,
+ .oam = &gOamData_820A564,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8043CEC,
+ },
+ {
+ .tileTag = 55046,
+ .paletteTag = 55044,
+ .oam = &gOamData_820A564,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8043CEC,
+ },
+ {
+ .tileTag = 55047,
+ .paletteTag = 55044,
+ .oam = &gOamData_820A564,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8043CEC,
+ },
+};
+
+const struct Subsprite gSubspriteTable_820A5CC[] =
+{
+ { .x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 3 }, // size := 64x32
+ { .x = 48, .y = 0, .shape = ST_OAM_SQUARE, .priority = 1, .tileOffset = 32, .size = 2 }, // size := 32x32
+ { .x = -16, .y = 32, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 48, .size = 1 }, // size := 32x8
+ { .x = 16, .y = 32, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 52, .size = 1 }, // size := 32x8
+ { .x = 48, .y = 32, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 56, .size = 1 }, // size := 32x8
+};
+
+const struct Subsprite gSubspriteTable_820A5F4[] =
+{
+ { .x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 64, .size = 3 }, // size := 64x32
+ { .x = 48, .y = 0, .shape = ST_OAM_SQUARE, .priority = 1, .tileOffset = 96, .size = 2 }, // size := 32x32
+ { .x = -16, .y = 32, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset =112, .size = 1 }, // size := 32x8
+ { .x = 16, .y = 32, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset =116, .size = 1 }, // size := 32x8
+ { .x = 48, .y = 32, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset =120, .size = 1 }, // size := 32x8
+};
+
+const struct Subsprite gSubspriteTable_820A61C[] =
+{
+ { .x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 3 }, // size := 64x32
+ { .x = 48, .y = 0, .shape = ST_OAM_SQUARE, .priority = 1, .tileOffset = 32, .size = 2 }, // size := 32x32
+};
+
+const struct Subsprite gSubspriteTable_820A62C[] =
+{
+ { .x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 3 }, // size := 64x32
+ { .x = 48, .y = 0, .shape = ST_OAM_SQUARE, .priority = 1, .tileOffset = 32, .size = 2 }, // size := 32x32
+};
+
+const struct Subsprite gSubspriteTable_820A63C[] =
+{
+ { .x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 1 }, // size := 32x8
+ { .x = 16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 4, .size = 1 }, // size := 32x8
+};
+
+const struct Subsprite gSubspriteTable_820A64C[] =
+{
+ { .x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 1 }, // size := 32x8
+ { .x = 16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 4, .size = 1 }, // size := 32x8
+ { .x = -32, .y = 0, .shape = ST_OAM_SQUARE, .priority = 1, .tileOffset = 8, .size = 0 }, // size := 8x8
+};
+
+const struct SubspriteTable gSubspriteTables_unreferenced[] =
+{
+ { ARRAY_COUNT(gSubspriteTable_820A5CC), gSubspriteTable_820A5CC },
+ { ARRAY_COUNT(gSubspriteTable_820A61C), gSubspriteTable_820A61C },
+ { ARRAY_COUNT(gSubspriteTable_820A5F4), gSubspriteTable_820A5F4 },
+ { ARRAY_COUNT(gSubspriteTable_820A62C), gSubspriteTable_820A62C },
+};
+
+const struct SubspriteTable gSubspriteTables_820A684[] =
+{
+ { ARRAY_COUNT(gSubspriteTable_820A63C), gSubspriteTable_820A63C },
+ { ARRAY_COUNT(gSubspriteTable_820A64C), gSubspriteTable_820A64C },
+};
+
+const struct Subsprite gSubspriteTable_820A694[] =
+{
+ { .x = -96, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 1 }, // size := 32x8
+ { .x = -64, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 4, .size = 1 }, // size := 32x8
+ { .x = -32, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 8, .size = 1 }, // size := 32x8
+ { .x = 0, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 12, .size = 1 }, // size := 32x8
+};
+
+const struct Subsprite gSubspriteTable_820A6B4[] =
+{
+ { .x = -96, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 0, .size = 1 }, // size := 32x8
+ { .x = -64, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 4, .size = 1 }, // size := 32x8
+ { .x = -32, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 8, .size = 1 }, // size := 32x8
+ { .x = 0, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 8, .size = 1 }, // size := 32x8
+ { .x = 32, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 8, .size = 1 }, // size := 32x8
+ { .x = 64, .y = 0, .shape = ST_OAM_H_RECTANGLE, .priority = 1, .tileOffset = 12, .size = 1 }, // size := 32x8
+};
+
+const struct SubspriteTable gSubspriteTables_820A6E4[] =
+{
+ { ARRAY_COUNT(gSubspriteTable_820A694), gSubspriteTable_820A694 },
+};
+
+const struct SubspriteTable gSubspriteTables_820A6EC[] =
+{
+ { ARRAY_COUNT(gSubspriteTable_820A6B4), gSubspriteTable_820A6B4 },
+};
+
+// unused dakuten/handakuten tiles
+const u8 gUnusedDakuten[] = INCBIN_U8("graphics/unused/dakuten.4bpp");
+
+const struct CompressedSpriteSheet gUnknown_0820A754[] =
+{
+ { gBattleGfx_BallStatusBar, 512, 0xd70c },
+ { gBattleGfx_BallStatusBar, 512, 0xd70d },
+};
+
+const struct SpritePalette gUnknown_0820A764[] =
+{
+ { gUnknown_08D1212C, 0xd710 },
+ { gUnknown_08D1212C, 0xd711 },
+};
+
+const struct SpritePalette gUnknown_0820A774[] =
+{
+ { gUnknown_08D1214C, 0xd712 },
+ { gUnknown_08D1214C, 0xd713 },
+};
+
+const struct CompressedSpriteSheet gUnknown_0820A784[] =
+{
+ { Tiles_D129AC, 0x80, 0xd714 },
+ { Tiles_D129AC, 0x80, 0xd715 },
+};
+
+const struct OamData gOamData_820A794 =
+{
+ .shape = 1,
+ .size = 3,
+ .priority = 1,
+};
+
+const struct OamData gOamData_820A79C =
+{
+ .shape = 0,
+ .size = 0,
+ .priority = 1,
+};
+
+const struct SpriteTemplate gSpriteTemplate_820A7A4 =
+{
+ .tileTag = 55052,
+ .paletteTag = 55056,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8045030,
+};
+
+const struct SpriteTemplate gSpriteTemplate_820A7BC =
+{
+ .tileTag = 55053,
+ .paletteTag = 55057,
+ .oam = &gOamData_820A4E4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8045030,
+};
+
+const struct SpriteTemplate gSpriteTemplate_820A7D4 =
+{
+ .tileTag = 55060,
+ .paletteTag = 55058,
+ .oam = &gOamData_820A79C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_804507C,
+};
+
+const struct SpriteTemplate gSpriteTemplate_820A7EC =
+{
+ .tileTag = 55061,
+ .paletteTag = 55059,
+ .oam = &gOamData_820A79C,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_804507C,
+};
+
+TileData4bpp *const gUnknown_0820A804[2] =
+{
+ &OBJ_VRAM0_TEMP[74],
+ &OBJ_VRAM0_TEMP[75],
+};
+
+TileData4bpp *const gUnknown_0820A80C[2] =
+{
+ &OBJ_VRAM0_TEMP[41],
+ &OBJ_VRAM0_TEMP[42],
+};
+
+TileData4bpp *const gUnknown_0820A814[2] =
+{
+ &OBJ_VRAM0_TEMP[42],
+ &OBJ_VRAM0_TEMP[43],
+};
+
+const u8 gUnknown_0820A81C[] = __("{COLOR DARK_GREY}{HIGHLIGHT RED} ");
+
+TileData4bpp *const gUnknown_0820A83C[3] =
+{
+ &OBJ_VRAM0_TEMP[31],
+ &OBJ_VRAM0_TEMP[88],
+ &OBJ_VRAM0_TEMP[89],
+};
+
+TileData4bpp *const gUnknown_0820A848[3] =
+{
+ &OBJ_VRAM0_TEMP[22],
+ &OBJ_VRAM0_TEMP[23],
+ &OBJ_VRAM0_TEMP[48],
+};
+
+TileData4bpp *const gUnknown_0820A854[2] =
+{
+ &OBJ_VRAM0_TEMP[90],
+ &OBJ_VRAM0_TEMP[91],
+};
+
+TileData4bpp *const gUnknown_0820A85C[2] =
+{
+ &OBJ_VRAM0_TEMP[49],
+ &OBJ_VRAM0_TEMP[50],
+};
+
+const u8 gUnknown_0820A864[] = _("{COLOR DARK_GREY}{HIGHLIGHT RED} /");
+
+TileData4bpp *const gUnknown_0820A87C[6] =
+{
+ &OBJ_VRAM0_TEMP[0],
+ &OBJ_VRAM0_TEMP[1],
+ &OBJ_VRAM0_TEMP[2],
+ &OBJ_VRAM0_TEMP[3],
+ &OBJ_VRAM0_TEMP[4],
+ &OBJ_VRAM0_TEMP[5],
+};
+
+TileData4bpp *const gUnknown_0820A894[2] =
+{
+ &OBJ_VRAM0_TEMP[6],
+ &OBJ_VRAM0_TEMP[7],
+};
+
+const u8 gUnknown_0820A89C[] = __("{COLOR DARK_GREY}{HIGHLIGHT TRANSPARENT} ");
+const u8 gUnknown_0820A8B0[] = _("{HIGHLIGHT RED}");
+
+TileData4bpp *const gUnknown_0820A8B4[10] =
+{
+ &OBJ_VRAM0_TEMP[ 2],
+ &OBJ_VRAM0_TEMP[ 3],
+ &OBJ_VRAM0_TEMP[ 4],
+ &OBJ_VRAM0_TEMP[ 5],
+ &OBJ_VRAM0_TEMP[ 6],
+ &OBJ_VRAM0_TEMP[ 7],
+ &OBJ_VRAM0_TEMP[64],
+ &OBJ_VRAM0_TEMP[65],
+ &OBJ_VRAM0_TEMP[66],
+ &OBJ_VRAM0_TEMP[67],
+};
+
+TileData4bpp *const gUnknown_0820A8DC[10] =
+{
+ &OBJ_VRAM0_TEMP[ 1],
+ &OBJ_VRAM0_TEMP[ 2],
+ &OBJ_VRAM0_TEMP[ 3],
+ &OBJ_VRAM0_TEMP[ 4],
+ &OBJ_VRAM0_TEMP[ 5],
+ &OBJ_VRAM0_TEMP[ 6],
+ &OBJ_VRAM0_TEMP[ 7],
+ &OBJ_VRAM0_TEMP[32],
+ &OBJ_VRAM0_TEMP[33],
+ &OBJ_VRAM0_TEMP[34],
+};
+
+TileData4bpp *const gUnknown_0820A904[10] =
+{
+ &OBJ_VRAM0_TEMP[ 2],
+ &OBJ_VRAM0_TEMP[ 3],
+ &OBJ_VRAM0_TEMP[ 4],
+ &OBJ_VRAM0_TEMP[ 5],
+ &OBJ_VRAM0_TEMP[ 6],
+ &OBJ_VRAM0_TEMP[ 7],
+ &OBJ_VRAM0_TEMP[32],
+ &OBJ_VRAM0_TEMP[33],
+ &OBJ_VRAM0_TEMP[34],
+ &OBJ_VRAM0_TEMP[35],
+};
+
extern u8 gDisplayedStringBattle[];
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
@@ -37,39 +430,11 @@ extern u8 gHealthboxIDs[];
extern u16 gBattleTypeFlags;
-extern const struct SpriteTemplate gSpriteTemplate_820A4EC[];
-extern const struct SpriteTemplate gSpriteTemplate_820A51C[];
-extern const struct SpriteTemplate gSpriteTemplate_820A54C;
-extern const struct SpriteTemplate gSpriteTemplate_820A56C[];
-extern const struct SubspriteTable gSubspriteTables_820A684[];
-extern const struct SubspriteTable gSubspriteTables_820A6E4[];
-extern const struct SubspriteTable gSubspriteTables_820A6EC[];
-extern const struct SpriteSheet gUnknown_0820A754[];
-extern const struct SpritePalette gUnknown_0820A764[];
-extern const struct SpritePalette gUnknown_0820A774[];
-extern const struct SpriteSheet gUnknown_0820A784[];
-extern const struct SpriteTemplate gSpriteTemplate_820A7A4[];
-extern const struct SpriteTemplate gSpriteTemplate_820A7D4[];
-extern void *const gUnknown_0820A804[];
-extern void *const gUnknown_0820A80C[];
-extern void *const gUnknown_0820A814[];
-extern void *const gUnknown_0820A83C[];
-extern void *const gUnknown_0820A848[];
-extern void *const gUnknown_0820A854[];
-extern void *const gUnknown_0820A85C[];
-extern void *const gUnknown_0820A87C[];
-extern void *const gUnknown_0820A894[];
-extern void *const gUnknown_0820A8B4[];
-extern void *const gUnknown_0820A8DC[];
-extern void *const gUnknown_0820A904[];
-extern const u8 gUnknown_0820A81C[];
-extern const u8 gUnknown_0820A864[];
-extern const u8 gUnknown_0820A89C[];
-extern const u8 gUnknown_0820A8B0[];
extern const u8 BattleText_SafariBalls[];
extern const u8 BattleText_SafariBallsLeft[];
extern const u8 BattleText_HighlightRed[];
extern const u8 gUnknown_08D1216C[][32];
+// extern const TileData4bpp gUnknown_08D1216C[]; // graphics
extern const u16 gBattleInterfaceStatusIcons_DynPal[];
@@ -79,6 +444,7 @@ extern const u16 gBattleInterfaceStatusIcons_DynPal[];
static void sub_8043D5C(struct Sprite *);
static const void *sub_8043CDC(u8);
+// static const TileData4bpp *sub_8043CDC(u8);
static void sub_8044210(u8, s16, u8);
static void draw_status_ailment_maybe(u8);
extern void sub_8045180(struct Sprite *);
@@ -421,8 +787,8 @@ u8 battle_make_oam_normal_battle(u8 a)
{
if (GetBankSide(a) == 0)
{
- spriteId1 = CreateSprite(&gSpriteTemplate_820A4EC[0], 240, 160, 1);
- spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A4EC[0], 240, 160, 1);
+ spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[0], 240, 160, 1);
+ spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[0], 240, 160, 1);
gSprites[spriteId1].oam.shape = 0;
gSprites[spriteId2].oam.shape = 0;
@@ -430,8 +796,8 @@ u8 battle_make_oam_normal_battle(u8 a)
}
else
{
- spriteId1 = CreateSprite(&gSpriteTemplate_820A51C[0], 240, 160, 1);
- spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A51C[0], 240, 160, 1);
+ spriteId1 = CreateSprite(&gSpriteTemplates_820A51C[0], 240, 160, 1);
+ spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A51C[0], 240, 160, 1);
gSprites[spriteId2].oam.tileNum += 32;
sp0 = 2;
@@ -447,8 +813,8 @@ u8 battle_make_oam_normal_battle(u8 a)
{
if (GetBankSide(a) == 0)
{
- spriteId1 = CreateSprite(&gSpriteTemplate_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1);
- spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1);
+ spriteId1 = CreateSprite(&gSpriteTemplates_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1);
+ spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A4EC[GetBankIdentity(a) / 2], 240, 160, 1);
gSprites[spriteId1].oam.affineParam = spriteId2;
gSprites[spriteId2].data[5] = spriteId1;
@@ -459,8 +825,8 @@ u8 battle_make_oam_normal_battle(u8 a)
//_08043ACC
else
{
- spriteId1 = CreateSprite(&gSpriteTemplate_820A51C[GetBankIdentity(a) / 2], 240, 160, 1);
- spriteId2 = CreateSpriteAtEnd(&gSpriteTemplate_820A51C[GetBankIdentity(a) / 2], 240, 160, 1);
+ spriteId1 = CreateSprite(&gSpriteTemplates_820A51C[GetBankIdentity(a) / 2], 240, 160, 1);
+ spriteId2 = CreateSpriteAtEnd(&gSpriteTemplates_820A51C[GetBankIdentity(a) / 2], 240, 160, 1);
gSprites[spriteId1].oam.affineParam = spriteId2;
gSprites[spriteId2].data[5] = spriteId1;
@@ -472,12 +838,13 @@ u8 battle_make_oam_normal_battle(u8 a)
}
//_08043B50
- spriteId3 = CreateSpriteAtEnd(&gSpriteTemplate_820A56C[gBanksBySide[a]], 140, 60, 0);
+ spriteId3 = CreateSpriteAtEnd(&gSpriteTemplates_820A56C[gBanksBySide[a]], 140, 60, 0);
sprite = &gSprites[spriteId3];
SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBankSide(a)]);
sprite->subspriteMode = 2;
sprite->oam.priority = 1;
- CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + sprite->oam.tileNum * 32, 64);
+ // CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + sprite->oam.tileNum * 32, 64);
+ CpuCopy32(sub_8043CDC(1), &OBJ_VRAM0_TEMP[sprite->oam.tileNum], 64);
gSprites[spriteId1].data[5] = spriteId3;
gSprites[spriteId1].data[6] = a;
@@ -505,11 +872,13 @@ u8 battle_make_oam_safari_battle(void)
}
static const void *sub_8043CDC(u8 a)
+// static const TileData4bpp *sub_8043CDC(u8 a)
{
return gUnknown_08D1216C[a];
+ // return &gUnknown_08D1216C[a];
}
-void sub_8043CEC(struct Sprite *sprite)
+static void sub_8043CEC(struct Sprite *sprite)
{
u8 r5 = sprite->data[5];
@@ -654,7 +1023,8 @@ void sub_8043F44(u8 a)
static void sub_8043FC0(u8 a, u8 b)
{
u8 str[30];
- void *const *r7;
+ // void *const *r7;
+ TileData4bpp *const *r7;
u8 *ptr;
s32 i;
s32 two;
@@ -704,7 +1074,7 @@ static void sub_8043FC0(u8 a, u8 b)
two = 2;
for (i = 0; i < two; i++)
- CpuCopy32((void *)(ewram0_9(1) + i * 64), r7[i] + gSprites[a].oam.tileNum * 32, 32);
+ CpuCopy32((void *)(ewram0_9(1) + i * 64), r7[i] + gSprites[a].oam.tileNum, 32);
}
#ifdef NONMATCHING
@@ -909,7 +1279,8 @@ static void sub_8044210(u8 a, s16 b, u8 c)
{
u8 str[0x14];
u8 *ptr;
- void *const *r7;
+ // void *const *r7;
+ TileData4bpp *const *r7;
int r10;
int r4;
int i;
@@ -935,14 +1306,17 @@ static void sub_8044210(u8 a, s16 b, u8 c)
sub_8003504(ptr, b, 0xF, 1);
if (GetBankSide(r4) == 0)
{
- CpuCopy32(sub_8043CDC(0x74), OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32, 32);
+ int r2 = 52;
+ // CpuCopy32(sub_8043CDC(0x74), OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32, 32);
+ CpuCopy32(sub_8043CDC(0x74), &OBJ_VRAM0_TEMP[gSprites[a].oam.tileNum + r2], 32);
}
}
r4 = gSprites[a].data[5];
sub_80034D4(ewram0_9(0), str);
for (i = 0; i < r10; i++)
{
- CpuCopy32((void *)(ewram0_9(1) + i * 0x40), r7[i] + gSprites[r4].oam.tileNum * 32, 0x20);
+ // CpuCopy32((void *)(ewram0_9(1) + i * 0x40), r7[i] + gSprites[r4].oam.tileNum * 32, 32);
+ CpuCopy32((void *)(ewram0_9(1) + i * 0x40), r7[i] + gSprites[r4].oam.tileNum, 32);
}
}
@@ -1304,15 +1678,19 @@ void sub_804454C(void)
{
spriteId = gSprites[gHealthboxIDs[i]].data[5];
- CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
+ // CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
+ CpuFill32(0, &OBJ_VRAM0_TEMP[gSprites[spriteId].oam.tileNum], 256);
sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), 0);
sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1);
}
else
{
+ int temp;
draw_status_ailment_maybe(gHealthboxIDs[i]);
sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlePartyID[i]], 5);
- CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32);
+ temp = 52;
+ // CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32);
+ CpuCopy32(sub_8043CDC(0x75), &OBJ_VRAM0_TEMP[gSprites[gHealthboxIDs[i]].oam.tileNum + temp], 32);
}
}
else
@@ -1327,7 +1705,8 @@ void sub_804454C(void)
{
spriteId = gSprites[gHealthboxIDs[i]].data[5];
- CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
+ // CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
+ CpuFill32(0, &OBJ_VRAM0_TEMP[gSprites[spriteId].oam.tileNum], 256);
sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), 0);
sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1);
}
@@ -2269,7 +2648,7 @@ static void sub_8044F70(u8 taskId)
}
}
-void sub_8045030(struct Sprite *sprite)
+static void sub_8045030(struct Sprite *sprite)
{
if (sprite->pos2.x != 0)
sprite->pos2.x += sprite->data[0];
@@ -2285,7 +2664,7 @@ static void sub_8045048(struct Sprite *sprite)
sprite->data[1] &= 0xF;
}
-void sub_804507C(struct Sprite *sprite)
+static void sub_804507C(struct Sprite *sprite)
{
u8 r3;
u16 r2;
@@ -2368,7 +2747,8 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
u8 *ptr;
s32 i;
s32 _7;
- u8 *const *r1;
+ TileData4bpp *const *r1;
+ TileData4bpp *tileDataSrc;
StringCopy(gDisplayedStringBattle, gUnknown_0820A8B0);
GetMonData(pkmn, MON_DATA_NICKNAME, nickname);
@@ -2443,42 +2823,44 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
}
}
+ tileDataSrc = (TileData4bpp *) ptr;
+
for (; i < _7; i++)
- CpuCopy32(sub_8043CDC(0x2B), ptr + 64 * i, 32);
+ CpuCopy32(sub_8043CDC(0x2B), tileDataSrc + 2 * i, 32);
if (GetBankSide(gSprites[a].data[6]) == 0 && !IsDoubleBattle())
{
- r1 = (u8 *const *)gUnknown_0820A8B4;
+ r1 = gUnknown_0820A8B4;
for (i = 0; i < _7; i++)
{
- u8 *r4 = r1[i];
+ TileData4bpp *tileDataDest = r1[i];
- r4 += gSprites[a].oam.tileNum * 32;
- CpuCopy32(ptr, r4, 32);
- ptr += 32;
+ tileDataDest += gSprites[a].oam.tileNum;
+ CpuCopy32(tileDataSrc, tileDataDest, 32);
+ tileDataSrc++;
- r4 += 0x100;
- CpuCopy32(ptr, r4, 32);
- ptr += 32;
+ tileDataDest += 8;
+ CpuCopy32(tileDataSrc, tileDataDest, 32);
+ tileDataSrc++;
}
}
else
{
if (GetBankSide(gSprites[a].data[6]) == 0)
- r1 = (u8 *const *)gUnknown_0820A904;
+ r1 = gUnknown_0820A904;
else
- r1 = (u8 *const *)gUnknown_0820A8DC;
+ r1 = gUnknown_0820A8DC;
for (i = 0; i < _7; i++)
{
- u8 *r4 = r1[i];
+ TileData4bpp *tileDataDest = r1[i];
- r4 += gSprites[a].oam.tileNum * 32;
- CpuCopy32(ptr, r4, 32);
- ptr += 32;
+ tileDataDest += gSprites[a].oam.tileNum;
+ CpuCopy32(tileDataSrc, tileDataDest, 32);
+ tileDataSrc++;
- r4 += 0x100;
- CpuCopy32(ptr, r4, 32);
- ptr += 32;
+ tileDataDest += 8;
+ CpuCopy32(tileDataSrc, tileDataDest, 32);
+ tileDataSrc++;
}
}
}
@@ -2498,11 +2880,14 @@ static void sub_8045458(u8 a, u8 b)
u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES);
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0)
{
+ int temp = 8;
r4 = gSprites[a].data[5];
if (b != 0)
- CpuCopy32(sub_8043CDC(0x46), OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
+ // CpuCopy32(sub_8043CDC(0x46), OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
+ CpuCopy32(sub_8043CDC(0x46), &OBJ_VRAM0_TEMP[gSprites[r4].oam.tileNum + temp], 32);
else
- CpuFill32(0, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
+ // CpuFill32(0, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
+ CpuFill32(0, &OBJ_VRAM0_TEMP[gSprites[r4].oam.tileNum + temp], 32);
}
}
}
@@ -2563,10 +2948,12 @@ static void draw_status_ailment_maybe(u8 a)
r6 = sub_8043CDC(0x27);
for (i = 0; i < 3; i++)
- CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32);
+ // CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32);
+ CpuCopy32(r6, &OBJ_VRAM0_TEMP[gSprites[a].oam.tileNum + r8 + i], 32);
if (!ewram17800[r7].unk0_4)
- CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64);
+ // CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64);
+ CpuCopy32(sub_8043CDC(1), &OBJ_VRAM0_TEMP[gSprites[r10].oam.tileNum], 64);
sub_8045458(a, 1);
return;
@@ -2577,13 +2964,17 @@ static void draw_status_ailment_maybe(u8 a)
// I don't like writing the array index like this, but I can't get it to match otherwise.
FillPalette(r0[gBattleInterfaceStatusIcons_DynPal], r4_2 + 0x100, 2);
CpuCopy16(gPlttBufferUnfaded + 0x100 + r4_2, (void *)(OBJ_PLTT + r4_2 * 2), 2);
- CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96);
+ // CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96);
+ CpuCopy32(r6, OBJ_VRAM0_TEMP[gSprites[a].oam.tileNum + r8], 96);
if (IsDoubleBattle() == TRUE || GetBankSide(r7) == TRUE)
{
if (!ewram17800[r7].unk0_4)
{
- CpuCopy32(sub_8043CDC(0), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 32);
- CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32, 32);
+ // CpuCopy32(sub_8043CDC(0), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 32);
+ // CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32, 32);
+ int temp = 1;
+ CpuCopy32(sub_8043CDC(0), OBJ_VRAM0_TEMP[gSprites[r10].oam.tileNum], 32);
+ CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0_TEMP[gSprites[r10].oam.tileNum + temp], 32);
}
}
sub_8045458(a, 0);
@@ -2664,11 +3055,13 @@ static void sub_80458B0(u8 a)
CpuCopy32(sub_8043CDC(0x2B), r6 + i * 64, 32);
for (r7 = 3; r7 < 3 + r8; r7++)
{
- addr = OBJ_VRAM0 + (gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
+ // addr = OBJ_VRAM0 + (gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
+ addr = OBJ_VRAM0_TEMP[gSprites[a].oam.tileNum + MACRO1(r7)];
CpuCopy32(r6, addr, 32);
r6 += 32;
- addr = OBJ_VRAM0 + (8 + gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
+ // addr = OBJ_VRAM0 + (8 + gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
+ addr = OBJ_VRAM0_TEMP[8 + gSprites[a].oam.tileNum + MACRO1(r7)];
CpuCopy32(r6, addr, 32);
r6 += 32;
}
@@ -2692,7 +3085,8 @@ static void sub_8045998(u8 a)
r7 = ewram520_2 + status * 0x180 + 32;
for (i = 6; i < 6 + r6; i++)
{
- CpuCopy32(r7, OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x18 + MACRO1(i)) * 32, 32);
+ // CpuCopy32(r7, OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x18 + MACRO1(i)) * 32, 32);
+ CpuCopy32(r7, OBJ_VRAM0_TEMP[gSprites[a].oam.tileNum + 24 + MACRO1(i)], 32);
r7 += 64;
}
}
@@ -2816,9 +3210,11 @@ static void sub_8045D58(u8 a, u8 b)
{
u8 r4 = gSprites[ewram17850[a].unk0].data[5];
if (i < 2)
- CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 2 + i) * 32, 32);
+ // CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 2 + i) * 32, 32);
+ CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0_TEMP[gSprites[r4].oam.tileNum + 2 + i], 32);
else
- CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + 64 + (i + gSprites[r4].oam.tileNum) * 32, 32);
+ // CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + 64 + (i + gSprites[r4].oam.tileNum) * 32, 32);
+ CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0_TEMP[i + gSprites[r4].oam.tileNum + 2], 32);
}
break;
case 1:
@@ -2832,9 +3228,11 @@ static void sub_8045D58(u8 a, u8 b)
for (i = 0; i < 8; i++)
{
if (i < 4)
- CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[ewram17850[a].unk0].oam.tileNum + 0x24 + i) * 32, 32);
+ // CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[ewram17850[a].unk0].oam.tileNum + 0x24 + i) * 32, 32);
+ CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0_TEMP[gSprites[ewram17850[a].unk0].oam.tileNum + 36 + i], 32);
else
- CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + 0xB80 + (i + gSprites[ewram17850[a].unk0].oam.tileNum) * 32, 32);
+ // CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + 0xB80 + (i + gSprites[ewram17850[a].unk0].oam.tileNum) * 32, 32);
+ CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0_TEMP[i + gSprites[ewram17850[a].unk0].oam.tileNum + 92], 32);
}
break;
}
diff --git a/src/engine/sprite.c b/src/engine/sprite.c
index cf35e12a3..d13253e19 100644
--- a/src/engine/sprite.c
+++ b/src/engine/sprite.c
@@ -29,7 +29,7 @@
struct SpriteCopyRequest
{
const u8 *src;
- u8 *dest;
+ u8 *dest; // to TileData4bpp *?
u16 size;
};
@@ -818,7 +818,8 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct Spr
if (gSpriteCopyRequestCount < MAX_SPRITE_COPY_REQUESTS)
{
gSpriteCopyRequests[gSpriteCopyRequestCount].src = images[index].data;
- gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
+ // gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0 + TILE_SIZE_4BPP * tileNum;
+ gSpriteCopyRequests[gSpriteCopyRequestCount].dest = OBJ_VRAM0_TEMP[tileNum];
gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size;
gSpriteCopyRequestCount++;
}
@@ -1465,7 +1466,8 @@ u16 LoadSpriteSheet(const struct SpriteSheet *sheet)
else
{
AllocSpriteTileRange(sheet->tag, (u16)tileStart, sheet->size / TILE_SIZE_4BPP);
- CpuCopy16(sheet->data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ // CpuCopy16(sheet->data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ CpuCopy16(sheet->data, &OBJ_VRAM0_TEMP[tileStart], sheet->size);
return (u16)tileStart;
}
}
@@ -1503,7 +1505,8 @@ void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet)
{
const u8 *data = sheet->data;
u16 tileStart = GetSpriteTileStartByTag(sheet->tag);
- CpuCopy16(data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ // CpuCopy16(data, OBJ_VRAM0 + TILE_SIZE_4BPP * tileStart, sheet->size);
+ CpuCopy16(data, OBJ_VRAM0_TEMP[tileStart], sheet->size);
}
void LoadTilesForSpriteSheets(struct SpriteSheet *sheets)
@@ -1589,7 +1592,8 @@ void RequestSpriteSheetCopy(const struct SpriteSheet *sheet)
{
const u8 *data = sheet->data;
u16 tileStart = GetSpriteTileStartByTag(sheet->tag);
- RequestSpriteCopy(data, OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size);
+ // RequestSpriteCopy(data, OBJ_VRAM0 + tileStart * TILE_SIZE_4BPP, sheet->size);
+ RequestSpriteCopy(data, OBJ_VRAM0_TEMP[tileStart], sheet->size);
}
u16 LoadSpriteSheetDeferred(const struct SpriteSheet *sheet)
diff --git a/src/engine/text.c b/src/engine/text.c
index fe18a6d79..5d2abe785 100644
--- a/src/engine/text.c
+++ b/src/engine/text.c
@@ -552,6 +552,7 @@ const struct WindowTemplate gWindowTemplate_81E6C74 =
30, // width
20, // height
OBJ_VRAM0, // tile data
+ // OBJ_VRAM0_TEMP, // tile data
NULL, // tilemap
};
@@ -1686,6 +1687,7 @@ const struct WindowTemplate gWindowTemplate_81E725C =
30, // width
20, // height
OBJ_VRAM0, // tile data
+ // OBJ_VRAM0_TEMP, // tile data
NULL, // tilemap
};
diff --git a/src/pokemon/pokemon_icon.c b/src/pokemon/pokemon_icon.c
index b1b462761..9ff4d0dfa 100644
--- a/src/pokemon/pokemon_icon.c
+++ b/src/pokemon/pokemon_icon.c
@@ -1219,7 +1219,8 @@ u8 UpdateMonIconFrame(struct Sprite *sprite)
// because sprite->images is a struct def, it has to be casted to (u8 *) before any
// arithmetic can be performed.
(u8 *)sprite->images + (sSpriteImageSizes[sprite->oam.shape][sprite->oam.size] * frame),
- OBJ_VRAM0 + sprite->oam.tileNum * TILE_SIZE_4BPP,
+ // OBJ_VRAM0 + sprite->oam.tileNum * TILE_SIZE_4BPP,
+ OBJ_VRAM0_TEMP[sprite->oam.tileNum],
sSpriteImageSizes[sprite->oam.shape][sprite->oam.size]);
{
register u8 duration asm("r0") = sprite->anims[sprite->animNum][sprite->animCmdIndex].frame.duration;
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 11a71155d..0f5eaf40e 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -1950,7 +1950,8 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
);
}
- DmaCopy32Defvars(3, (void *)0x2000000, (void *)(VRAM + 0x10000 + (sheet * 0x20)), 0x800);
+ // DmaCopy32Defvars(3, (void *)0x2000000, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800);
+ DmaCopy32Defvars(3, (void *)0x2000000, (void *) &OBJ_VRAM0_TEMP[sheet], 0x800);
if (!isBackpic)
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonFrontPicCoords[species].y_offset, a6);