mirror of
https://github.com/Tinob/Ishiiruka.git
synced 2024-06-16 03:17:27 -04:00
merge latest master changes
This commit is contained in:
parent
8bf4391524
commit
b3f7f04557
|
@ -17,7 +17,3 @@ EmulationIssues =
|
|||
|
||||
[ActionReplay]
|
||||
# Add action replay cheats here.
|
||||
|
||||
[Video_Settings]
|
||||
FastDepthCalc = False
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
[EmuState]
|
||||
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||
EmulationIssues = Needs real xfb for the videos to display. Shadow issues with fastdepth (D3D).
|
||||
EmulationIssues = Needs real xfb for the videos to display.
|
||||
EmulationStateId = 4
|
||||
|
||||
[OnLoad]
|
||||
|
@ -20,4 +20,3 @@ EmulationStateId = 4
|
|||
[Video_Settings]
|
||||
UseXFB = True
|
||||
UseRealXFB = True
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
[EmuState]
|
||||
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||
EmulationIssues = Needs real xfb for the videos to display. Shadow issues with fastdepth (D3D).
|
||||
EmulationIssues = Needs real xfb for the videos to display.
|
||||
EmulationStateId = 4
|
||||
|
||||
[OnLoad]
|
||||
|
@ -20,4 +20,3 @@ EmulationStateId = 4
|
|||
[Video_Settings]
|
||||
UseXFB = True
|
||||
UseRealXFB = True
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
[EmuState]
|
||||
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||
EmulationIssues = Needs real xfb for the videos to display. Shadow issues with fastdepth (D3D).
|
||||
EmulationIssues = Needs real xfb for the videos to display.
|
||||
EmulationStateId = 4
|
||||
|
||||
[OnLoad]
|
||||
|
@ -20,4 +20,3 @@ EmulationStateId = 4
|
|||
[Video_Settings]
|
||||
UseXFB = True
|
||||
UseRealXFB = True
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -21,8 +21,5 @@ EmulationIssues =
|
|||
EFBAccessEnable = True
|
||||
EFBToTextureEnable = False
|
||||
|
||||
[Video_Settings]
|
||||
FastDepthCalc = False
|
||||
|
||||
[Video_Stereoscopy]
|
||||
StereoConvergence = 115
|
||||
|
|
|
@ -21,4 +21,3 @@ EmulationIssues =
|
|||
|
||||
[Video_Settings]
|
||||
SafeTextureCacheColorSamples = 512
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -16,6 +16,3 @@ EmulationIssues =
|
|||
|
||||
[ActionReplay]
|
||||
# Add action replay cheats here.
|
||||
|
||||
[Video_Settings]
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -19,5 +19,3 @@ EmulationStateId = 4
|
|||
|
||||
[Video_Settings]
|
||||
SafeTextureCacheColorSamples = 512
|
||||
FastDepthCalc = False
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@ EmulationIssues = Sound crackling can be fixed by lle audio.
|
|||
# Add action replay cheats here.
|
||||
|
||||
[Video_Settings]
|
||||
FastDepthCalc = False
|
||||
SafeTextureCacheColorSamples = 512
|
||||
|
||||
[Video_Stereoscopy]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
[EmuState]
|
||||
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||
EmulationStateId = 4
|
||||
EmulationIssues = Needs real wiimote and motion plus. Time stone transition needs Fast Depth off.
|
||||
EmulationIssues = Needs real wiimote and motion plus.
|
||||
|
||||
[OnLoad]
|
||||
# Add memory patches to be loaded once on boot here.
|
||||
|
@ -18,6 +18,3 @@ EmulationIssues = Needs real wiimote and motion plus. Time stone transition need
|
|||
[Video_Hacks]
|
||||
EFBAccessEnable = True
|
||||
EFBEmulateFormatChanges = True
|
||||
|
||||
[Video_Settings]
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
[Core]
|
||||
# Values set here will override the main Dolphin settings.
|
||||
CPUThread = False
|
||||
|
||||
[EmuState]
|
||||
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||
|
@ -17,6 +18,5 @@ EmulationIssues =
|
|||
[ActionReplay]
|
||||
# Add action replay cheats here.
|
||||
|
||||
[Core]
|
||||
CPUThread = False
|
||||
|
||||
[Video_Hacks]
|
||||
EFBToTextureEnable = False
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
[EmuState]
|
||||
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||
EmulationIssues = Glitches in the game menu with fast depth enabled.
|
||||
EmulationIssues =
|
||||
EmulationStateId = 4
|
||||
|
||||
[OnLoad]
|
||||
|
@ -16,6 +16,3 @@ EmulationStateId = 4
|
|||
|
||||
[ActionReplay]
|
||||
# Add action replay cheats here.
|
||||
|
||||
[Video_Settings]
|
||||
FastDepthCalc = False
|
||||
|
|
|
@ -678,10 +678,10 @@ static void BeginField(FieldType field)
|
|||
// has the first line. For the field with the second line, we
|
||||
// offset the xfb by (-stride_of_one_line) to get the start
|
||||
// address of the full xfb.
|
||||
if (field == FieldType::FIELD_ODD && m_VBlankTimingOdd.PRB == m_VBlankTimingEven.PRB + 1)
|
||||
if (field == FieldType::FIELD_ODD && m_VBlankTimingOdd.PRB == m_VBlankTimingEven.PRB + 1 && xfbAddr)
|
||||
xfbAddr -= fbStride * 2;
|
||||
|
||||
if (field == FieldType::FIELD_EVEN && m_VBlankTimingOdd.PRB == m_VBlankTimingEven.PRB - 1)
|
||||
if (field == FieldType::FIELD_EVEN && m_VBlankTimingOdd.PRB == m_VBlankTimingEven.PRB - 1 && xfbAddr)
|
||||
xfbAddr -= fbStride * 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -497,39 +497,29 @@ void Interpreter::lhzx(UGeckoInstruction _inst)
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: is this right?
|
||||
// FIXME: Should rollback if a DSI occurs
|
||||
void Interpreter::lswx(UGeckoInstruction _inst)
|
||||
{
|
||||
u32 EA = Helper_Get_EA_X(_inst);
|
||||
u32 n = (u8)PowerPC::ppcState.xer_stringctrl;
|
||||
int r = _inst.RD;
|
||||
int i = 0;
|
||||
|
||||
if (n > 0)
|
||||
// Confirmed by hardware test that the zero case doesn't zero rGPR[r]
|
||||
for (u32 n = 0; n < static_cast<u8>(PowerPC::ppcState.xer_stringctrl); n++)
|
||||
{
|
||||
rGPR[r] = 0;
|
||||
do
|
||||
{
|
||||
u32 TempValue = PowerPC::Read_U8(EA) << (24 - i);
|
||||
if (PowerPC::ppcState.Exceptions & EXCEPTION_DSI)
|
||||
{
|
||||
PanicAlert("DSI exception in lswx.");
|
||||
NOTICE_LOG(POWERPC, "DSI exception in lswx");
|
||||
return;
|
||||
}
|
||||
rGPR[r] |= TempValue;
|
||||
int reg = (_inst.RD + (n >> 2)) & 0x1f;
|
||||
int offset = (n & 3) << 3;
|
||||
if ((n & 3) == 0)
|
||||
rGPR[reg] = 0;
|
||||
|
||||
EA++;
|
||||
n--;
|
||||
i += 8;
|
||||
if (i == 32)
|
||||
{
|
||||
i = 0;
|
||||
r = (r + 1) & 31;
|
||||
rGPR[r] = 0;
|
||||
}
|
||||
} while (n > 0);
|
||||
u32 TempValue = PowerPC::Read_U8(EA) << (24 - offset);
|
||||
if (PowerPC::ppcState.Exceptions & EXCEPTION_DSI)
|
||||
{
|
||||
PanicAlert("DSI exception in lswx.");
|
||||
NOTICE_LOG(POWERPC, "DSI exception in lswx");
|
||||
return;
|
||||
}
|
||||
rGPR[reg] |= TempValue;
|
||||
|
||||
EA++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -740,7 +730,7 @@ void Interpreter::stswx(UGeckoInstruction _inst)
|
|||
if (i == 32)
|
||||
{
|
||||
i = 0;
|
||||
r++;
|
||||
r = (r + 1) & 0x1f; // wrap
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <wx/textdlg.h>
|
||||
#include <wx/thread.h>
|
||||
#include <wx/toolbar.h>
|
||||
#include <wx/aui/dockart.h>
|
||||
// clang-format on
|
||||
|
||||
#include "Common/BreakPoints.h"
|
||||
|
@ -779,4 +780,5 @@ void CCodeWindow::UpdateButtonStates()
|
|||
symbols->SetFont(DebuggerFont);
|
||||
callers->SetFont(DebuggerFont);
|
||||
calls->SetFont(DebuggerFont);
|
||||
m_aui_manager.GetArtProvider()->SetFont(wxAUI_DOCKART_CAPTION_FONT, DebuggerFont);
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <wx/aui/auibar.h>
|
||||
#include <wx/aui/auibook.h>
|
||||
#include <wx/aui/framemanager.h>
|
||||
#include <wx/aui/dockart.h>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/FileUtil.h"
|
||||
|
@ -32,6 +33,8 @@
|
|||
#include "DolphinWX/LogWindow.h"
|
||||
#include "DolphinWX/WxUtils.h"
|
||||
#include "DolphinWX/Debugger/CodeWindow.h"
|
||||
#include "DolphinWX/WxUtils.h"
|
||||
#include "DolphinWX/Debugger/DebuggerUIUtil.h"
|
||||
|
||||
// ------------
|
||||
// Aui events
|
||||
|
@ -622,6 +625,7 @@ void CFrame::TogglePaneStyle(bool On, int EventId)
|
|||
Pane.Dockable(!m_bNoDocking);
|
||||
}
|
||||
}
|
||||
m_Mgr->GetArtProvider()->SetFont(wxAUI_DOCKART_CAPTION_FONT, DebuggerFont);
|
||||
m_Mgr->Update();
|
||||
}
|
||||
|
||||
|
|
|
@ -370,7 +370,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title)
|
|||
szr_other->Add(CreateCheckBox(page_general, _("Show NetPlay Ping"),
|
||||
wxGetTranslation(show_netplay_ping_desc),
|
||||
vconfig.bShowNetPlayPing));
|
||||
szr_other->Add(CreateCheckBox(page_general, _("Auto adjust Window Size"), (auto_window_size_desc), SConfig::GetInstance().bRenderWindowAutoSize));
|
||||
szr_other->Add(CreateCheckBox(page_general, _("Auto Adjust Window Size"), (auto_window_size_desc), SConfig::GetInstance().bRenderWindowAutoSize));
|
||||
szr_other->Add(CreateCheckBox(page_general, _("Show NetPlay Messages"),
|
||||
wxGetTranslation(show_netplay_messages_desc),
|
||||
vconfig.bShowNetPlayMessages));
|
||||
|
@ -912,7 +912,7 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title)
|
|||
szr_utility->Add(shaderprecompile = CreateCheckBox(page_advanced, _("Compile Shaders on Startup"), (shader_precompile_desc), vconfig.bCompileShaderOnStartup));
|
||||
|
||||
#if !defined WIN32 && defined HAVE_LIBAV
|
||||
szr_utility->Add(CreateCheckBox(page_advanced, _("Frame Dumps use FFV1"), (use_ffv1_desc), vconfig.bUseFFV1));
|
||||
szr_utility->Add(CreateCheckBox(page_advanced, _("Frame Dumps Use FFV1"), (use_ffv1_desc), vconfig.bUseFFV1));
|
||||
#endif
|
||||
|
||||
wxStaticBoxSizer* const group_utility = new wxStaticBoxSizer(wxVERTICAL, page_advanced, _("Utility"));
|
||||
|
|
|
@ -569,7 +569,7 @@ void Renderer::ClearScreen(const EFBRectangle& rc, bool color_enable, bool alpha
|
|||
void Renderer::ReinterpretPixelData(unsigned int convtype)
|
||||
{
|
||||
// EXISTINGD3D11TODO: MSAA support..
|
||||
D3D12_RECT source = CD3DX12_RECT(0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight());
|
||||
D3D12_RECT source = CD3DX12_RECT(0, 0, GetTargetWidth(), GetTargetHeight());
|
||||
|
||||
D3D12_SHADER_BYTECODE pixel_shader = {};
|
||||
|
||||
|
@ -586,7 +586,7 @@ void Renderer::ReinterpretPixelData(unsigned int convtype)
|
|||
ERROR_LOG(VIDEO, "Trying to reinterpret pixel data with unsupported conversion type %d", convtype);
|
||||
return;
|
||||
}
|
||||
D3D::SetViewportAndScissor(0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight());
|
||||
D3D::SetViewportAndScissor(0, 0, GetTargetWidth(), GetTargetHeight());
|
||||
|
||||
FramebufferManager::GetEFBColorTempTexture()->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_RENDER_TARGET);
|
||||
D3D::current_command_list->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTempTexture()->GetRTV(), FALSE, nullptr);
|
||||
|
@ -595,8 +595,8 @@ void Renderer::ReinterpretPixelData(unsigned int convtype)
|
|||
D3D::DrawShadedTexQuad(
|
||||
FramebufferManager::GetEFBColorTexture(),
|
||||
&source,
|
||||
g_renderer->GetTargetWidth(),
|
||||
g_renderer->GetTargetHeight(),
|
||||
GetTargetWidth(),
|
||||
GetTargetHeight(),
|
||||
pixel_shader,
|
||||
StaticShaderCache::GetSimpleVertexShader(),
|
||||
StaticShaderCache::GetSimpleVertexShaderInputLayout(),
|
||||
|
|
|
@ -541,7 +541,7 @@ void Renderer::ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaE
|
|||
void Renderer::ReinterpretPixelData(unsigned int convtype)
|
||||
{
|
||||
// TODO: MSAA support..
|
||||
D3D11_RECT source = CD3D11_RECT(0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight());
|
||||
D3D11_RECT source = CD3D11_RECT(0, 0, GetTargetWidth(), GetTargetHeight());
|
||||
|
||||
ID3D11PixelShader* pixel_shader;
|
||||
if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6(true);
|
||||
|
@ -553,17 +553,17 @@ void Renderer::ReinterpretPixelData(unsigned int convtype)
|
|||
}
|
||||
|
||||
// convert data and set the target texture as our new EFB
|
||||
g_renderer->ResetAPIState();
|
||||
ResetAPIState();
|
||||
D3D::context->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTempTexture()->GetRTV(), nullptr);
|
||||
D3D11_VIEWPORT vp = CD3D11_VIEWPORT(0.f, 0.f, (float)g_renderer->GetTargetWidth(), (float)g_renderer->GetTargetHeight());
|
||||
D3D11_VIEWPORT vp = CD3D11_VIEWPORT(0.f, 0.f, (float)GetTargetWidth(), (float)GetTargetHeight());
|
||||
D3D::context->RSSetViewports(1, &vp);
|
||||
|
||||
D3D::SetPointCopySampler();
|
||||
D3D::drawShadedTexQuad(
|
||||
FramebufferManager::GetEFBColorTexture()->GetSRV(),
|
||||
&source,
|
||||
g_renderer->GetTargetWidth(),
|
||||
g_renderer->GetTargetHeight(),
|
||||
GetTargetWidth(),
|
||||
GetTargetHeight(),
|
||||
pixel_shader,
|
||||
VertexShaderCache::GetSimpleVertexShader(),
|
||||
VertexShaderCache::GetSimpleInputLayout());
|
||||
|
|
|
@ -418,7 +418,7 @@ void Renderer::ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaE
|
|||
void Renderer::ReinterpretPixelData(unsigned int convtype)
|
||||
{
|
||||
RECT source;
|
||||
SetRect(&source, 0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight());
|
||||
SetRect(&source, 0, 0, GetTargetWidth(), GetTargetHeight());
|
||||
|
||||
LPDIRECT3DPIXELSHADER9 pixel_shader;
|
||||
if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6();
|
||||
|
@ -430,24 +430,24 @@ void Renderer::ReinterpretPixelData(unsigned int convtype)
|
|||
}
|
||||
|
||||
// convert data and set the target texture as our new EFB
|
||||
g_renderer->ResetAPIState();
|
||||
ResetAPIState();
|
||||
D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorReinterpretSurface());
|
||||
D3DVIEWPORT9 vp;
|
||||
vp.X = 0;
|
||||
vp.Y = 0;
|
||||
vp.Width = g_renderer->GetTargetWidth();
|
||||
vp.Height = g_renderer->GetTargetHeight();
|
||||
vp.Width = GetTargetWidth();
|
||||
vp.Height = GetTargetHeight();
|
||||
vp.MinZ = 0.0;
|
||||
vp.MaxZ = 1.0;
|
||||
D3D::dev->SetViewport(&vp);
|
||||
D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
|
||||
D3D::drawShadedTexQuad(FramebufferManager::GetEFBColorTexture(), &source,
|
||||
g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(),
|
||||
g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(),
|
||||
GetTargetWidth(), GetTargetHeight(),
|
||||
GetTargetWidth(), GetTargetHeight(),
|
||||
pixel_shader, VertexShaderCache::GetSimpleVertexShader(0));
|
||||
FramebufferManager::SwapReinterpretTexture();
|
||||
D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER);
|
||||
g_renderer->RestoreAPIState();
|
||||
RestoreAPIState();
|
||||
FramebufferManager::InvalidateEFBCache();
|
||||
}
|
||||
|
||||
|
|
|
@ -937,13 +937,13 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data)
|
|||
{
|
||||
if (s_MSAASamples > 1)
|
||||
{
|
||||
g_renderer->ResetAPIState();
|
||||
ResetAPIState();
|
||||
|
||||
// Resolve our rectangle.
|
||||
FramebufferManager::GetEFBDepthTexture(efbPixelRc);
|
||||
glBindFramebuffer(GL_READ_FRAMEBUFFER, FramebufferManager::GetResolvedFramebuffer());
|
||||
|
||||
g_renderer->RestoreAPIState();
|
||||
RestoreAPIState();
|
||||
}
|
||||
|
||||
std::unique_ptr<float[]> depthMap(new float[targetPixelRcWidth * targetPixelRcHeight]);
|
||||
|
@ -976,13 +976,13 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data)
|
|||
{
|
||||
if (s_MSAASamples > 1)
|
||||
{
|
||||
g_renderer->ResetAPIState();
|
||||
ResetAPIState();
|
||||
|
||||
// Resolve our rectangle.
|
||||
FramebufferManager::GetEFBColorTexture(efbPixelRc);
|
||||
glBindFramebuffer(GL_READ_FRAMEBUFFER, FramebufferManager::GetResolvedFramebuffer());
|
||||
|
||||
g_renderer->RestoreAPIState();
|
||||
RestoreAPIState();
|
||||
}
|
||||
|
||||
std::unique_ptr<u32[]> colorMap(new u32[targetPixelRcWidth * targetPixelRcHeight]);
|
||||
|
|
|
@ -532,9 +532,6 @@ TextureCacheBase::TCacheEntryBase* TextureCacheBase::Load(const u32 stage)
|
|||
u32 tex_levels = use_mipmaps ? ((tex.texMode1[id].max_lod + 0xf) / 0x10 + 1) : 1;
|
||||
const bool from_tmem = tex.texImage1[id].image_type != 0;
|
||||
|
||||
if (0 == address)
|
||||
return nullptr;
|
||||
|
||||
// TexelSizeInNibbles(format) * width * height / 16;
|
||||
const u32 bsw = TexDecoder_GetBlockWidthInTexels(texformat);
|
||||
const u32 bsh = TexDecoder_GetBlockHeightInTexels(texformat);
|
||||
|
|
Loading…
Reference in a new issue