Orig game reads uninitialized memory in xray
This commit is contained in:
@@ -1985,6 +1985,9 @@ void Xray_SetupStage4_Func1(void) { // 0x91CCF1
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Xray_SetupStage4_Func2(void) { // 0x91CD42
|
void Xray_SetupStage4_Func2(void) { // 0x91CD42
|
||||||
|
// bug: passing 0xffff to this function is invalid and will read invalid memory.
|
||||||
|
if (R34 == 0)
|
||||||
|
return;
|
||||||
unsigned int v2;
|
unsigned int v2;
|
||||||
int16 v3;
|
int16 v3;
|
||||||
unsigned int v7;
|
unsigned int v7;
|
||||||
|
|||||||
@@ -282,6 +282,10 @@ void PatchBugs(uint32 mode, uint32 addr) {
|
|||||||
} else if (FixBugHook(0xA7CEB2)) {
|
} else if (FixBugHook(0xA7CEB2)) {
|
||||||
// Phantoon_Main forgots to reload x
|
// Phantoon_Main forgots to reload x
|
||||||
g_cpu->x = cur_enemy_index;
|
g_cpu->x = cur_enemy_index;
|
||||||
|
} else if (FixBugHook(0x91CD44)) {
|
||||||
|
// Xray_SetupStage4_Func2 passes a bad value to Xray_HandleXrayedBlock
|
||||||
|
if (g_cpu->x == 0)
|
||||||
|
g_cpu->pc = 0xCD52;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user