From 9317ad4b2336ce3aaf827a414b036fe41f2978ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 28 Dec 2023 21:08:43 +0100 Subject: [PATCH 1/3] Allow streaming .chd files --- Core/WebServer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/WebServer.cpp b/Core/WebServer.cpp index a2192984c0..31bed62f26 100644 --- a/Core/WebServer.cpp +++ b/Core/WebServer.cpp @@ -113,7 +113,7 @@ static bool RegisterServer(int port) { bool RemoteISOFileSupported(const std::string &filename) { // Disc-like files. - if (endsWithNoCase(filename, ".cso") || endsWithNoCase(filename, ".iso")) { + if (endsWithNoCase(filename, ".cso") || endsWithNoCase(filename, ".iso") || endsWithNoCase(filename, ".chd")) { return true; } // May work - but won't have supporting files. From cd00d068420cce0871ba2f9fe0dcdce41b2a8e5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 29 Dec 2023 00:17:35 +0100 Subject: [PATCH 2/3] Add reload button to GameBrowser. Fix assert if game load failed --- Common/File/PathBrowser.h | 3 +++ UI/EmuScreen.cpp | 9 +++++---- UI/MainScreen.cpp | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Common/File/PathBrowser.h b/Common/File/PathBrowser.h index aa7c7c068f..f6a8e782df 100644 --- a/Common/File/PathBrowser.h +++ b/Common/File/PathBrowser.h @@ -22,6 +22,9 @@ public: ~PathBrowser(); void SetPath(const Path &path); + void Refresh() { + HandlePath(); + } bool IsListingReady(); bool GetListing(std::vector &fileInfo, const char *filter = nullptr, bool *cancel = nullptr); diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 92a573c51c..8608df66cd 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -1452,8 +1452,9 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { using namespace Draw; DrawContext *draw = screenManager()->getDrawContext(); - if (!draw) + if (!draw) { return flags; // shouldn't really happen but I've seen a suspicious stack trace.. + } bool skipBufferEffects = g_Config.bSkipBufferEffects; @@ -1494,10 +1495,10 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { PSP_BeginHostFrame(); gpu->CopyDisplayToOutput(true); PSP_EndHostFrame(); - draw->SetViewport(viewport); - draw->SetScissorRect(0, 0, g_display.pixel_xres, g_display.pixel_yres); - darken(); } + draw->SetViewport(viewport); + draw->SetScissorRect(0, 0, g_display.pixel_xres, g_display.pixel_yres); + darken(); return flags; } diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index 6852cf9a8b..ce86f87b48 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -801,6 +801,11 @@ void GameBrowser::Refresh() { layoutChoice->AddChoice(ImageID("I_LINES")); layoutChoice->SetSelection(*gridStyle_ ? 0 : 1, false); layoutChoice->OnChoice.Handle(this, &GameBrowser::LayoutChange); + topBar->Add(new Choice(ImageID("I_ROTATE_LEFT"), new LayoutParams(64.0f, 64.0f)))->OnClick.Add([=](UI::EventParams &e) { + path_.Refresh(); + Refresh(); + return UI::EVENT_DONE; + }); topBar->Add(new Choice(ImageID("I_GEAR"), new LayoutParams(64.0f, 64.0f)))->OnClick.Handle(this, &GameBrowser::GridSettingsClick); Add(topBar); From 755b2a25356817fce92672d7317b7a5caad12000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 29 Dec 2023 00:40:16 +0100 Subject: [PATCH 3/3] Fix check for navigating upwards from http Paths --- Common/File/Path.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/File/Path.cpp b/Common/File/Path.cpp index a3d773f740..b9db9aba2c 100644 --- a/Common/File/Path.cpp +++ b/Common/File/Path.cpp @@ -320,7 +320,7 @@ bool Path::CanNavigateUp() const { } if (type_ == PathType::HTTP) { size_t rootSlash = path_.find_first_of('/', strlen("https://")); - if (rootSlash == path_.npos || path_.size() < rootSlash + 1) { + if (rootSlash == path_.npos || path_.size() == rootSlash + 1) { // This means, "http://server" or "http://server/". Can't go up. return false; }