Run Ahead: Fixed some issues with FDS/VS System system actions not being processed properly
This commit is contained in:
parent
78288fc456
commit
3fde8f8073
4 changed files with 13 additions and 3 deletions
|
@ -488,7 +488,10 @@ void FDS::StreamState(bool saving)
|
|||
|
||||
Stream(_irqReloadValue, _irqCounter, _irqEnabled, _irqRepeatEnabled, _diskRegEnabled, _soundRegEnabled, _writeDataReg, _motorOn, _resetTransfer,
|
||||
_readMode, _crcControl, _diskReady, _diskIrqEnabled, _extConWriteReg, _badCrc, _endOfHead, _readWriteEnabled, _readDataReg, _diskWriteProtected,
|
||||
_diskNumber, _diskPosition, _delay, _previousCrcControlFlag, _gapEnded, _scanningDisk, _transferComplete, audio);
|
||||
_diskNumber, _diskPosition, _delay, _previousCrcControlFlag, _gapEnded, _scanningDisk, _transferComplete, audio,
|
||||
_autoDiskEjectCounter, _autoDiskSwitchCounter, _restartAutoInsertCounter, _previousFrame, _lastDiskCheckFrame,
|
||||
_successiveChecks, _previousDiskNumber, _crcAccumulator
|
||||
);
|
||||
|
||||
if(saving) {
|
||||
for(size_t i = 0; i < _fdsDiskSides.size(); i++) {
|
||||
|
|
|
@ -73,7 +73,7 @@ private:
|
|||
vector<vector<uint8_t>> _orgDiskSides;
|
||||
vector<vector<uint8_t>> _orgDiskHeaders;
|
||||
|
||||
bool _gameStarted;
|
||||
bool _gameStarted = false;
|
||||
bool _needSave = false;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -72,7 +72,6 @@ public:
|
|||
|
||||
if(diskToInsert >= 0) {
|
||||
mapper->InsertDisk(diskToInsert);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +104,9 @@ public:
|
|||
if(!IsAutoInsertDiskEnabled()) {
|
||||
shared_ptr<FDS> mapper = _mapper.lock();
|
||||
if(mapper && mapper->IsDiskInserted()) {
|
||||
_console->Pause();
|
||||
InsertDisk((mapper->GetCurrentDisk() ^ 0x01) % mapper->GetSideCount());
|
||||
_console->Resume();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -115,7 +116,9 @@ public:
|
|||
if(!IsAutoInsertDiskEnabled()) {
|
||||
shared_ptr<FDS> mapper = _mapper.lock();
|
||||
if(mapper) {
|
||||
_console->Pause();
|
||||
InsertDisk(((mapper->GetCurrentDisk() & 0xFE) + 2) % mapper->GetSideCount());
|
||||
_console->Resume();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,13 +76,17 @@ public:
|
|||
void InsertCoin(uint8_t port)
|
||||
{
|
||||
if(port < 4) {
|
||||
_console->Pause();
|
||||
_needInsertCoin[port] = VsSystemActionManager::InsertCoinFrameCount;
|
||||
MessageManager::DisplayMessage("VS System", "CoinInsertedSlot", std::to_string(port + 1));
|
||||
_console->Resume();
|
||||
}
|
||||
}
|
||||
|
||||
void SetServiceButtonState(int consoleId, bool pressed)
|
||||
{
|
||||
_console->Pause();
|
||||
_needServiceButton[consoleId] = pressed;
|
||||
_console->Resume();
|
||||
}
|
||||
};
|
Loading…
Add table
Reference in a new issue