mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-05-13 23:30:02 -05:00
Detects a situation where the game is writing to the dcache at the address being DMA'd. As we do not have dcache emulation, invalid data is being DMA'd causing audio glitches. The following code detects this and enables the DMA to complete instantly before the invalid data is written. Added accurate ARAM DMA transfer timing. Removed the addition of DSP exception checking.
47 lines
869 B
C++
47 lines
869 B
C++
// Copyright 2013 Dolphin Emulator Project
|
|
// Licensed under GPLv2
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include "Common/ChunkFile.h"
|
|
#include "Core/PowerPC/CPUCoreBase.h"
|
|
#include "Core/PowerPC/JitCommon/JitBackpatch.h"
|
|
|
|
namespace JitInterface
|
|
{
|
|
enum
|
|
{
|
|
EXCEPTIONS_FIFO_WRITE
|
|
};
|
|
|
|
void DoState(PointerWrap &p);
|
|
|
|
CPUCoreBase *InitJitCore(int core);
|
|
void InitTables(int core);
|
|
CPUCoreBase *GetCore();
|
|
|
|
// Debugging
|
|
void WriteProfileResults(const std::string& filename);
|
|
|
|
// Memory Utilities
|
|
bool HandleFault(uintptr_t access_address, SContext* ctx);
|
|
|
|
// used by JIT to read instructions
|
|
u32 ReadOpcodeJIT(const u32 _Address);
|
|
|
|
// Clearing CodeCache
|
|
void ClearCache();
|
|
|
|
void ClearSafe();
|
|
|
|
void InvalidateICache(u32 address, u32 size);
|
|
|
|
void CompileExceptionCheck(int type);
|
|
|
|
void Shutdown();
|
|
}
|
|
extern bool bMMU;
|
|
|