Merge pull request #11817 from Pokechu22/solitaire-and-mahjong-bounding-box
GameINI: Enable bounding box for "Solitaire & Mahjong"
This commit is contained in:
commit
2e9b7f1192
|
@ -0,0 +1,17 @@
|
||||||
|
# RSOE4Z, RSOP4Z - Solitaire & Mahjong
|
||||||
|
|
||||||
|
[Core]
|
||||||
|
# Values set here will override the main Dolphin settings.
|
||||||
|
|
||||||
|
[OnLoad]
|
||||||
|
# Add memory patches to be loaded once on boot here.
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
# Add memory patches to be applied every frame here.
|
||||||
|
|
||||||
|
[ActionReplay]
|
||||||
|
# Add action replay cheats here.
|
||||||
|
|
||||||
|
[Video_Hacks]
|
||||||
|
BBoxEnable = True
|
||||||
|
ImmediateXFBEnable = False
|
|
@ -136,7 +136,7 @@ void DolphinAnalytics::ReportGameStart()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep in sync with enum class GameQuirk definition.
|
// Keep in sync with enum class GameQuirk definition.
|
||||||
constexpr std::array<const char*, 27> GAME_QUIRKS_NAMES{
|
constexpr std::array<const char*, 28> GAME_QUIRKS_NAMES{
|
||||||
"directly-reads-wiimote-input",
|
"directly-reads-wiimote-input",
|
||||||
"uses-DVDLowStopLaser",
|
"uses-DVDLowStopLaser",
|
||||||
"uses-DVDLowOffset",
|
"uses-DVDLowOffset",
|
||||||
|
@ -164,6 +164,7 @@ constexpr std::array<const char*, 27> GAME_QUIRKS_NAMES{
|
||||||
"mismatched-gpu-normals-between-cp-and-xf",
|
"mismatched-gpu-normals-between-cp-and-xf",
|
||||||
"mismatched-gpu-tex-coords-between-cp-and-xf",
|
"mismatched-gpu-tex-coords-between-cp-and-xf",
|
||||||
"mismatched-gpu-matrix-indices-between-cp-and-xf",
|
"mismatched-gpu-matrix-indices-between-cp-and-xf",
|
||||||
|
"reads-bounding-box",
|
||||||
};
|
};
|
||||||
static_assert(GAME_QUIRKS_NAMES.size() == static_cast<u32>(GameQuirk::COUNT),
|
static_assert(GAME_QUIRKS_NAMES.size() == static_cast<u32>(GameQuirk::COUNT),
|
||||||
"Game quirks names and enum definition are out of sync.");
|
"Game quirks names and enum definition are out of sync.");
|
||||||
|
|
|
@ -89,6 +89,11 @@ enum class GameQuirk
|
||||||
// but testing is needed to find out which of these is actually used for what.
|
// but testing is needed to find out which of these is actually used for what.
|
||||||
MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF,
|
MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF,
|
||||||
|
|
||||||
|
// Only a few games use the Bounding Box feature. Note that every game initializes the bounding
|
||||||
|
// box registers (using BPMEM_CLEARBBOX1/BPMEM_CLEARBBOX2) on startup, as part of the SDK, but
|
||||||
|
// only a few read them (from PE_BBOX_LEFT etc.)
|
||||||
|
READS_BOUNDING_BOX,
|
||||||
|
|
||||||
COUNT,
|
COUNT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "Core/Config/MainSettings.h"
|
#include "Core/Config/MainSettings.h"
|
||||||
#include "Core/ConfigManager.h"
|
#include "Core/ConfigManager.h"
|
||||||
#include "Core/Core.h"
|
#include "Core/Core.h"
|
||||||
|
#include "Core/DolphinAnalytics.h"
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
|
|
||||||
// TODO: ugly
|
// TODO: ugly
|
||||||
|
@ -171,6 +172,8 @@ u32 VideoBackendBase::Video_GetQueryResult(PerfQueryType type)
|
||||||
|
|
||||||
u16 VideoBackendBase::Video_GetBoundingBox(int index)
|
u16 VideoBackendBase::Video_GetBoundingBox(int index)
|
||||||
{
|
{
|
||||||
|
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::READS_BOUNDING_BOX);
|
||||||
|
|
||||||
if (!g_ActiveConfig.bBBoxEnable)
|
if (!g_ActiveConfig.bBBoxEnable)
|
||||||
{
|
{
|
||||||
static bool warn_once = true;
|
static bool warn_once = true;
|
||||||
|
|
Loading…
Reference in New Issue