Input: Fixed issues with Battle Box/Turbo File save data being saved under the wrong filename when changing games
This commit is contained in:
parent
d3d7499185
commit
41c181a39f
3 changed files with 19 additions and 4 deletions
|
@ -4,6 +4,7 @@
|
|||
#include "../Utilities/FolderUtilities.h"
|
||||
|
||||
string BatteryManager::_romName;
|
||||
bool BatteryManager::_saveEnabled = true;
|
||||
std::weak_ptr<IBatteryRecorder> BatteryManager::_recorder;
|
||||
std::weak_ptr<IBatteryProvider> BatteryManager::_provider;
|
||||
|
||||
|
@ -17,6 +18,11 @@ string BatteryManager::GetBasePath()
|
|||
return FolderUtilities::CombinePath(FolderUtilities::GetSaveFolder(), _romName);
|
||||
}
|
||||
|
||||
void BatteryManager::SetSaveEnabled(bool enabled)
|
||||
{
|
||||
_saveEnabled = enabled;
|
||||
}
|
||||
|
||||
void BatteryManager::SetBatteryProvider(shared_ptr<IBatteryProvider> provider)
|
||||
{
|
||||
_provider = provider;
|
||||
|
@ -29,9 +35,11 @@ void BatteryManager::SetBatteryRecorder(shared_ptr<IBatteryRecorder> recorder)
|
|||
|
||||
void BatteryManager::SaveBattery(string extension, uint8_t* data, uint32_t length)
|
||||
{
|
||||
ofstream out(GetBasePath() + extension, ios::binary);
|
||||
if(out) {
|
||||
out.write((char*)data, length);
|
||||
if(_saveEnabled) {
|
||||
ofstream out(GetBasePath() + extension, ios::binary);
|
||||
if(out) {
|
||||
out.write((char*)data, length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ class BatteryManager
|
|||
{
|
||||
private:
|
||||
static string _romName;
|
||||
static bool _saveEnabled;
|
||||
static string GetBasePath();
|
||||
|
||||
static std::weak_ptr<IBatteryProvider> _provider;
|
||||
|
@ -26,6 +27,8 @@ private:
|
|||
|
||||
public:
|
||||
static void Initialize(string romName);
|
||||
|
||||
static void SetSaveEnabled(bool enabled);
|
||||
|
||||
static void SetBatteryProvider(shared_ptr<IBatteryProvider> provider);
|
||||
static void SetBatteryRecorder(shared_ptr<IBatteryRecorder> recorder);
|
||||
|
|
|
@ -117,7 +117,7 @@ bool Console::Initialize(VirtualFile &romFile, VirtualFile &patchFile)
|
|||
}
|
||||
|
||||
_autoSaveManager.reset(new AutoSaveManager());
|
||||
|
||||
|
||||
_mapper = mapper;
|
||||
_memoryManager.reset(new MemoryManager(_mapper));
|
||||
_cpu.reset(new CPU(_memoryManager.get()));
|
||||
|
@ -129,12 +129,16 @@ bool Console::Initialize(VirtualFile &romFile, VirtualFile &patchFile)
|
|||
default: _systemActionManager.reset(new SystemActionManager(Console::GetInstance())); break;
|
||||
}
|
||||
|
||||
//Temporarely disable battery saves to prevent battery files from being created for the wrong game (for Battle Box & Turbo File)
|
||||
BatteryManager::SetSaveEnabled(false);
|
||||
if(_mapper->GetGameSystem() == GameSystem::VsUniSystem) {
|
||||
_controlManager.reset(new VsControlManager(_systemActionManager, _mapper->GetMapperControlDevice()));
|
||||
} else {
|
||||
_controlManager.reset(new ControlManager(_systemActionManager, _mapper->GetMapperControlDevice()));
|
||||
}
|
||||
_controlManager->UpdateControlDevices();
|
||||
//Re-enable battery saves
|
||||
BatteryManager::SetSaveEnabled(true);
|
||||
|
||||
if(_hdData && (!_hdData->Tiles.empty() || !_hdData->Backgrounds.empty())) {
|
||||
_ppu.reset(new HdPpu(_mapper.get(), _controlManager.get(), _hdData->Version));
|
||||
|
|
Loading…
Add table
Reference in a new issue