mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-13 15:13:42 +01:00
Merge branch 'master' of https://github.com/pret/pokeemerald
This commit is contained in:
commit
c5b262159d
46
gflib/bg.c
46
gflib/bg.c
@ -55,7 +55,7 @@ void ResetBgs(void)
|
||||
|
||||
static void SetBgModeInternal(u8 bgMode)
|
||||
{
|
||||
sGpuBgConfigs.bgVisibilityAndMode &= 0xFFF8;
|
||||
sGpuBgConfigs.bgVisibilityAndMode &= ~0x7;
|
||||
sGpuBgConfigs.bgVisibilityAndMode |= bgMode;
|
||||
}
|
||||
|
||||
@ -66,13 +66,11 @@ u8 GetBgMode(void)
|
||||
|
||||
void ResetBgControlStructs(void)
|
||||
{
|
||||
struct BgConfig* bgConfigs = &sGpuBgConfigs.configs[0];
|
||||
struct BgConfig zeroedConfig = sZeroedBgControlStruct;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NUM_BACKGROUNDS; i++)
|
||||
{
|
||||
bgConfigs[i] = zeroedConfig;
|
||||
sGpuBgConfigs.configs[i] = sZeroedBgControlStruct;
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,36 +173,30 @@ u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode)
|
||||
u16 offset;
|
||||
s8 cursor;
|
||||
|
||||
if (!IsInvalidBg(bg) && sGpuBgConfigs.configs[bg].visible)
|
||||
{
|
||||
if (IsInvalidBg(bg) || !sGpuBgConfigs.configs[bg].visible)
|
||||
return -1;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 0x1:
|
||||
offset = sGpuBgConfigs.configs[bg].charBaseIndex * BG_CHAR_SIZE;
|
||||
offset = destOffset + offset;
|
||||
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
|
||||
if (cursor == -1)
|
||||
return -1;
|
||||
break;
|
||||
case 0x2:
|
||||
offset = sGpuBgConfigs.configs[bg].mapBaseIndex * BG_SCREEN_SIZE;
|
||||
offset = destOffset + offset;
|
||||
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
|
||||
if (cursor == -1)
|
||||
return -1;
|
||||
break;
|
||||
default:
|
||||
cursor = -1;
|
||||
goto end;
|
||||
break;
|
||||
}
|
||||
|
||||
offset = destOffset + offset;
|
||||
|
||||
cursor = RequestDma3Copy(src, (void*)(offset + BG_VRAM), size, 0);
|
||||
|
||||
if (cursor == -1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
end:
|
||||
return cursor;
|
||||
}
|
||||
|
||||
@ -254,17 +246,17 @@ static void SetBgAffineInternal(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispC
|
||||
|
||||
switch (sGpuBgConfigs.bgVisibilityAndMode & 0x7)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
return;
|
||||
case 1:
|
||||
if (bg != 2)
|
||||
return;
|
||||
break;
|
||||
case 2:
|
||||
if (bg < 2 || bg >= NUM_BACKGROUNDS)
|
||||
if (bg != 2 && bg != 3)
|
||||
return;
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
src.texX = srcCenterX;
|
||||
@ -697,7 +689,7 @@ s32 ChangeBgY(u8 bg, s32 value, u8 op)
|
||||
return sGpuBgConfigs2[bg].bg_y;
|
||||
}
|
||||
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op)
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op)
|
||||
{
|
||||
u8 mode;
|
||||
u16 temp1;
|
||||
|
@ -59,7 +59,7 @@ u16 GetBgAttribute(u8 bg, u8 attributeId);
|
||||
s32 ChangeBgX(u8 bg, s32 value, u8 op);
|
||||
s32 GetBgX(u8 bg);
|
||||
s32 ChangeBgY(u8 bg, s32 value, u8 op);
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
|
||||
s32 ChangeBgY_ScreenOff(u8 bg, s32 value, u8 op);
|
||||
s32 GetBgY(u8 bg);
|
||||
void SetBgAffine(u8 bg, s32 srcCenterX, s32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
|
||||
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
|
||||
|
@ -38,7 +38,7 @@ static void GenerateInitialRentalMons(void);
|
||||
static void GetOpponentMostCommonMonType(void);
|
||||
static void GetOpponentBattleStyle(void);
|
||||
static void RestorePlayerPartyHeldItems(void);
|
||||
static u16 GetFactoryMonId(u8 lvlMode, u8 challengeNum, bool8 arg2);
|
||||
static u16 GetFactoryMonId(u8 lvlMode, u8 challengeNum, bool8 useBetterRange);
|
||||
static u8 GetMoveBattleStyle(u16 move);
|
||||
|
||||
// Number of moves needed on the team to be considered using a certain battle style
|
||||
|
@ -1525,6 +1525,10 @@ void ply_xwave(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
|
||||
{
|
||||
u32 wav;
|
||||
|
||||
#ifdef UBFIX
|
||||
wav = 0;
|
||||
#endif
|
||||
|
||||
READ_XCMD_BYTE(wav, 0) // UB: uninitialized variable
|
||||
READ_XCMD_BYTE(wav, 1)
|
||||
READ_XCMD_BYTE(wav, 2)
|
||||
@ -1592,6 +1596,10 @@ void ply_xcmd_0C(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tra
|
||||
{
|
||||
u32 unk;
|
||||
|
||||
#ifdef UBFIX
|
||||
unk = 0;
|
||||
#endif
|
||||
|
||||
READ_XCMD_BYTE(unk, 0) // UB: uninitialized variable
|
||||
READ_XCMD_BYTE(unk, 1)
|
||||
|
||||
@ -1611,6 +1619,7 @@ void ply_xcmd_0C(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tra
|
||||
void ply_xcmd_0D(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
|
||||
{
|
||||
u32 unk;
|
||||
|
||||
#ifdef UBFIX
|
||||
unk = 0;
|
||||
#endif
|
||||
|
@ -5437,15 +5437,16 @@ static bool32 WaitForWallpaperGfxLoad(void)
|
||||
|
||||
static void DrawWallpaper(const void *tilemap, s8 direction, u8 offset)
|
||||
{
|
||||
s16 var = (offset * 2) + 3;
|
||||
s16 var = offset * 256;
|
||||
s16 var2 = (offset * 2) + 3;
|
||||
s16 x = ((sStorage->bg2_X / 8 + 10) + (direction * 24)) & 0x3F;
|
||||
|
||||
CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 0x14, 0x12, x, 2, 0x14, 0x12, 0x11, offset << 8, var);
|
||||
CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 0x14, 0x12, x, 2, 0x14, 0x12, 0x11, var, var2);
|
||||
|
||||
if (direction == 0)
|
||||
return;
|
||||
if (direction > 0)
|
||||
x *= 1, x += 0x14; // x * 1 is needed to match, but can be safely removed as it makes no functional difference
|
||||
x += 0x14;
|
||||
else
|
||||
x -= 4;
|
||||
|
||||
|
30
src/siirtc.c
30
src/siirtc.c
@ -71,6 +71,7 @@ static bool8 sLocked;
|
||||
static int WriteCommand(u8 value);
|
||||
static int WriteData(u8 value);
|
||||
static u8 ReadData();
|
||||
|
||||
static void EnableGpioPortRead();
|
||||
static void DisableGpioPortRead();
|
||||
|
||||
@ -98,8 +99,12 @@ u8 SiiRtcProbe(void)
|
||||
|
||||
errorCode = 0;
|
||||
|
||||
#ifdef BUGFIX
|
||||
if (!(rtc.status & SIIRTCINFO_24HOUR) || (rtc.status & SIIRTCINFO_POWER))
|
||||
#else
|
||||
if ((rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == SIIRTCINFO_POWER
|
||||
|| (rtc.status & (SIIRTCINFO_POWER | SIIRTCINFO_24HOUR)) == 0)
|
||||
#endif
|
||||
{
|
||||
// The RTC is in 12-hour mode. Reset it and switch to 24-hour mode.
|
||||
|
||||
@ -131,7 +136,7 @@ u8 SiiRtcProbe(void)
|
||||
|
||||
bool8 SiiRtcReset(void)
|
||||
{
|
||||
u8 result;
|
||||
bool8 result;
|
||||
struct SiiRtcInfo rtc;
|
||||
|
||||
if (sLocked == TRUE)
|
||||
@ -392,7 +397,11 @@ static int WriteCommand(u8 value)
|
||||
GPIO_PORT_DATA = (temp << 1) | SCK_HI | CS_HI;
|
||||
}
|
||||
|
||||
// control reaches end of non-void function
|
||||
// Nothing uses the returned value from this function,
|
||||
// so the undefined behavior is harmless in the vanilla game.
|
||||
#ifdef UBFIX
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int WriteData(u8 value)
|
||||
@ -409,7 +418,11 @@ static int WriteData(u8 value)
|
||||
GPIO_PORT_DATA = (temp << 1) | SCK_HI | CS_HI;
|
||||
}
|
||||
|
||||
// control reaches end of non-void function
|
||||
// Nothing uses the returned value from this function,
|
||||
// so the undefined behavior is harmless in the vanilla game.
|
||||
#ifdef UBFIX
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static u8 ReadData()
|
||||
@ -417,9 +430,10 @@ static u8 ReadData()
|
||||
u8 i;
|
||||
u8 temp;
|
||||
u8 value;
|
||||
#ifdef UBFIX
|
||||
|
||||
#ifdef UBFIX
|
||||
value = 0;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
@ -431,7 +445,7 @@ static u8 ReadData()
|
||||
GPIO_PORT_DATA = SCK_HI | CS_HI;
|
||||
|
||||
temp = ((GPIO_PORT_DATA & SIO_HI) >> 1);
|
||||
value = (value >> 1) | (temp << 7); // UB: value is uninitialized on first iteration
|
||||
value = (value >> 1) | (temp << 7);
|
||||
}
|
||||
|
||||
return value;
|
||||
@ -439,10 +453,10 @@ static u8 ReadData()
|
||||
|
||||
static void EnableGpioPortRead()
|
||||
{
|
||||
GPIO_PORT_READ_ENABLE = 1;
|
||||
GPIO_PORT_READ_ENABLE = TRUE;
|
||||
}
|
||||
|
||||
static void DisableGpioPortRead()
|
||||
{
|
||||
GPIO_PORT_READ_ENABLE = 0;
|
||||
GPIO_PORT_READ_ENABLE = FALSE;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user