From 14bb7a60625d0b4e1b59812f7d71cd81fbd5863e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 29 Oct 2024 11:19:32 +0100 Subject: [PATCH 1/5] Reduce Windows debugger crashes on shutdown --- Core/System.cpp | 3 +++ GPU/Common/SoftwareTransformCommon.cpp | 4 ++-- GPU/GPU.cpp | 2 -- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Core/System.cpp b/Core/System.cpp index b8cb8f2182..6764e6901c 100644 --- a/Core/System.cpp +++ b/Core/System.cpp @@ -550,6 +550,9 @@ bool PSP_IsQuitting() { } void PSP_Shutdown() { + // Reduce the risk for weird races with the Windows GE debugger. + gpuDebug = nullptr; + Achievements::UnloadGame(); // Do nothing if we never inited. diff --git a/GPU/Common/SoftwareTransformCommon.cpp b/GPU/Common/SoftwareTransformCommon.cpp index 8d1624000c..c2a8b8f1ff 100644 --- a/GPU/Common/SoftwareTransformCommon.cpp +++ b/GPU/Common/SoftwareTransformCommon.cpp @@ -539,9 +539,9 @@ void SoftwareTransform::BuildDrawingParams(int prim, int vertexCount, u32 vertTy // so the operations are exact. bool pixelMapped = true; const u16 *indsIn = (const u16 *)inds; + const float uscale = gstate_c.curTextureWidth; + const float vscale = gstate_c.curTextureHeight; for (int t = 0; t < vertexCount; t += 3) { - float uscale = gstate_c.curTextureWidth; - float vscale = gstate_c.curTextureHeight; struct { int a; int b; } pairs[] = { {0, 1}, {1, 2}, {2, 0} }; for (int i = 0; i < ARRAY_SIZE(pairs); i++) { int a = indsIn[t + pairs[i].a]; diff --git a/GPU/GPU.cpp b/GPU/GPU.cpp index 38af2f75ba..341be4f42d 100644 --- a/GPU/GPU.cpp +++ b/GPU/GPU.cpp @@ -121,8 +121,6 @@ bool GPU_Init(GraphicsContext *ctx, Draw::DrawContext *draw) { #endif void GPU_Shutdown() { - // Reduce the risk for weird races with the Windows GE debugger. - gpuDebug = nullptr; delete gpu; gpu = nullptr; From dc122f85958838f346ae7d3b2bd1ac9ee3fdb0e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 29 Oct 2024 11:24:36 +0100 Subject: [PATCH 2/5] ReportScreen: Calculate the disc CRC while filling out the form. Prevents a temporary hang after the refactor. --- Core/HLE/sceHttp.cpp | 10 ---------- UI/ReportScreen.cpp | 20 ++++++++------------ UI/ReportScreen.h | 3 --- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/Core/HLE/sceHttp.cpp b/Core/HLE/sceHttp.cpp index b56f2cc9cf..55c0800131 100644 --- a/Core/HLE/sceHttp.cpp +++ b/Core/HLE/sceHttp.cpp @@ -23,7 +23,6 @@ // If http isn't loaded (seems unlikely), most functions should return SCE_KERNEL_ERROR_LIBRARY_NOTFOUND - // Could come in handy someday if we ever implement sceHttp* for real. enum PSPHttpMethod { PSP_HTTP_METHOD_GET, @@ -36,15 +35,6 @@ class HTTPTemplate { char useragent[512]; }; -class HTTPConnection { - -}; - -class HTTPRequest { - -}; - - int sceHttpSetResolveRetry(int connectionID, int retryCount) { ERROR_LOG(Log::sceNet, "UNIMPL sceHttpSetResolveRetry(%d, %d)", connectionID, retryCount); return 0; diff --git a/UI/ReportScreen.cpp b/UI/ReportScreen.cpp index e698abf6d1..238c057174 100644 --- a/UI/ReportScreen.cpp +++ b/UI/ReportScreen.cpp @@ -160,10 +160,13 @@ void CompatRatingChoice::SetupChoices() { AddChoice(4, rp->T("Nothing")); } -ReportScreen::ReportScreen(const Path &gamePath) // unused gamePath, after removing the background +ReportScreen::ReportScreen(const Path &gamePath) : UIDialogScreen(), gamePath_(gamePath) { enableReporting_ = Reporting::IsEnabled(); ratingEnabled_ = enableReporting_; + // Start computing a CRC immediately, we'll need it on submit. + // We won't enable the submit button until it's done. + Reporting::QueueCRC(gamePath_); } ScreenRenderFlags ReportScreen::render(ScreenRenderMode mode) { @@ -296,7 +299,7 @@ void ReportScreen::CreateViews() { if (tookScreenshot_ && !screenshotFilename_.empty()) { leftColumnItems->Add(new CheckBox(&includeScreenshot_, rp->T("FeedbackIncludeScreen", "Include a screenshot")))->SetEnabledPtr(&enableReporting_); - screenshot_ = leftColumnItems->Add(new AsyncImageFileView(screenshotFilename_, IS_KEEP_ASPECT, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT, Margins(12, 0)))); + screenshot_ = leftColumnItems->Add(new AsyncImageFileView(screenshotFilename_, IS_KEEP_ASPECT, new LinearLayoutParams(300, WRAP_CONTENT, Margins(12, 0)))); } else { if (tookScreenshot_) { includeScreenshot_ = false; @@ -317,10 +320,9 @@ void ReportScreen::CreateViews() { rightColumnItems->SetSpacing(0.0f); rightColumnItems->Add(new Choice(rp->T("Open Browser")))->OnClick.Handle(this, &ReportScreen::HandleBrowser); - showCrcButton_ = new Choice(rp->T("Show disc CRC")); - rightColumnItems->Add(showCrcButton_)->OnClick.Handle(this, &ReportScreen::HandleShowCRC); submit_ = new Choice(rp->T("Submit Feedback")); rightColumnItems->Add(submit_)->OnClick.Handle(this, &ReportScreen::HandleSubmit); + submit_->SetEnabled(false); // Waiting for CRC UpdateSubmit(); UpdateOverallDescription(); @@ -348,14 +350,14 @@ void ReportScreen::UpdateCRCInfo() { if (Reporting::HasCRC(gamePath_)) { std::string crc = StringFromFormat("%08X", Reporting::RetrieveCRC(gamePath_)); updated = ApplySafeSubstitutions(rp->T("FeedbackCRCValue", "Disc CRC: %1"), crc); - } else if (showCRC_) { + submit_->SetEnabled(true); + } else { updated = rp->T("FeedbackCRCCalculating", "Disc CRC: Calculating..."); } if (!updated.empty()) { crcInfo_->SetText(updated); crcInfo_->SetVisibility(V_VISIBLE); - showCrcButton_->SetEnabled(false); } } @@ -405,12 +407,6 @@ EventReturn ReportScreen::HandleBrowser(EventParams &e) { return EVENT_DONE; } -EventReturn ReportScreen::HandleShowCRC(EventParams &e) { - Reporting::QueueCRC(gamePath_); - showCRC_ = true; - return EVENT_DONE; -} - ReportFinishScreen::ReportFinishScreen(const Path &gamePath, ReportingOverallScore score) : UIDialogScreen(), gamePath_(gamePath), score_(score) { } diff --git a/UI/ReportScreen.h b/UI/ReportScreen.h index 8967cac82e..187116b428 100644 --- a/UI/ReportScreen.h +++ b/UI/ReportScreen.h @@ -54,7 +54,6 @@ protected: UI::EventReturn HandleChoice(UI::EventParams &e); UI::EventReturn HandleSubmit(UI::EventParams &e); UI::EventReturn HandleBrowser(UI::EventParams &e); - UI::EventReturn HandleShowCRC(UI::EventParams &e); UI::EventReturn HandleReportingChange(UI::EventParams &e); UI::Choice *submit_ = nullptr; @@ -62,7 +61,6 @@ protected: UI::TextView *reportingNotice_ = nullptr; UI::TextView *overallDescription_ = nullptr; UI::TextView *crcInfo_ = nullptr; - UI::Choice *showCrcButton_ = nullptr; Path gamePath_; Path screenshotFilename_; @@ -74,7 +72,6 @@ protected: bool ratingEnabled_; bool tookScreenshot_ = false; bool includeScreenshot_ = true; - bool showCRC_ = false; }; class ReportFinishScreen : public UIDialogScreen { From 4016539c85ab3332d1832253ca08f60f999d4b40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 29 Oct 2024 13:19:58 +0100 Subject: [PATCH 3/5] Pre-release shader cache version bump for safety --- GPU/GLES/ShaderManagerGLES.cpp | 2 +- GPU/Vulkan/ShaderManagerVulkan.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GPU/GLES/ShaderManagerGLES.cpp b/GPU/GLES/ShaderManagerGLES.cpp index b1fd36871a..8ca73b00fb 100644 --- a/GPU/GLES/ShaderManagerGLES.cpp +++ b/GPU/GLES/ShaderManagerGLES.cpp @@ -975,7 +975,7 @@ enum class CacheDetectFlags { }; #define CACHE_HEADER_MAGIC 0x83277592 -#define CACHE_VERSION 36 +#define CACHE_VERSION 37 struct CacheHeader { uint32_t magic; diff --git a/GPU/Vulkan/ShaderManagerVulkan.cpp b/GPU/Vulkan/ShaderManagerVulkan.cpp index 5a2ea9e750..d6e6b4a144 100644 --- a/GPU/Vulkan/ShaderManagerVulkan.cpp +++ b/GPU/Vulkan/ShaderManagerVulkan.cpp @@ -502,7 +502,7 @@ enum class VulkanCacheDetectFlags { }; #define CACHE_HEADER_MAGIC 0xff51f420 -#define CACHE_VERSION 51 +#define CACHE_VERSION 52 struct VulkanCacheHeader { uint32_t magic; From 7bb0c58e8d7a98f6a2bc5a541c7ff99bfa733b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 29 Oct 2024 13:20:11 +0100 Subject: [PATCH 4/5] Default to no reporting server, oops --- Core/Reporting.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/Reporting.cpp b/Core/Reporting.cpp index 41077ddc20..fab4efc812 100644 --- a/Core/Reporting.cpp +++ b/Core/Reporting.cpp @@ -225,10 +225,10 @@ namespace Reporting PurgeCRC(); } - // Returns the full host (e.g. report.ppsspp.org:80.) + // Returns the full host std::string ServerHost() { if (g_Config.sReportHost.compare("default") == 0) - return "report.ppsspp.org"; + return ""; return g_Config.sReportHost; } From 084e273398491f8b23a1221aee33c2b37741b1d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 29 Oct 2024 13:52:17 +0100 Subject: [PATCH 5/5] Swedish translation improvements --- assets/lang/sv_SE.ini | 84 +++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index b70129c46a..2e0b5e0ba9 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -68,7 +68,7 @@ Auto = Auto Device = Enhet Disabled = Disabled DSound (compatible) = DSound (kompatibel) -Enable Sound = Ljud +Enable Sound = Ljud på Global volume = Global volym Microphone = Mikrofon Microphone Device = Mikrofon-enhet @@ -291,14 +291,14 @@ Block address = Blockaddress By Address = Per address Copy savestates to memstick root = Kopiera save states till roten av memstick Create frame dump = Skapa framedump -Create/Open textures.ini file for current game = Create/Open textures.ini file for current game +Create/Open textures.ini file for current game = Skapa/öppna textures.ini-filen för aktuellt spel Current = Aktuellt -Debug overlay = Debug overlay -Debug stats = Debug stats -Dev Tools = Development tools +Debug overlay = Debug-overlay +Debug stats = Debug-statistik +Dev Tools = Utvecklingsverktyg DevMenu = DevMenu Disabled JIT functionality = Avstängd JIT-funktionalitet -Display refresh rate = Display refresh rate +Display refresh rate = Visa refresh rate Draw Frametimes Graph = Rita upp graf över frame-tider Dump Decrypted Eboot = Dumpa decrypterad EBOOT.BIN när spelet startar Dump next frame to log = Dumpa nästa frame till log @@ -311,12 +311,12 @@ Fragment = Fragment Frame timing = Frame timing Framedump tests = Framedump-tester Frame Profiler = Frame-profiler -GPI switch %1 = GPI switch %1 -GPI/GPO switches/LEDs = GPI/GPO switches/LEDs -GPU Allocator Viewer = GPU Allocator Viewer +GPI switch %1 = GPI-switch %1 +GPI/GPO switches/LEDs = GPI/GPO-switchar/LED-ar +GPU Allocator Viewer = GPU allokator-visare GPU Driver Test = GPU drivrutins-test GPU log profiler = GPU logg-profiler -GPU Profile = GPU profile +GPU Profile = GPU-profilering Jit Compare = Jit-jämförare JIT debug tools = JIT debug tools Log Dropped Frame Statistics = Log dropped frame statistics @@ -339,8 +339,8 @@ Run CPU Tests = Kör CPU-tester Save new textures = Spara nya texturer Shader Viewer = Shader-visare Show Developer Menu = Visa Developer-menyn -Show GPO LEDs = Show GPO LEDs -Show on-screen messages = Show on-screen messages +Show GPO LEDs = Visa GPO LEDs +Show on-screen messages = Visa on-screen-meddelanden Stats = Stats System Information = Systeminformation Texture ini file created = Textur-ini-fil skapad @@ -492,12 +492,12 @@ MsgErrorSavedataDataBroken = Sparad data var korrupt. MsgErrorSavedataMSFull = Memory Stick full. Check your storage space. MsgErrorSavedataNoData = Varning: Hittade ingen sparad data MsgErrorSavedataNoMS = Memory Stick inte isatt. -No EBOOT.PBP, misidentified game = no EBOOT.PBP, felidentifierat spel. +No EBOOT.PBP, misidentified game = EBOOT.PBP saknas, felidentifierat spel. Not a valid disc image. = Inte en giltig disc-image. OpenGLDriverError = OpenGL drivrutinsfel -PPSSPP doesn't support UMD Music. = PPSSPP doesn't support UMD Music. -PPSSPP doesn't support UMD Video. = PPSSPP doesn't support UMD Video. -PPSSPP plays PSP games, not PlayStation 1 or 2 games. = PPSSPP plays PSP games, not PlayStation 1 or 2 games. +PPSSPP doesn't support UMD Music. = PPSSPP stöder inte "UMD Music" +PPSSPP doesn't support UMD Video. = PPSSPP stöder inte "UMD Video" +PPSSPP plays PSP games, not PlayStation 1 or 2 games. = PPSSPP spelar endast PSP-spel, inte PlayStation-spel. PPSSPPDoesNotSupportInternet = PPSSPP currently does not support connecting to the Internet for DLC, PSN, or game updates. PS1 EBOOTs are not supported by PPSSPP. = PS1 EBOOTs stöds inte av PPSSPP. PSX game image detected. = Filen är en MODE2 image. PPSSPP stöder inte PS1-spel. @@ -511,11 +511,11 @@ This is a saved state, not a game. = Detta är ett sparat state, inte ett spel. This is save data, not a game. = Detta är sparad data, inte ett spel. Unable to create cheat file, disk may be full = Kunde inte skapa fusk-file, disk full? Unable to initialize rendering engine. = Misslyckades initiera renderingsmotor -Unable to write savedata, disk may be full = Unable to write savedata, disk may be full. +Unable to write savedata, disk may be full = Kunde inte skriva sparad data, disken kan vara full. Warning: Video memory FULL, reducing upscaling and switching to slow caching mode = Warning: Video memory FULL, reducing upscaling and switching to slow caching mode. Warning: Video memory FULL, switching to slow caching mode = Warning: Video memory FULL, switching to slow caching mode. -ZIP file detected (Require UnRAR) = file is compressed (ZIP).\nPlease decompress first (try UnRAR). -ZIP file detected (Require WINRAR) = file is compressed (ZIP).\nPlease decompress first (try WinRAR). +ZIP file detected (Require UnRAR) = filen är komprimerad (ZIP).\nPacka upp filen först (prova UnRAR). +ZIP file detected (Require WINRAR) = filen är komprimerad (ZIP).\nPacka upp filen först (prova WinRAR). [Game] Asia = Asia @@ -529,14 +529,14 @@ Delete Game = Ta bort spel Delete Game Config = Ta bort spelconfig Delete Save Data = Ta bort sparad data Europe = Europe -File size incorrect, bad or modified ISO = File size incorrect, bad or modified ISO +File size incorrect, bad or modified ISO = Filstorlek inkorrekt, eller korrupt ISO Game = Spel -Game ID unknown - not in the ReDump database = Game ID unknown - not in the ReDump database +Game ID unknown - not in the ReDump database = Spel-ID okänt - ej i ReDump's databas Game Settings = Spelinställningar Homebrew = Homebrew Hong Kong = Hong Kong InstallData = Installerad data -ISO OK according to the ReDump project = ISO OK according to the ReDump project +ISO OK according to the ReDump project = ISO-filen är OK enligt ReDump-projektet Japan = Japan Korea = Korea MB = MB @@ -599,9 +599,9 @@ Cardboard Screen Y Shift = Y shift (in % of the blank space) Cardboard VR Settings = Google Cardboard VR settings Cheats = Fusk Copy to texture = Copy to texture -Current GPU Driver = Current GPU Driver +Current GPU Driver = Aktuell GPU-drivrutin Debugging = Debuggning -Default GPU driver = Default GPU driver +Default GPU driver = Förvald GPU-drivrutin DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize Deposterize Tip = Fixes visual banding glitches in upscaled textures @@ -631,7 +631,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignorera kamerahål vid centrering -Install custom driver... = Install custom driver... +Install custom driver... = Installera inofficiell drivrutin... Integer scale factor = Integer scale factor Internal Resolution = Intern upplösning Lazy texture caching = Lat textur-caching (speedup) @@ -650,7 +650,7 @@ Native device resolution = Native device resolution Nearest = Närmast No (default) = No (default) No buffer = Ingen buffer -Render all frames = Render all frames +Render all frames = Rendera alla frames Same as Rendering resolution = Samma som renderingsupplösning Show Battery % = Visa batteri-% Show Speed = Visa hastighet @@ -948,10 +948,10 @@ Bloom = Bloom-effekt BloomNoBlur = Bloom (no blur) Brightness = Brightness Cartoon = Cartoon -CatmullRom = Bicubic (Catmull-Rom) Upscaler -ColorCorrection = Color correction -ColorPreservation = Color preservation -Contrast = Contrast +CatmullRom = Bicubisk uppskalning (Catmull-Rom) +ColorCorrection = Färgkorrektion +ColorPreservation = Bevara färger +Contrast = Kontrast CRT = CRT scanlines FakeReflections = FakeReflections FXAA = FXAA @@ -959,7 +959,7 @@ Gamma = Gamma GreenLevel = Grön-nivå Intensity = Intensitet LCDPersistence = LCD-persistens -MitchellNetravali = Bicubic (Mitchell-Netravali) Upscaler +MitchellNetravali = Bicubisk uppskalning (Mitchell-Netravali) Natural = Natural NaturalA = Natural Colors (no blur) Off = Off @@ -980,7 +980,7 @@ VideoSmoothingAA = VideoSmoothingAA Vignette = Vignett [PSPCredits] -all the forum mods = all the forum mods +all the forum mods = alla forum-moderatorer build server = bygg-server check = Kolla också in Dolphin, den bästa Wii/GC-emulatorn CheckOutPPSSPP = Check out PPSSPP, the awesome PSP emulator: https://www.ppsspp.org/ @@ -994,9 +994,9 @@ info4 = download from the PSN store on your real PSP. info5 = PSP är ett trademark av Sony, Inc. iOS builds = iOS builds license = Fri mjukvara enligt GPL 2.0+ -list = compatibility lists, forums, and development info +list = forums och development-information PPSSPP Forums = PPSSPP Forums -Privacy Policy = Privacy-policy +Privacy Policy = Privacy policy Share PPSSPP = Share PPSSPP specialthanks = Särskilt tack till: specialthanksKeithGalocy = at NVIDIA (hardware, advice) @@ -1037,7 +1037,7 @@ Spanish = Spanska [MemStick] Already contains PSP data = Innehåller redan PSP-data -Cancelled - try again = Cancelled - try again +Cancelled - try again = Avbruten - försök igen Checking... = Checking... Create or Choose a PSP folder = Skapa eller välj en PSP-mapp Current = Nuvarande @@ -1163,13 +1163,13 @@ Loaded. Save in game, restart, and load for less bugs. = Loaded. Save in game, r LoadStateDoesntExist = Misslyckades ladda state: Savestate doesn't exist! LoadStateWrongVersion = Misslyckades ladda state: Savestate is for an older version of PPSSPP! norewind = No rewind save states available. -Playing = Playing +Playing = Spelar PressESC = Tryck ESC för att öppna pausemenyn. replaceTextures_false = Texturer ersätts inte längre. replaceTextures_true = Textur-ersättning är igång. Saved State = State sparat -saveNewTextures_false = Texture saving was disabled. -saveNewTextures_true = Textures will now be saved to your storage. +saveNewTextures_false = Textur-sparning avstängt +saveNewTextures_true = Texturer sparas SpeedCustom2 = Speed: alternativ 2 standard = Hastighet: standard State load undone = State load ogjort @@ -1308,9 +1308,9 @@ DDMMYYYY = DDMMYYYY Decrease size = Minska storlek Developer Tools = Utvecklarverktyg Display Extra Info = Display extra info -Display Games on a grid = Display "Games" on a grid -Display Homebrew on a grid = Display "Homebrew & Demos" on a grid -Display Recent on a grid = Display "Recent" on a grid +Display Games on a grid = Visa "Spel" på ett rutnät +Display Homebrew on a grid = Visa "Homebrew & Demos" på ett rutnät +Display Recent on a grid = Visa "Senast spelat" på ett rutnät Emulation = Emulering Enable Cheats = Fusk Enable Compatibility Server Reports = Skicka kompatibilitetsrapporter @@ -1349,7 +1349,7 @@ PSP Model = PSP-modell PSP Settings = PSP-inställningar PSP-1000 = PSP-1000 PSP-2000/3000 = PSP-2000/3000 -Recent games = Tidigare spel +Recent games = Senast spelat Record Audio = Spela in audio till fil Record Display = Spela in video till fil Recording = Inspelningsinställningar