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 "EmulationSettings.h"
|
||||
#include "SoundMixer.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
APU* APU::Instance = nullptr;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "ControlManager.h"
|
||||
#include "PPU.h"
|
||||
#include "GameServerConnection.h"
|
||||
#include "IKeyManager.h"
|
||||
|
||||
void ArkanoidController::StreamState(bool saving)
|
||||
{
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "BizhawkMovie.h"
|
||||
#include "VsControlManager.h"
|
||||
#include "FDS.h"
|
||||
#include "PPU.h"
|
||||
|
||||
BizhawkMovie::BizhawkMovie()
|
||||
{
|
||||
|
|
35
Core/CPU.cpp
35
Core/CPU.cpp
|
@ -6,6 +6,7 @@
|
|||
#include "TraceLogger.h"
|
||||
#include "Debugger.h"
|
||||
#include "NsfMapper.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
CPU* CPU::Instance = nullptr;
|
||||
|
||||
|
@ -176,6 +177,40 @@ void CPU::BRK() {
|
|||
_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()
|
||||
{
|
||||
switch(_instAddrMode) {
|
||||
|
|
40
Core/CPU.h
40
Core/CPU.h
|
@ -1,11 +1,12 @@
|
|||
#pragma once
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "MemoryManager.h"
|
||||
#include "Snapshotable.h"
|
||||
#include "EmulationSettings.h"
|
||||
#include "Types.h"
|
||||
|
||||
enum class NesModel;
|
||||
class MemoryManager;
|
||||
|
||||
namespace PSFlags
|
||||
{
|
||||
enum PSFlags : uint8_t
|
||||
|
@ -135,39 +136,8 @@ private:
|
|||
return ((valA + valB) & 0xFF00) != (valA & 0xFF00);
|
||||
}
|
||||
|
||||
void 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 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;
|
||||
}
|
||||
void MemoryWrite(uint16_t addr, uint8_t value);
|
||||
uint8_t MemoryRead(uint16_t addr, MemoryOperationType operationType = MemoryOperationType::Read);
|
||||
|
||||
uint16_t MemoryReadWord(uint16_t addr, MemoryOperationType operationType = MemoryOperationType::Read) {
|
||||
uint8_t lo = MemoryRead(addr, operationType);
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
#include "stdafx.h"
|
||||
#include <thread>
|
||||
#include "Console.h"
|
||||
#include "CPU.h"
|
||||
#include "PPU.h"
|
||||
#include "APU.h"
|
||||
#include "MemoryManager.h"
|
||||
#include "AutoSaveManager.h"
|
||||
#include "BaseMapper.h"
|
||||
#include "ControlManager.h"
|
||||
#include "VsControlManager.h"
|
||||
|
|
|
@ -2,18 +2,19 @@
|
|||
|
||||
#include "stdafx.h"
|
||||
#include <atomic>
|
||||
#include "CPU.h"
|
||||
#include "PPU.h"
|
||||
#include "APU.h"
|
||||
#include "MemoryManager.h"
|
||||
#include "ControlManager.h"
|
||||
#include "../Utilities/SimpleLock.h"
|
||||
#include "AutoSaveManager.h"
|
||||
#include "RomData.h"
|
||||
|
||||
class Debugger;
|
||||
class BaseMapper;
|
||||
class RewindManager;
|
||||
class APU;
|
||||
class CPU;
|
||||
class PPU;
|
||||
class MemoryManager;
|
||||
class ControlManager;
|
||||
class AutoSaveManager;
|
||||
enum class NesModel;
|
||||
|
||||
class Console
|
||||
{
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
#include "EmulationSettings.h"
|
||||
#include "Console.h"
|
||||
#include "GameServerConnection.h"
|
||||
#include "MemoryManager.h"
|
||||
#include "PPU.h"
|
||||
#include "IKeyManager.h"
|
||||
|
||||
unique_ptr<IKeyManager> ControlManager::_keyManager = nullptr;
|
||||
shared_ptr<BaseControlDevice> ControlManager::_controlDevices[2] = { nullptr, nullptr };
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
#pragma once
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "BaseControlDevice.h"
|
||||
#include "IMemoryHandler.h"
|
||||
#include "IGameBroadcaster.h"
|
||||
#include "Snapshotable.h"
|
||||
#include "../Utilities/SimpleLock.h"
|
||||
#include "IKeyManager.h"
|
||||
#include "IMemoryHandler.h"
|
||||
#include "Snapshotable.h"
|
||||
|
||||
class BaseControlDevice;
|
||||
class Zapper;
|
||||
class IGameBroadcaster;
|
||||
class IKeyManager;
|
||||
enum class MouseButton;
|
||||
|
||||
struct MousePosition
|
||||
{
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#include "Assembler.h"
|
||||
#include "CodeRunner.h"
|
||||
#include "DisassemblyInfo.h"
|
||||
#include "PPU.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
Debugger* Debugger::Instance = nullptr;
|
||||
const int Debugger::BreakpointTypeCount;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "APU.h"
|
||||
#include "CPU.h"
|
||||
#include "Console.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
DeltaModulationChannel *DeltaModulationChannel::Instance = nullptr;
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#include "stdafx.h"
|
||||
#include "../Utilities/HexUtilities.h"
|
||||
#include "DisassemblyInfo.h"
|
||||
#include "CPU.h"
|
||||
#include "LabelManager.h"
|
||||
#include "../Utilities/HexUtilities.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
string DisassemblyInfo::OPName[256];
|
||||
AddrMode DisassemblyInfo::OPMode[256];
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "stdafx.h"
|
||||
#include "FDS.h"
|
||||
#include "FdsAudio.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
FDS* FDS::Instance = nullptr;
|
||||
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
#pragma once
|
||||
#include "stdafx.h"
|
||||
#include <algorithm>
|
||||
#include "Snapshotable.h"
|
||||
#include "EmulationSettings.h"
|
||||
#include "APU.h"
|
||||
#include "BaseFdsChannel.h"
|
||||
#include "ModChannel.h"
|
||||
#include <algorithm>
|
||||
#include "BaseExpansionAudio.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
class FdsAudio : public BaseExpansionAudio
|
||||
{
|
||||
|
|
|
@ -5,6 +5,7 @@ using std::thread;
|
|||
#include "MessageManager.h"
|
||||
#include "GameServer.h"
|
||||
#include "Console.h"
|
||||
#include "ControlManager.h"
|
||||
#include "../Utilities/Socket.h"
|
||||
#include "PlayerListMessage.h"
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "stdafx.h"
|
||||
#include "PPU.h"
|
||||
#include "HdNesPack.h"
|
||||
#include "HdVideoFilter.h"
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "stdafx.h"
|
||||
#include "BaseMapper.h"
|
||||
#include "CPU.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
class JyCompany : public BaseMapper
|
||||
{
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "BaseExpansionAudio.h"
|
||||
#include "CPU.h"
|
||||
#include "Console.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
class MMC5Square : public SquareChannel
|
||||
{
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "NsfMapper.h"
|
||||
#include "CPU.h"
|
||||
#include "Console.h"
|
||||
#include "MemoryManager.h"
|
||||
|
||||
NsfMapper* NsfMapper::_instance;
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
#include "OekaKidsTablet.h"
|
||||
#include "ControlManager.h"
|
||||
#include "GameServerConnection.h"
|
||||
#include "IKeyManager.h"
|
||||
#include "IKeyManager.h"
|
||||
|
||||
void OekaKidsTablet::StreamState(bool saving)
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "MessageManager.h"
|
||||
#include "Debugger.h"
|
||||
#include "MovieManager.h"
|
||||
#include "PPU.h"
|
||||
#include "../Utilities/FolderUtilities.h"
|
||||
#include "../Utilities/md5.h"
|
||||
#include "../Utilities/ZipWriter.h"
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "Console.h"
|
||||
#include "MemoryManager.h"
|
||||
#include "LabelManager.h"
|
||||
#include "EmulationSettings.h"
|
||||
#include "../Utilities/HexUtilities.h"
|
||||
#include "../Utilities/FolderUtilities.h"
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "ScaleFilter.h"
|
||||
#include "VideoRenderer.h"
|
||||
#include "RewindManager.h"
|
||||
#include "PPU.h"
|
||||
|
||||
unique_ptr<VideoDecoder> VideoDecoder::Instance;
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "PPU.h"
|
||||
#include "ControlManager.h"
|
||||
#include "GameServerConnection.h"
|
||||
#include "IKeyManager.h"
|
||||
|
||||
void Zapper::StreamState(bool saving)
|
||||
{
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "../Utilities/Timer.h"
|
||||
#include "../Core/MessageManager.h"
|
||||
#include "../Core/ControlManager.h"
|
||||
#include "../Core/EmulationSettings.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
#include "stdafx.h"
|
||||
#include <Dwmapi.h>
|
||||
#include "Renderer.h"
|
||||
#include "DirectXTK/SpriteBatch.h"
|
||||
#include "DirectXTK/SpriteFont.h"
|
||||
#include "DirectXTK/DDSTextureLoader.h"
|
||||
#include "DirectXTK/WICTextureLoader.h"
|
||||
#include "../Core/PPU.h"
|
||||
#include "../Core/VideoRenderer.h"
|
||||
#include "../Core/VideoDecoder.h"
|
||||
#include "../Core/EmulationSettings.h"
|
||||
#include "../Core/MessageManager.h"
|
||||
#include "../Utilities/UTF8Util.h"
|
||||
#include "../Core/HdNesPack.h"
|
||||
|
||||
using namespace DirectX;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue