mirror of
https://github.com/wiiu-env/ScreenshotWUPS.git
synced 2024-11-29 00:44:14 +01:00
Reduce lag in MK8 and Need for Speed Most Wanted U
This commit is contained in:
parent
fe5444d2be
commit
0ba843dab7
@ -41,6 +41,9 @@ ON_APPLICATION_START() {
|
|||||||
|
|
||||||
gShortNameEn = GetSanitizedNameOfCurrentApplication();
|
gShortNameEn = GetSanitizedNameOfCurrentApplication();
|
||||||
startFSIOThreads();
|
startFSIOThreads();
|
||||||
|
|
||||||
|
ApplyGameSpecificPatches();
|
||||||
|
|
||||||
VPADSetTVMenuInvalid(VPAD_CHAN_0, true);
|
VPADSetTVMenuInvalid(VPAD_CHAN_0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,3 +20,5 @@ bool gInProgressNotificationDisplayedTV = false;
|
|||||||
bool gNotAvailableNotificationDisplayed = false;
|
bool gNotAvailableNotificationDisplayed = false;
|
||||||
|
|
||||||
NMColor COLOR_RED = {237, 28, 36, 255};
|
NMColor COLOR_RED = {237, 28, 36, 255};
|
||||||
|
|
||||||
|
int32_t gThreadPriorityIncrease = 1;
|
@ -23,3 +23,5 @@ extern bool gInProgressNotificationDisplayedTV;
|
|||||||
extern bool gNotAvailableNotificationDisplayed;
|
extern bool gNotAvailableNotificationDisplayed;
|
||||||
|
|
||||||
extern NMColor COLOR_RED;
|
extern NMColor COLOR_RED;
|
||||||
|
|
||||||
|
extern int32_t gThreadPriorityIncrease;
|
@ -217,7 +217,7 @@ bool takeScreenshot(GX2ColorBuffer *srcBuffer, GX2ScanTarget scanTarget, GX2Surf
|
|||||||
|
|
||||||
bool res;
|
bool res;
|
||||||
|
|
||||||
auto threadPriority = OSGetThreadPriority(OSGetCurrentThread()) + 1;
|
auto threadPriority = OSGetThreadPriority(OSGetCurrentThread()) + gThreadPriorityIncrease;
|
||||||
if (threadPriority != OSGetThreadPriority(gThreadData.thread)) {
|
if (threadPriority != OSGetThreadPriority(gThreadData.thread)) {
|
||||||
DEBUG_FUNCTION_LINE_ERR("INFO! Set thread priority to %d", threadPriority);
|
DEBUG_FUNCTION_LINE_ERR("INFO! Set thread priority to %d", threadPriority);
|
||||||
if (!OSSetThreadPriority(gThreadData.thread, threadPriority)) {
|
if (!OSSetThreadPriority(gThreadData.thread, threadPriority)) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "StringTools.h"
|
#include "StringTools.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
#include "retain_vars.hpp"
|
||||||
#include <coreinit/title.h>
|
#include <coreinit/title.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <nn/acp/client.h>
|
#include <nn/acp/client.h>
|
||||||
@ -76,3 +77,24 @@ std::string GetSanitizedNameOfCurrentApplication() {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ApplyGameSpecificPatches() {
|
||||||
|
uint64_t titleID = OSGetTitleID();
|
||||||
|
// Mario Kart 8 has noticeable slowdown when taking screenshots in multiplayer
|
||||||
|
// Decrease the IO thread priority to fix this
|
||||||
|
if (titleID == 0x000500001010ED00L || // Mario Kart 8 EUR
|
||||||
|
titleID == 0x000500001010EB00L || // Mario Kart 8 JPN
|
||||||
|
titleID == 0x000500001010EC00L) { // Mario Kart 8 USA
|
||||||
|
gThreadPriorityIncrease = 2;
|
||||||
|
} else if (titleID == 0x0005000010128400L || // Need for Speed™ Most Wanted U EUR
|
||||||
|
titleID == 0x0005000010128800L || // Need for Speed™ Most Wanted U USA
|
||||||
|
titleID == 0x000500001012B700L) { // Need for Speed™ Most Wanted U JPN
|
||||||
|
gThreadPriorityIncrease = 14;
|
||||||
|
} else if (titleID == 0x0005000010101E00L || // New SUPER MARIO BROS. U EUR
|
||||||
|
titleID == 0x0005000010101D00L || // New SUPER MARIO BROS. U USA
|
||||||
|
titleID == 0x0005000010101C00L) { // NNew SUPER MARIO BROS. U JPN
|
||||||
|
gThreadPriorityIncrease = 2;
|
||||||
|
} else {
|
||||||
|
gThreadPriorityIncrease = 1;
|
||||||
|
}
|
||||||
|
}
|
@ -15,3 +15,5 @@ inline uint8_t RGBComponentToSRGB(uint8_t ci) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::string GetSanitizedNameOfCurrentApplication();
|
std::string GetSanitizedNameOfCurrentApplication();
|
||||||
|
|
||||||
|
void ApplyGameSpecificPatches();
|
||||||
|
Loading…
Reference in New Issue
Block a user