Added & back to the tile8_mem in affine_background_init() and changed memcpy16 to 32
This commit is contained in:
@@ -129,4 +129,13 @@ void update_text_rect_to_right_align_num(Rect* rect, int num, int overflow_direc
|
|||||||
*/
|
*/
|
||||||
void memcpy16_tile8_with_palette_offset(u16* dst, const u16* src, uint hwcount, u8 palette_offset);
|
void memcpy16_tile8_with_palette_offset(u16* dst, const u16* src, uint hwcount, u8 palette_offset);
|
||||||
|
|
||||||
|
/*Copies 32 bit data from src to dst, applying a palette offset to the data.
|
||||||
|
* This is intended solely for use with tile8/8bpp data for dst and src.
|
||||||
|
* The palette offset allows the tiles to use a different location in the palette
|
||||||
|
* memory
|
||||||
|
* This is useful because grit always loads the palette to the beginning of
|
||||||
|
* pal_bg_mem[]
|
||||||
|
*/
|
||||||
|
void memcpy32_tile8_with_palette_offset(u32* dst, const u32* src, uint hwcount, u8 palette_offset);
|
||||||
|
|
||||||
#endif //GRAPHIC_UTILS_H
|
#endif //GRAPHIC_UTILS_H
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ AFF_SRC_EX asx = {32<<8, 64<<8, 120, 80, 0x0100, 0x0100, 0};
|
|||||||
|
|
||||||
void affine_background_init()
|
void affine_background_init()
|
||||||
{
|
{
|
||||||
memcpy16_tile8_with_palette_offset((u16*)tile8_mem[AFFINE_BG_CBB], (const u16*)affine_background_gfxTiles, affine_background_gfxTilesLen/2, AFFINE_BG_PB);
|
memcpy32_tile8_with_palette_offset((u32*)&tile8_mem[AFFINE_BG_CBB], (const u32*)affine_background_gfxTiles, affine_background_gfxTilesLen/4, AFFINE_BG_PB);
|
||||||
GRIT_CPY(&se_mem[AFFINE_BG_SBB], affine_background_gfxMap);
|
GRIT_CPY(&se_mem[AFFINE_BG_SBB], affine_background_gfxMap);
|
||||||
affine_background_load_palette(affine_background_gfxPal);
|
affine_background_load_palette(affine_background_gfxPal);
|
||||||
|
|
||||||
|
|||||||
+12
-1
@@ -170,9 +170,20 @@ void update_text_rect_to_right_align_num(Rect* rect, int num, int overflow_direc
|
|||||||
|
|
||||||
void memcpy16_tile8_with_palette_offset(u16* dst, const u16* src, uint hwcount, u8 palette_offset)
|
void memcpy16_tile8_with_palette_offset(u16* dst, const u16* src, uint hwcount, u8 palette_offset)
|
||||||
{
|
{
|
||||||
|
const u16 offset = (((palette_offset) << 8) | (palette_offset));
|
||||||
for (int i = 0; i < hwcount; i++)
|
for (int i = 0; i < hwcount; i++)
|
||||||
{
|
{
|
||||||
// Copying u8 data twice across u16 data
|
// Copying u8 data twice across u16 data
|
||||||
dst[i] = src[i] + (((palette_offset) << 8) | (palette_offset));
|
dst[i] = src[i] + offset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void memcpy32_tile8_with_palette_offset(u32* dst, const u32* src, uint hwcount, u8 palette_offset)
|
||||||
|
{
|
||||||
|
const u32 offset = (palette_offset << 24) | (palette_offset << 16) | (palette_offset << 8) | palette_offset;
|
||||||
|
for (int i = 0; i < hwcount; i++)
|
||||||
|
{
|
||||||
|
// Copying u8 data 4 times across u32 data
|
||||||
|
dst[i] = src[i] + offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user