Match FileSelectDisplaySaveFileMiscInfo

This commit is contained in:
y.demaisonregne 2023-07-16 15:06:38 +02:00
parent fc95e40967
commit c7ea471404
3 changed files with 22 additions and 17 deletions

View File

@ -2,7 +2,7 @@
This is a work in progress decompilation of Metroid - Zero Mission.
2665/2721 functions decompiled (97.94%, 56 left)
2666/2721 functions decompiled (97.98%, 55 left)
0x35b9ac/0x76b014 bytes of data not in blobs (45.27%, 0x40f668 left)

View File

@ -3872,14 +3872,17 @@ void FileSelectDisplaySaveFileTimer(u8 file)
}
}
/**
* @brief 7cf98 | 118 | Displays the misc. info of a file (difficulty, area, time attack)
*
* @param pFile Save file info pointer
* @param file Save file number
*/
void FileSelectDisplaySaveFileMiscInfo(struct SaveFileInfo* pFile, u8 file)
{
// https://decomp.me/scratch/mFmb0
u16 baseTile;
u32 offset;
s32 offset;
u16* dst;
u16* tmp;
u16 tile;
s32 i;
@ -3893,11 +3896,14 @@ void FileSelectDisplaySaveFileMiscInfo(struct SaveFileInfo* pFile, u8 file)
return;
i = pFile->timeAttack;
baseTile = i ? 6 << 12 : 5 << 12;
if (i)
tile = 6 << 12;
else
tile = 5 << 12;
baseTile = tile;
tmp = (u16*)sEwramPointer;
tmp = &tmp[offset];
dst = &tmp[(0x800 + 0xCC) / 2];
dst = FILE_SELECT_EWRAM.menuTilemap;
dst = &dst[offset + 102];
if ((pFile->exists || pFile->introPlayed) && pFile->corruptionFlag == 0)
{
@ -3919,9 +3925,8 @@ void FileSelectDisplaySaveFileMiscInfo(struct SaveFileInfo* pFile, u8 file)
}
}
tmp = (u16*)sEwramPointer;
tmp = &tmp[offset];
dst = &tmp[(0x800 + 0x12C) / 2];
dst = FILE_SELECT_EWRAM.menuTilemap;
dst = &dst[offset + 150];
if (pFile->currentArea >= ARRAY_SIZE(sSaveFileAreasId))
i = -1;

View File

@ -762,7 +762,7 @@ void SpriteLoadSpriteset(void)
s32 ctrl_1;
s32 ctrl_2;
for (i = 0; i < 15; i++)
for (i = 0; i < MAX_AMOUNT_OF_SPRITE_TYPES; i++)
{
gSpritesetSpritesID[i] = PSPRITE_UNUSED16;
gSpritesetGfxSlots[i] = 0;
@ -778,7 +778,7 @@ void SpriteLoadSpriteset(void)
spriteset = 0;
}
for (j = 0, i = 0; i < 15; i++)
for (j = 0, i = 0; i < MAX_AMOUNT_OF_SPRITE_TYPES; i++)
{
spriteID = sSpritesetPointers[spriteset][j * 2 + 0];
gfxSlot = sSpritesetPointers[spriteset][j * 2 + 1];
@ -789,7 +789,7 @@ void SpriteLoadSpriteset(void)
break;
gSpritesetSpritesID[i] = spriteID;
gSpritesetGfxSlots[i] = gfxSlot & 7;
gSpritesetGfxSlots[i] = MOD_AND(gfxSlot, 8);
if (gfxSlot == prevGfxSlot)
continue;
@ -800,12 +800,12 @@ void SpriteLoadSpriteset(void)
spriteID -= 0x10;
LZ77UncompVRAM(sSpritesGraphicsPointers[spriteID], VRAM_BASE + 0x14000 + (gfxSlot * 2048));
LZ77UncompVRAM(sSpritesGraphicsPointers[spriteID], VRAM_BASE + 0x14000 + gfxSlot * 2048);
ctrl_1 = ((u8*)sSpritesGraphicsPointers[spriteID])[1];
ctrl_2 = ((u8*)sSpritesGraphicsPointers[spriteID])[2] << 8;
DMA_SET(3, sSpritesPalettePointers[spriteID], PALRAM_BASE + 0x300 + gfxSlot * 32,
(DMA_ENABLE << 16) | (ctrl_1 | ctrl_2) / 2048 << 4);
C_32_2_16(DMA_ENABLE, (ctrl_1 | ctrl_2) / 2048 << 4));
}
}