Code cleanup
This commit is contained in:
parent
4d48b6a95f
commit
0c2cc8c94d
26 changed files with 83 additions and 53 deletions
|
@ -8,6 +8,7 @@
|
||||||
#include "ApuFrameCounter.h"
|
#include "ApuFrameCounter.h"
|
||||||
#include "EmulationSettings.h"
|
#include "EmulationSettings.h"
|
||||||
#include "SoundMixer.h"
|
#include "SoundMixer.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
APU* APU::Instance = nullptr;
|
APU* APU::Instance = nullptr;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "ControlManager.h"
|
#include "ControlManager.h"
|
||||||
#include "PPU.h"
|
#include "PPU.h"
|
||||||
#include "GameServerConnection.h"
|
#include "GameServerConnection.h"
|
||||||
|
#include "IKeyManager.h"
|
||||||
|
|
||||||
void ArkanoidController::StreamState(bool saving)
|
void ArkanoidController::StreamState(bool saving)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "BizhawkMovie.h"
|
#include "BizhawkMovie.h"
|
||||||
#include "VsControlManager.h"
|
#include "VsControlManager.h"
|
||||||
#include "FDS.h"
|
#include "FDS.h"
|
||||||
|
#include "PPU.h"
|
||||||
|
|
||||||
BizhawkMovie::BizhawkMovie()
|
BizhawkMovie::BizhawkMovie()
|
||||||
{
|
{
|
||||||
|
|
35
Core/CPU.cpp
35
Core/CPU.cpp
|
@ -6,6 +6,7 @@
|
||||||
#include "TraceLogger.h"
|
#include "TraceLogger.h"
|
||||||
#include "Debugger.h"
|
#include "Debugger.h"
|
||||||
#include "NsfMapper.h"
|
#include "NsfMapper.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
CPU* CPU::Instance = nullptr;
|
CPU* CPU::Instance = nullptr;
|
||||||
|
|
||||||
|
@ -176,6 +177,40 @@ void CPU::BRK() {
|
||||||
_prevRunIrq = false;
|
_prevRunIrq = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPU::MemoryWrite(uint16_t addr, uint8_t value)
|
||||||
|
{
|
||||||
|
_cpuWrite = true;;
|
||||||
|
_writeAddr = addr;
|
||||||
|
IncCycleCount();
|
||||||
|
while(_dmcDmaRunning) {
|
||||||
|
IncCycleCount();
|
||||||
|
}
|
||||||
|
_memoryManager->Write(addr, value);
|
||||||
|
|
||||||
|
//DMA DMC might have started after a write to $4015, stall CPU if needed
|
||||||
|
while(_dmcDmaRunning) {
|
||||||
|
IncCycleCount();
|
||||||
|
}
|
||||||
|
_cpuWrite = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t CPU::MemoryRead(uint16_t addr, MemoryOperationType operationType) {
|
||||||
|
IncCycleCount();
|
||||||
|
while(_dmcDmaRunning) {
|
||||||
|
//Stall CPU until we can process a DMC read
|
||||||
|
if((addr != 0x4016 && addr != 0x4017 && (_cycleCount & 0x01)) || _dmcCounter == 1) {
|
||||||
|
//While the CPU is stalled, reads are performed on the current address
|
||||||
|
//Reads are only performed every other cycle? This fixes "dma_2007_read" test
|
||||||
|
//This behavior causes the $4016/7 data corruption when a DMC is running.
|
||||||
|
//When reading $4016/7, only the last read counts (because this only occurs to low-to-high transitions, i.e once in this case)
|
||||||
|
_memoryManager->Read(addr);
|
||||||
|
}
|
||||||
|
IncCycleCount();
|
||||||
|
}
|
||||||
|
uint8_t value = _memoryManager->Read(addr, operationType);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t CPU::FetchOperand()
|
uint16_t CPU::FetchOperand()
|
||||||
{
|
{
|
||||||
switch(_instAddrMode) {
|
switch(_instAddrMode) {
|
||||||
|
|
40
Core/CPU.h
40
Core/CPU.h
|
@ -1,11 +1,12 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "MemoryManager.h"
|
|
||||||
#include "Snapshotable.h"
|
#include "Snapshotable.h"
|
||||||
#include "EmulationSettings.h"
|
|
||||||
#include "Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
|
enum class NesModel;
|
||||||
|
class MemoryManager;
|
||||||
|
|
||||||
namespace PSFlags
|
namespace PSFlags
|
||||||
{
|
{
|
||||||
enum PSFlags : uint8_t
|
enum PSFlags : uint8_t
|
||||||
|
@ -135,39 +136,8 @@ private:
|
||||||
return ((valA + valB) & 0xFF00) != (valA & 0xFF00);
|
return ((valA + valB) & 0xFF00) != (valA & 0xFF00);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemoryWrite(uint16_t addr, uint8_t value)
|
void MemoryWrite(uint16_t addr, uint8_t value);
|
||||||
{
|
uint8_t MemoryRead(uint16_t addr, MemoryOperationType operationType = MemoryOperationType::Read);
|
||||||
_cpuWrite = true;;
|
|
||||||
_writeAddr = addr;
|
|
||||||
IncCycleCount();
|
|
||||||
while(_dmcDmaRunning) {
|
|
||||||
IncCycleCount();
|
|
||||||
}
|
|
||||||
_memoryManager->Write(addr, value);
|
|
||||||
|
|
||||||
//DMA DMC might have started after a write to $4015, stall CPU if needed
|
|
||||||
while (_dmcDmaRunning) {
|
|
||||||
IncCycleCount();
|
|
||||||
}
|
|
||||||
_cpuWrite = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t MemoryRead(uint16_t addr, MemoryOperationType operationType = MemoryOperationType::Read) {
|
|
||||||
IncCycleCount();
|
|
||||||
while(_dmcDmaRunning) {
|
|
||||||
//Stall CPU until we can process a DMC read
|
|
||||||
if((addr != 0x4016 && addr != 0x4017 && (_cycleCount & 0x01)) || _dmcCounter == 1) {
|
|
||||||
//While the CPU is stalled, reads are performed on the current address
|
|
||||||
//Reads are only performed every other cycle? This fixes "dma_2007_read" test
|
|
||||||
//This behavior causes the $4016/7 data corruption when a DMC is running.
|
|
||||||
//When reading $4016/7, only the last read counts (because this only occurs to low-to-high transitions, i.e once in this case)
|
|
||||||
_memoryManager->Read(addr);
|
|
||||||
}
|
|
||||||
IncCycleCount();
|
|
||||||
}
|
|
||||||
uint8_t value = _memoryManager->Read(addr, operationType);
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t MemoryReadWord(uint16_t addr, MemoryOperationType operationType = MemoryOperationType::Read) {
|
uint16_t MemoryReadWord(uint16_t addr, MemoryOperationType operationType = MemoryOperationType::Read) {
|
||||||
uint8_t lo = MemoryRead(addr, operationType);
|
uint8_t lo = MemoryRead(addr, operationType);
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
|
#include "CPU.h"
|
||||||
|
#include "PPU.h"
|
||||||
|
#include "APU.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
#include "AutoSaveManager.h"
|
||||||
#include "BaseMapper.h"
|
#include "BaseMapper.h"
|
||||||
#include "ControlManager.h"
|
#include "ControlManager.h"
|
||||||
#include "VsControlManager.h"
|
#include "VsControlManager.h"
|
||||||
|
|
|
@ -2,18 +2,19 @@
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include "CPU.h"
|
|
||||||
#include "PPU.h"
|
|
||||||
#include "APU.h"
|
|
||||||
#include "MemoryManager.h"
|
|
||||||
#include "ControlManager.h"
|
|
||||||
#include "../Utilities/SimpleLock.h"
|
#include "../Utilities/SimpleLock.h"
|
||||||
#include "AutoSaveManager.h"
|
|
||||||
#include "RomData.h"
|
#include "RomData.h"
|
||||||
|
|
||||||
class Debugger;
|
class Debugger;
|
||||||
class BaseMapper;
|
class BaseMapper;
|
||||||
class RewindManager;
|
class RewindManager;
|
||||||
|
class APU;
|
||||||
|
class CPU;
|
||||||
|
class PPU;
|
||||||
|
class MemoryManager;
|
||||||
|
class ControlManager;
|
||||||
|
class AutoSaveManager;
|
||||||
|
enum class NesModel;
|
||||||
|
|
||||||
class Console
|
class Console
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
#include "EmulationSettings.h"
|
#include "EmulationSettings.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
#include "GameServerConnection.h"
|
#include "GameServerConnection.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
#include "PPU.h"
|
||||||
|
#include "IKeyManager.h"
|
||||||
|
|
||||||
unique_ptr<IKeyManager> ControlManager::_keyManager = nullptr;
|
unique_ptr<IKeyManager> ControlManager::_keyManager = nullptr;
|
||||||
shared_ptr<BaseControlDevice> ControlManager::_controlDevices[2] = { nullptr, nullptr };
|
shared_ptr<BaseControlDevice> ControlManager::_controlDevices[2] = { nullptr, nullptr };
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "BaseControlDevice.h"
|
|
||||||
#include "IMemoryHandler.h"
|
|
||||||
#include "IGameBroadcaster.h"
|
|
||||||
#include "Snapshotable.h"
|
|
||||||
#include "../Utilities/SimpleLock.h"
|
#include "../Utilities/SimpleLock.h"
|
||||||
#include "IKeyManager.h"
|
#include "IMemoryHandler.h"
|
||||||
|
#include "Snapshotable.h"
|
||||||
|
|
||||||
class BaseControlDevice;
|
class BaseControlDevice;
|
||||||
class Zapper;
|
class Zapper;
|
||||||
|
class IGameBroadcaster;
|
||||||
|
class IKeyManager;
|
||||||
|
enum class MouseButton;
|
||||||
|
|
||||||
struct MousePosition
|
struct MousePosition
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
#include "Assembler.h"
|
#include "Assembler.h"
|
||||||
#include "CodeRunner.h"
|
#include "CodeRunner.h"
|
||||||
#include "DisassemblyInfo.h"
|
#include "DisassemblyInfo.h"
|
||||||
|
#include "PPU.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
Debugger* Debugger::Instance = nullptr;
|
Debugger* Debugger::Instance = nullptr;
|
||||||
const int Debugger::BreakpointTypeCount;
|
const int Debugger::BreakpointTypeCount;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "APU.h"
|
#include "APU.h"
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
DeltaModulationChannel *DeltaModulationChannel::Instance = nullptr;
|
DeltaModulationChannel *DeltaModulationChannel::Instance = nullptr;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#include "../Utilities/HexUtilities.h"
|
||||||
#include "DisassemblyInfo.h"
|
#include "DisassemblyInfo.h"
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
#include "LabelManager.h"
|
#include "LabelManager.h"
|
||||||
#include "../Utilities/HexUtilities.h"
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
string DisassemblyInfo::OPName[256];
|
string DisassemblyInfo::OPName[256];
|
||||||
AddrMode DisassemblyInfo::OPMode[256];
|
AddrMode DisassemblyInfo::OPMode[256];
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "FDS.h"
|
#include "FDS.h"
|
||||||
#include "FdsAudio.h"
|
#include "FdsAudio.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
FDS* FDS::Instance = nullptr;
|
FDS* FDS::Instance = nullptr;
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#include <algorithm>
|
||||||
#include "Snapshotable.h"
|
#include "Snapshotable.h"
|
||||||
#include "EmulationSettings.h"
|
#include "EmulationSettings.h"
|
||||||
#include "APU.h"
|
#include "APU.h"
|
||||||
#include "BaseFdsChannel.h"
|
#include "BaseFdsChannel.h"
|
||||||
#include "ModChannel.h"
|
#include "ModChannel.h"
|
||||||
#include <algorithm>
|
|
||||||
#include "BaseExpansionAudio.h"
|
#include "BaseExpansionAudio.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
class FdsAudio : public BaseExpansionAudio
|
class FdsAudio : public BaseExpansionAudio
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@ using std::thread;
|
||||||
#include "MessageManager.h"
|
#include "MessageManager.h"
|
||||||
#include "GameServer.h"
|
#include "GameServer.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
|
#include "ControlManager.h"
|
||||||
#include "../Utilities/Socket.h"
|
#include "../Utilities/Socket.h"
|
||||||
#include "PlayerListMessage.h"
|
#include "PlayerListMessage.h"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#include "PPU.h"
|
||||||
#include "HdNesPack.h"
|
#include "HdNesPack.h"
|
||||||
#include "HdVideoFilter.h"
|
#include "HdVideoFilter.h"
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "BaseMapper.h"
|
#include "BaseMapper.h"
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
class JyCompany : public BaseMapper
|
class JyCompany : public BaseMapper
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "BaseExpansionAudio.h"
|
#include "BaseExpansionAudio.h"
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
class MMC5Square : public SquareChannel
|
class MMC5Square : public SquareChannel
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "NsfMapper.h"
|
#include "NsfMapper.h"
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
|
#include "MemoryManager.h"
|
||||||
|
|
||||||
NsfMapper* NsfMapper::_instance;
|
NsfMapper* NsfMapper::_instance;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
#include "OekaKidsTablet.h"
|
#include "OekaKidsTablet.h"
|
||||||
#include "ControlManager.h"
|
#include "ControlManager.h"
|
||||||
#include "GameServerConnection.h"
|
#include "GameServerConnection.h"
|
||||||
|
#include "IKeyManager.h"
|
||||||
|
#include "IKeyManager.h"
|
||||||
|
|
||||||
void OekaKidsTablet::StreamState(bool saving)
|
void OekaKidsTablet::StreamState(bool saving)
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include "MessageManager.h"
|
#include "MessageManager.h"
|
||||||
#include "Debugger.h"
|
#include "Debugger.h"
|
||||||
#include "MovieManager.h"
|
#include "MovieManager.h"
|
||||||
|
#include "PPU.h"
|
||||||
#include "../Utilities/FolderUtilities.h"
|
#include "../Utilities/FolderUtilities.h"
|
||||||
#include "../Utilities/md5.h"
|
#include "../Utilities/md5.h"
|
||||||
#include "../Utilities/ZipWriter.h"
|
#include "../Utilities/ZipWriter.h"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
#include "MemoryManager.h"
|
#include "MemoryManager.h"
|
||||||
#include "LabelManager.h"
|
#include "LabelManager.h"
|
||||||
|
#include "EmulationSettings.h"
|
||||||
#include "../Utilities/HexUtilities.h"
|
#include "../Utilities/HexUtilities.h"
|
||||||
#include "../Utilities/FolderUtilities.h"
|
#include "../Utilities/FolderUtilities.h"
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "ScaleFilter.h"
|
#include "ScaleFilter.h"
|
||||||
#include "VideoRenderer.h"
|
#include "VideoRenderer.h"
|
||||||
#include "RewindManager.h"
|
#include "RewindManager.h"
|
||||||
|
#include "PPU.h"
|
||||||
|
|
||||||
unique_ptr<VideoDecoder> VideoDecoder::Instance;
|
unique_ptr<VideoDecoder> VideoDecoder::Instance;
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "PPU.h"
|
#include "PPU.h"
|
||||||
#include "ControlManager.h"
|
#include "ControlManager.h"
|
||||||
#include "GameServerConnection.h"
|
#include "GameServerConnection.h"
|
||||||
|
#include "IKeyManager.h"
|
||||||
|
|
||||||
void Zapper::StreamState(bool saving)
|
void Zapper::StreamState(bool saving)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include "../Utilities/Timer.h"
|
#include "../Utilities/Timer.h"
|
||||||
#include "../Core/MessageManager.h"
|
#include "../Core/MessageManager.h"
|
||||||
#include "../Core/ControlManager.h"
|
#include "../Core/ControlManager.h"
|
||||||
|
#include "../Core/EmulationSettings.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include <Dwmapi.h>
|
|
||||||
#include "Renderer.h"
|
#include "Renderer.h"
|
||||||
#include "DirectXTK/SpriteBatch.h"
|
#include "DirectXTK/SpriteBatch.h"
|
||||||
#include "DirectXTK/SpriteFont.h"
|
#include "DirectXTK/SpriteFont.h"
|
||||||
#include "DirectXTK/DDSTextureLoader.h"
|
|
||||||
#include "DirectXTK/WICTextureLoader.h"
|
|
||||||
#include "../Core/PPU.h"
|
|
||||||
#include "../Core/VideoRenderer.h"
|
#include "../Core/VideoRenderer.h"
|
||||||
#include "../Core/VideoDecoder.h"
|
#include "../Core/VideoDecoder.h"
|
||||||
#include "../Core/EmulationSettings.h"
|
#include "../Core/EmulationSettings.h"
|
||||||
#include "../Core/MessageManager.h"
|
#include "../Core/MessageManager.h"
|
||||||
#include "../Utilities/UTF8Util.h"
|
#include "../Utilities/UTF8Util.h"
|
||||||
#include "../Core/HdNesPack.h"
|
|
||||||
|
|
||||||
using namespace DirectX;
|
using namespace DirectX;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue