/[pcsx2_0.9.7]/trunk/pcsx2/SaveState.cpp
ViewVC logotype

Diff of /trunk/pcsx2/SaveState.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by william, Tue Sep 7 03:24:11 2010 UTC revision 62 by william, Tue Sep 7 11:08:22 2010 UTC
# Line 24  Line 24 
24  #include "AppConfig.h"  #include "AppConfig.h"
25    
26  #include "Elfheader.h"  #include "Elfheader.h"
27    #include "Counters.h"
28    
29    #include "Utilities/SafeArray.inl"
30    
31  using namespace R5900;  using namespace R5900;
32    
# Line 38  static void PostLoadPrep() Line 41  static void PostLoadPrep()
41          memzero(pCache);          memzero(pCache);
42  //      WriteCP0Status(cpuRegs.CP0.n.Status.val);  //      WriteCP0Status(cpuRegs.CP0.n.Status.val);
43          for(int i=0; i<48; i++) MapTLB(i);          for(int i=0; i<48; i++) MapTLB(i);
44    
45            UpdateVSyncRate();
46  }  }
47    
48  wxString SaveStateBase::GetFilename( int slot )  wxString SaveStateBase::GetFilename( int slot )
# Line 91  void SaveStateBase::FreezeTag( const cha Line 96  void SaveStateBase::FreezeTag( const cha
96    
97          if( strcmp( m_tagspace, src ) != 0 )          if( strcmp( m_tagspace, src ) != 0 )
98          {          {
99                  pxFail( "Savestate data corruption detected while reading tag" );                  wxString msg( L"Savestate data corruption detected while reading tag: " + fromUTF8(src) );
100                  throw Exception::SaveStateLoadError(                  pxFail( msg );
101                          // Untranslated diagnostic msg (use default msg for translation)                  throw Exception::SaveStateLoadError().SetDiagMsg(msg);
                         L"Savestate data corruption detected while reading tag: " + fromUTF8(src)  
                 );  
102          }          }
103  }  }
104    
# Line 111  void SaveStateBase::FreezeBios() Line 114  void SaveStateBase::FreezeBios()
114          memzero( descin );          memzero( descin );
115          memzero( desccmp );          memzero( desccmp );
116    
117          memcpy_fast( descin, descout.ToUTF8().data(), descout.Length() );          pxToUTF8 utf8(descout);
118          memcpy_fast( desccmp, descout.ToUTF8().data(), descout.Length() );          memcpy_fast( descin, utf8, utf8.Length() );
119            memcpy_fast( desccmp, utf8, utf8.Length() );
120    
121          // ... and only freeze bios info once per state, since the user msg could          // ... and only freeze bios info once per state, since the user msg could
122          // become really annoying on a corrupted state or something.  (have to always          // become really annoying on a corrupted state or something.  (have to always
# Line 130  void SaveStateBase::FreezeBios() Line 134  void SaveStateBase::FreezeBios()
134                          Console.Indent(2).Error(                          Console.Indent(2).Error(
135                                  "Current Version:   %s\n"                                  "Current Version:   %s\n"
136                                  "Savestate Version: %s\n",                                  "Savestate Version: %s\n",
137                                  descout.ToUTF8().data(), descin                                  utf8.data(), descin
138                          );                          );
139                  }                  }
140          }          }
# Line 148  void SaveStateBase::FreezeMainMemory() Line 152  void SaveStateBase::FreezeMainMemory()
152    
153          // First Block - Memory Dumps          // First Block - Memory Dumps
154          // ---------------------------          // ---------------------------
155          FreezeMem(PS2MEM_BASE,          Ps2MemSize::Base);              // 32 MB main memory          FreezeMem(eeMem->Main,          Ps2MemSize::Base);              // 32 MB main memory
156          FreezeMem(PS2MEM_SCRATCH,       Ps2MemSize::Scratch);   // scratch pad          FreezeMem(eeMem->Scratch,       Ps2MemSize::Scratch);   // scratch pad
157          FreezeMem(PS2MEM_HW,            Ps2MemSize::Hardware);  // hardware memory          FreezeMem(eeHw,         Ps2MemSize::Hardware);  // hardware memory
158    
159          FreezeMem(psxM, Ps2MemSize::IopRam);            // 2 MB main memory          FreezeMem(psxM, Ps2MemSize::IopRam);            // 2 MB main memory
160          FreezeMem(psxH, Ps2MemSize::IopHardware);       // hardware memory          FreezeMem(psxH, Ps2MemSize::IopHardware);       // hardware memory
# Line 175  void SaveStateBase::FreezeRegisters() Line 179  void SaveStateBase::FreezeRegisters()
179          FreezeTag( "Cycles" );          FreezeTag( "Cycles" );
180          Freeze(EEsCycle);          Freeze(EEsCycle);
181          Freeze(EEoCycle);          Freeze(EEoCycle);
182          Freeze(g_nextBranchCycle);          Freeze(g_nextEventCycle);
183          Freeze(g_psxNextBranchCycle);          Freeze(g_iopNextEventCycle);
184          Freeze(s_iLastCOP0Cycle);          Freeze(s_iLastCOP0Cycle);
185          Freeze(s_iLastPERFCycle);          Freeze(s_iLastPERFCycle);
186    
# Line 190  void SaveStateBase::FreezeRegisters() Line 194  void SaveStateBase::FreezeRegisters()
194          vif1Freeze();          vif1Freeze();
195          sifFreeze();          sifFreeze();
196          ipuFreeze();          ipuFreeze();
197            ipuDmaFreeze();
198          gifFreeze();          gifFreeze();
199          sprFreeze();          sprFreeze();
200    
# Line 225  void SaveStateBase::WritebackSectionLeng Line 230  void SaveStateBase::WritebackSectionLeng
230          {          {
231                  if( sectlen != realsectsize )           // if they don't match then we have a problem, jim.                  if( sectlen != realsectsize )           // if they don't match then we have a problem, jim.
232                  {                  {
233                          throw Exception::SaveStateLoadError( wxEmptyString,                          throw Exception::SaveStateLoadError()
234                                  wxsFormat( L"Invalid size encountered on section '%s'.", sectname ),                                  .SetDiagMsg(wxsFormat(L"Invalid size encountered on section '%s'.", sectname ))
235                                  _("The savestate data is invalid or corrupted.")                                  .SetUserMsg(_("The savestate data is invalid or corrupted."));
                         );  
236                  }                  }
237          }          }
238  }  }
# Line 254  bool SaveStateBase::FreezeSection( int s Line 258  bool SaveStateBase::FreezeSection( int s
258    
259                          if( sectlen != 128 )                          if( sectlen != 128 )
260                          {                          {
261                                  throw Exception::SaveStateLoadError( wxEmptyString,                                  throw Exception::SaveStateLoadError()
262                                          L"Invalid size encountered on BiosVersion section.",                                          .SetDiagMsg(L"Invalid size encountered on BiosVersion section.")
263                                          _("The savestate data is invalid or corrupted.")                                          .SetUserMsg(_("The savestate data is invalid or corrupted."));
                                 );  
264                          }                          }
265    
266                          if( isSeeking )                          if( isSeeking )
# Line 277  bool SaveStateBase::FreezeSection( int s Line 280  bool SaveStateBase::FreezeSection( int s
280                          Freeze( sectlen );                          Freeze( sectlen );
281                          if( sectlen != MainMemorySizeInBytes )                          if( sectlen != MainMemorySizeInBytes )
282                          {                          {
283                                  throw Exception::SaveStateLoadError( wxEmptyString,                                  throw Exception::SaveStateLoadError()
284                                          L"Invalid size encountered on MainMemory section.",                                          .SetDiagMsg(L"Invalid size encountered on MainMemory section.")
285                                          _("The savestate data is invalid or corrupted.")                                          .SetUserMsg(_("The savestate data is invalid or corrupted."));
                                 );  
286                          }                          }
287    
288                          if( isSeeking )                          if( isSeeking )

Legend:
Removed from v.31  
changed lines
  Added in v.62

  ViewVC Help
Powered by ViewVC 1.1.22