mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 20:28:56 +00:00
Fix invalid pointer errors in Burnout 2.
Yet another story of games loading weird shit into registers. For some reason, Burnout 2 would (in rare situations) load invalid addresses into cp_state.array_bases. What would the real hardware do in this situation? Who knows, Burnout 2 doesn't actually enable the vertex array with the invalid address so nothing kinky happens. But dolphin tries to optimise things and starts using the address as soon as it is loaded into memory. This causes GetPointer (which is now much more vocal) to throw an error. The Fix: We don't call GetPointer until we are sure the vertex array has been enabled.
This commit is contained in:
parent
68d6f07b5c
commit
6d916762fb
4 changed files with 21 additions and 8 deletions
|
@ -212,7 +212,6 @@ void VideoBackendHardware::DoState(PointerWrap& p)
|
|||
if (p.GetMode() == PointerWrap::MODE_READ)
|
||||
{
|
||||
m_invalid = true;
|
||||
RecomputeCachedArraybases();
|
||||
|
||||
// Clear all caches that touch RAM
|
||||
// (? these don't appear to touch any emulation state that gets saved. moved to on load only.)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue