octoshock - fix some irregularities in savestate quality. this is intended to address #2214, and at least it passes the "first 60-100 frames in tastudio integrity test" test case given, but I still can't promise it's perfect.

This commit is contained in:
zeromus 2020-10-04 00:41:00 -04:00
parent f561e79489
commit 593c01a9e0
5 changed files with 7 additions and 3 deletions

Binary file not shown.

View File

@ -26,6 +26,9 @@ NewStateExternalBuffer::NewStateExternalBuffer(char *buffer, long maxlength)
void NewStateExternalBuffer::Save(const void *ptr, size_t size, const char *name)
{
if(length <= 0x30a907 && length + size > 0x30a907)
{
}
if (maxlength - length >= (long)size)
{
std::memcpy(buffer + length, ptr, size);

View File

@ -1658,7 +1658,7 @@ SYNCFUNC(PS_GPU)
if(isReader)
{
//BIZHAWK: not needed
//BIZHAWK: not needed, since we can sync TexCache directly
//for(unsigned i = 0; i < 256; i++)
//{
// TexCache[i].Tag = TexCache_Tag[i];

View File

@ -508,7 +508,7 @@ template<int numvertices, bool goraud, bool textured, int BlendMode, bool TexMul
static void Command_DrawPolygon(const uint32 *cb)
{
const unsigned cb0 = cb[0];
tri_vertex vertices[3];
tri_vertex vertices[3] = {0}; //zero 04-oct-2020 - zero initialize for more deterministic results (sometimes UV arent set)
unsigned sv = 0;
//uint32 tpage = 0;

View File

@ -1229,7 +1229,8 @@ SYNCFUNC(PS_SPU)
{
NSS(Voices);
NSS(NoiseCounter);
NSS(NoiseDivider);
NSS(NoiseCounter);
NSS(LFSR);
NSS(FM_Mode);