VideoCommon: Constrain the array_base registers

The array_base registers as part of CP state do not seem to incorporate
the upper bits in the physical address they try to access.
This commit is contained in:
booto
2019-05-31 02:46:17 -04:00
parent 8046f40784
commit bc8a4f99c7
3 changed files with 12 additions and 2 deletions

View File

@ -16,6 +16,7 @@
#include "Core/HW/Memmap.h"
#include "VideoCommon/BPMemory.h"
#include "VideoCommon/CommandProcessor.h"
#include "VideoCommon/DataReader.h"
#include "VideoCommon/IndexGenerator.h"
#include "VideoCommon/NativeVertexFormat.h"
@ -347,7 +348,7 @@ void LoadCPReg(u32 sub_cmd, u32 value, bool is_preprocess)
// Pointers to vertex arrays in GC RAM
case 0xA0:
state->array_bases[sub_cmd & 0xF] = value;
state->array_bases[sub_cmd & 0xF] = value & CommandProcessor::GetPhysicalAddressMask();
state->bases_dirty = true;
break;