Set some defaults for config. look into music bug

This commit is contained in:
R2DLiu 2020-12-31 22:25:20 -05:00
commit 17950c77e2
7 changed files with 11 additions and 17 deletions

View file

@ -145,7 +145,7 @@ const Info<bool> GFX_HACK_SKIP_EFB_COPY_TO_RAM{{System::GFX, "Hacks", "EFBToText
const Info<bool> GFX_HACK_SKIP_XFB_COPY_TO_RAM{{System::GFX, "Hacks", "XFBToTextureEnable"}, true};
const Info<bool> GFX_HACK_DISABLE_COPY_TO_VRAM{{System::GFX, "Hacks", "DisableCopyToVRAM"}, false};
const Info<bool> GFX_HACK_DEFER_EFB_COPIES{{System::GFX, "Hacks", "DeferEFBCopies"}, true};
const Info<bool> GFX_HACK_IMMEDIATE_XFB{{System::GFX, "Hacks", "ImmediateXFBEnable"}, false};
const Info<bool> GFX_HACK_IMMEDIATE_XFB{{System::GFX, "Hacks", "ImmediateXFBEnable"}, true};
const Info<bool> GFX_HACK_SKIP_DUPLICATE_XFBS{{System::GFX, "Hacks", "SkipDuplicateXFBs"}, true};
const Info<bool> GFX_HACK_COPY_EFB_SCALED{{System::GFX, "Hacks", "EFBScaledCopy"}, true};
const Info<bool> GFX_HACK_EFB_EMULATE_FORMAT_CHANGES{

View file

@ -1357,7 +1357,7 @@ static void ScheduleReads(u64 offset, u32 length, const DiscIO::Partition& parti
u64 dvd_offset = DVDThread::PartitionOffsetToRawOffset(offset, partition);
dvd_offset = Common::AlignDown(dvd_offset, DVD_ECC_BLOCK_SIZE);
if (SConfig::GetInstance().bFastDiscSpeed)
if (SConfig::GetInstance().bFastDiscSpeed) // DVDThread::GetFileName(partition, dvd_offset).find("audio") == std::string::npos
{
// The SUDTR setting makes us act as if all reads are buffered
buffer_start = std::numeric_limits<u64>::min();

View file

@ -411,4 +411,8 @@ void ReadFile(std::string& fileName, std::vector<u8>& buf)
INFO_LOG(SLIPPI, "Failed to open file: %s", fileName.c_str());
}
}
std::string GetFileName(const DiscIO::Partition &partition, u64 offset) {
return s_disc->GetFileSystem(partition)->FindFileInfo(offset)->GetName();
}
} // namespace DVDThread

View file

@ -62,4 +62,5 @@ void StartReadToEmulatedRAM(u32 output_address, u64 dvd_offset, u32 length,
s64 ticks_until_completion);
void ReadFile(std::string& fileName, std::vector<u8>& buf);
std::string GetFileName(const DiscIO::Partition& partition, u64 offset);
} // namespace DVDThread

View file

@ -88,6 +88,8 @@ void HacksWidget::CreateWidgets()
m_store_xfb_copies = new GraphicsBool(tr("Store XFB Copies to Texture Only"),
Config::GFX_HACK_SKIP_XFB_COPY_TO_RAM);
m_immediate_xfb = new GraphicsBool(tr("Immediately Present XFB"), Config::GFX_HACK_IMMEDIATE_XFB);
// Don't let people touch this
m_immediate_xfb->setEnabled(false);
m_skip_duplicate_xfbs = new GraphicsBool(tr("Skip Presenting Duplicate Frames"),
Config::GFX_HACK_SKIP_DUPLICATE_XFBS);

View file

@ -255,10 +255,12 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine
}
else
{
#ifndef IS_PLAYBACK
if (Settings::Instance().IsBootDefaultISO() && !Settings::Instance().GetDefaultGame().isEmpty())
{
boot = BootParameters::GenerateFromFile(Settings::Instance().GetDefaultGame().toStdString(), save_state_path);
}
#endif
MainWindow win{std::move(boot), static_cast<const char*>(options.get("movie"))};
if (options.is_set("debugger"))

View file

@ -300,28 +300,13 @@ static void BPWritten(const BPCmd& bp)
destAddr, srcRect.left, srcRect.top, srcRect.right, srcRect.bottom,
bpmem.copyTexSrcWH.x + 1, destStride, height, yScale);
#ifdef IS_PLAYBACK
bool is_depth_copy = bpmem.zcontrol.pixel_format == PEControl::Z24;
auto one = std::chrono::high_resolution_clock::now();
g_texture_cache->CopyRenderTargetToTexture(
destAddr, EFBCopyFormat::XFB, copy_width, height, destStride, is_depth_copy, srcRect,
false, false, yScale, s_gammaLUT[PE_copy.gamma], bpmem.triggerEFBCopy.clamp_top,
bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients());
auto two = std::chrono::high_resolution_clock::now();
WARN_LOG(SLIPPI, "timer: %d", (two - one).count());
#endif
// This stays in to signal end of a "frame"
g_renderer->RenderToXFB(destAddr, srcRect, destStride, height, s_gammaLUT[PE_copy.gamma]);
if (g_ActiveConfig.bImmediateXFB)
{
// below div two to convert from bytes to pixels - it expects width, not stride
#ifdef IS_PLAYBACK
g_renderer->Swap(destAddr, destStride / 2, destStride, height, CoreTiming::GetTicks(), s_gammaLUT[PE_copy.gamma], srcRect, bpmem.copyfilter.GetCoefficients(), yScale, bpmem.triggerEFBCopy.clamp_top, bpmem.triggerEFBCopy.clamp_bottom);
#else
g_renderer->Swap(destAddr, destStride / 2, destStride, height, CoreTiming::GetTicks(), s_gammaLUT[PE_copy.gamma], srcRect, bpmem.copyfilter.GetCoefficients(), yScale, bpmem.triggerEFBCopy.clamp_top, bpmem.triggerEFBCopy.clamp_bottom);
#endif
}
else
{