GS: Move point list palette to gamedb

This commit is contained in:
Connor McLaughlin 2022-03-03 23:55:27 +10:00 committed by refractionpcsx2
parent de5690ddcb
commit 1c301ec889
9 changed files with 47 additions and 17 deletions

View File

@ -20196,6 +20196,11 @@ SLPM-55096:
name: "ThunderForce VI" name: "ThunderForce VI"
region: "NTSC-J" region: "NTSC-J"
compat: 5 compat: 5
SLPM-55102:
name: "Pia Carrot e Youkoso!! G.P. Gakuen Princess"
region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-55108: SLPM-55108:
name: "Fate - Unlimited Codes" name: "Fate - Unlimited Codes"
region: "NTSC-J" region: "NTSC-J"
@ -25054,6 +25059,8 @@ SLPM-65842:
SLPM-65843: SLPM-65843:
name: "120 Yen no Haru - 120 Yen Stories" name: "120 Yen no Haru - 120 Yen Stories"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-65844: SLPM-65844:
name: "Air [Best]" name: "Air [Best]"
region: "NTSC-J" region: "NTSC-J"
@ -25186,6 +25193,8 @@ SLPM-65888:
SLPM-65889: SLPM-65889:
name: "Kazoku Keikaku - Kokoro no Kizuna" name: "Kazoku Keikaku - Kokoro no Kizuna"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-65890: SLPM-65890:
name: "Shin Sangoku Musou 4" name: "Shin Sangoku Musou 4"
region: "NTSC-J" region: "NTSC-J"
@ -25784,9 +25793,13 @@ SLPM-66082:
SLPM-66083: SLPM-66083:
name: "Ramune - Garasu-Bin ni Utsuru Umi [Limited Edition]" name: "Ramune - Garasu-Bin ni Utsuru Umi [Limited Edition]"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66084: SLPM-66084:
name: "Ramune - Garasu-Bin ni Utsuru Umi" name: "Ramune - Garasu-Bin ni Utsuru Umi"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66085: SLPM-66085:
name: "Rumble Roses [Konami The Best]" name: "Rumble Roses [Konami The Best]"
region: "NTSC-J" region: "NTSC-J"
@ -25935,6 +25948,8 @@ SLPM-66138:
SLPM-66139: SLPM-66139:
name: "Duel Savior Destiny" name: "Duel Savior Destiny"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66140: SLPM-66140:
name: "Atelier Marie + Elie: Salburg no Renkinjutsushi 1&2" name: "Atelier Marie + Elie: Salburg no Renkinjutsushi 1&2"
region: "NTSC-J" region: "NTSC-J"
@ -26487,6 +26502,8 @@ SLPM-66301:
SLPM-66302: SLPM-66302:
name: "Clannad" name: "Clannad"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66307: SLPM-66307:
name: "Sengoku Musou 2" name: "Sengoku Musou 2"
region: "NTSC-J" region: "NTSC-J"
@ -27497,6 +27514,8 @@ SLPM-66610:
SLPM-66611: SLPM-66611:
name: "Tomoyo After - It's Wonderful Life [CS Edition]" name: "Tomoyo After - It's Wonderful Life [CS Edition]"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66612: SLPM-66612:
name: "School Love [Limited Edition]" name: "School Love [Limited Edition]"
region: "NTSC-J" region: "NTSC-J"
@ -28466,6 +28485,8 @@ SLPM-66918:
SLPM-66919: SLPM-66919:
name: "Kyuuketsu Kitan Moonties" name: "Kyuuketsu Kitan Moonties"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66920: SLPM-66920:
name: "Hoshi Furu" name: "Hoshi Furu"
region: "NTSC-J" region: "NTSC-J"
@ -28638,6 +28659,8 @@ SLPM-66989:
SLPM-66990: SLPM-66990:
name: "Majo-musume A La Mode II [Best Version]" name: "Majo-musume A La Mode II [Best Version]"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes:
pointListPalette: 1
SLPM-66991: SLPM-66991:
name: "Fuuuraiki [Best Version]" name: "Fuuuraiki [Best Version]"
region: "NTSC-J" region: "NTSC-J"

View File

@ -442,6 +442,7 @@ struct Pcsx2Config
WrapGSMem : 1, WrapGSMem : 1,
Mipmap : 1, Mipmap : 1,
AA1 : 1, AA1 : 1,
PointListPalette : 1,
ManualUserHacks : 1, ManualUserHacks : 1,
UserHacks_AlignSpriteX : 1, UserHacks_AlignSpriteX : 1,
UserHacks_AutoFlush : 1, UserHacks_AutoFlush : 1,

View File

@ -804,7 +804,8 @@ void GSUpdateConfig(const Pcsx2Config::GSOptions& new_config)
// This is where we would do finer-grained checks in the future. // This is where we would do finer-grained checks in the future.
// For example, flushing the texture cache when mipmap settings change. // For example, flushing the texture cache when mipmap settings change.
if (GSConfig.CRCHack != old_config.CRCHack) if (GSConfig.CRCHack != old_config.CRCHack ||
GSConfig.PointListPalette != old_config.PointListPalette)
{ {
// for automatic mipmaps, we need to reload the crc // for automatic mipmaps, we need to reload the crc
s_gs->SetGameCRC(s_gs->GetGameCRC(), s_gs->GetGameCRCOptions()); s_gs->SetGameCRC(s_gs->GetGameCRC(), s_gs->GetGameCRCOptions());
@ -1356,6 +1357,7 @@ void GSApp::Init()
m_default_configuration["override_GL_ARB_texture_barrier"] = "-1"; m_default_configuration["override_GL_ARB_texture_barrier"] = "-1";
m_default_configuration["paltex"] = "0"; m_default_configuration["paltex"] = "0";
m_default_configuration["png_compression_level"] = std::to_string(Z_BEST_SPEED); m_default_configuration["png_compression_level"] = std::to_string(Z_BEST_SPEED);
m_default_configuration["PointListPalette"] = "0";
m_default_configuration["PrecacheTextureReplacements"] = "0"; m_default_configuration["PrecacheTextureReplacements"] = "0";
m_default_configuration["preload_frame_with_gs_data"] = "0"; m_default_configuration["preload_frame_with_gs_data"] = "0";
m_default_configuration["Renderer"] = std::to_string(static_cast<int>(GSRendererType::Auto)); m_default_configuration["Renderer"] = std::to_string(static_cast<int>(GSRendererType::Auto));

View File

@ -26,14 +26,14 @@ const CRC::Game CRC::m_games[] =
{0x68CE6801, ArTonelico2, JP, 0}, {0x68CE6801, ArTonelico2, JP, 0},
{0xCE2C1DBF, ArTonelico2, EU, 0}, {0xCE2C1DBF, ArTonelico2, EU, 0},
{0x2113EA2E, MetalSlug6, JP, 0}, {0x2113EA2E, MetalSlug6, JP, 0},
{0x42E05BAF, TomoyoAfter, JP, PointListPalette}, {0x42E05BAF, TomoyoAfter, JP, 0},
{0x7800DC84, Clannad, JP, PointListPalette}, {0x7800DC84, Clannad, JP, 0},
{0xA6167B59, Lamune, JP, PointListPalette}, {0xA6167B59, Lamune, JP, 0},
{0xDDB59F46, KyuuketsuKitanMoonties, JP, PointListPalette}, {0xDDB59F46, KyuuketsuKitanMoonties, JP, 0},
{0xC8EE2562, PiaCarroteYoukosoGPGakuenPrincess, JP, PointListPalette}, {0xC8EE2562, PiaCarroteYoukosoGPGakuenPrincess, JP, 0},
{0x6CF94A43, KazokuKeikakuKokoroNoKizuna, JP, PointListPalette}, {0x6CF94A43, KazokuKeikakuKokoroNoKizuna, JP, 0},
{0xEDAF602D, DuelSaviorDestiny, JP, PointListPalette}, {0xEDAF602D, DuelSaviorDestiny, JP, 0},
{0xBB63D785, OneTwentyYenStories, JP, PointListPalette}, // no Haru: 120 Yen Stories {0xBB63D785, OneTwentyYenStories, JP, 0}, // no Haru: 120 Yen Stories
{0xA39517AB, FFX, EU, 0}, {0xA39517AB, FFX, EU, 0},
{0x78D83FD5, FFX, EU, 0}, // Demo {0x78D83FD5, FFX, EU, 0}, // Demo
{0xA39517AE, FFX, FR, 0}, {0xA39517AE, FFX, FR, 0},
@ -206,7 +206,7 @@ const CRC::Game CRC::m_games[] =
{0xA3643EB1, GiTS, KO, 0}, {0xA3643EB1, GiTS, KO, 0},
{0x28557423, GiTS, RU, 0}, {0x28557423, GiTS, RU, 0},
{0xBF6F101F, GiTS, EU, 0}, // same CRC as another US disc {0xBF6F101F, GiTS, EU, 0}, // same CRC as another US disc
{0xF442260C, MajokkoALaMode2, JP, PointListPalette}, {0xF442260C, MajokkoALaMode2, JP, 0},
{0xA616A6C2, TalesOfAbyss, US, 0}, {0xA616A6C2, TalesOfAbyss, US, 0},
{0x14FE77F7, TalesOfAbyss, US, 0}, {0x14FE77F7, TalesOfAbyss, US, 0},
{0xAA5EC3A3, TalesOfAbyss, JP, 0}, {0xAA5EC3A3, TalesOfAbyss, JP, 0},

View File

@ -156,11 +156,6 @@ public:
RegionCount, RegionCount,
}; };
enum Flags
{
PointListPalette = 1,
};
struct Game struct Game
{ {
u32 crc; u32 crc;

View File

@ -1827,9 +1827,10 @@ void GSRendererHW::Hacks::SetGameCRC(const CRC::Game& game)
m_oo = m_oo_map[hash]; m_oo = m_oo_map[hash];
m_cu = m_cu_map[hash]; m_cu = m_cu_map[hash];
if (game.flags & CRC::PointListPalette) if (GSConfig.PointListPalette)
{ {
ASSERT(m_oi == NULL); if (m_oi)
Console.Warning("Overriding m_oi with PointListPalette");
m_oi = &GSRendererHW::OI_PointListPalette; m_oi = &GSRendererHW::OI_PointListPalette;
} }

View File

@ -276,6 +276,7 @@ static const char* s_gs_hw_fix_names[] = {
"alignSprite", "alignSprite",
"mergeSprite", "mergeSprite",
"wildArmsHack", "wildArmsHack",
"pointListPalette",
"mipmap", "mipmap",
"trilinearFiltering", "trilinearFiltering",
"skipDrawStart", "skipDrawStart",
@ -310,6 +311,7 @@ bool GameDatabaseSchema::isUserHackHWFix(GSHWFixId id)
case GSHWFixId::Mipmap: case GSHWFixId::Mipmap:
case GSHWFixId::TexturePreloading: case GSHWFixId::TexturePreloading:
case GSHWFixId::ConservativeFramebuffer: case GSHWFixId::ConservativeFramebuffer:
case GSHWFixId::PointListPalette:
return false; return false;
#ifdef PCSX2_CORE #ifdef PCSX2_CORE
@ -385,6 +387,10 @@ u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions&
config.UserHacks_WildHack = (value > 0); config.UserHacks_WildHack = (value > 0);
break; break;
case GSHWFixId::PointListPalette:
config.PointListPalette = (value > 0);
break;
case GSHWFixId::Mipmap: case GSHWFixId::Mipmap:
{ {
if (value >= 0 && value <= static_cast<int>(HWMipmapLevel::Full)) if (value >= 0 && value <= static_cast<int>(HWMipmapLevel::Full))

View File

@ -70,6 +70,7 @@ namespace GameDatabaseSchema
AlignSprite, AlignSprite,
MergeSprite, MergeSprite,
WildArmsHack, WildArmsHack,
PointListPalette,
// integer settings // integer settings
Mipmap, Mipmap,

View File

@ -313,6 +313,7 @@ Pcsx2Config::GSOptions::GSOptions()
WrapGSMem = false; WrapGSMem = false;
Mipmap = true; Mipmap = true;
AA1 = true; AA1 = true;
PointListPalette = false;
ManualUserHacks = false; ManualUserHacks = false;
UserHacks_AlignSpriteX = false; UserHacks_AlignSpriteX = false;