Compare commits

..
7 Commits
9 changed files with 99 additions and 57 deletions
+8
View File
@@ -15134,6 +15134,14 @@ SLES-50276:
name: "The Gift"
name-sort: "Gift, The"
region: "PAL-E"
patches:
CC76CD02:
content: |-
// Sound RPC races because of shared send/receive buffers with badly
// placed wait loop, fix by forcing all sound rpc to be synchronous.
// Ideal fix would be moving the rpc wait loop though.
author=Ziemas
patch=0,EE,002159e0,word,00000000
SLES-50277:
name: "Red Faction"
region: "PAL-E"
+1 -1
View File
@@ -216,7 +216,7 @@ void LogWindow::createUi()
m_newline_on_enter = state == Qt::CheckState::Checked;
});
m_input_hbox = new QHBoxLayout(this);
m_input_hbox = new QHBoxLayout;
m_input_hbox->addWidget(m_line_input, 1);
m_input_hbox->addWidget(m_local_echo_checkbox);
m_input_hbox->addWidget(m_newline_on_enter_checkbox);
+46 -46
View File
@@ -24378,12 +24378,12 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="442"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="443"/>
<source>GunCon 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="584"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="585"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="78"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="106"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="938"/>
@@ -24397,7 +24397,7 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="585"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="586"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="79"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="107"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="940"/>
@@ -24411,7 +24411,7 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="586"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="587"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="80"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="108"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="941"/>
@@ -24425,7 +24425,7 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="587"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="588"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="81"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="109"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="939"/>
@@ -24439,22 +24439,22 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="589"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="590"/>
<source>Trigger</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="590"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="591"/>
<source>Shoot Offscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="592"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="593"/>
<source>Calibration Shot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="594"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="595"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="139"/>
<location filename="../../pcsx2/USB/usb-pad/usb-seamic.cpp" line="363"/>
<location filename="../../pcsx2/USB/usb-pad/usb-train.cpp" line="154"/>
@@ -24462,7 +24462,7 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="595"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="596"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="140"/>
<location filename="../../pcsx2/USB/usb-pad/usb-seamic.cpp" line="364"/>
<location filename="../../pcsx2/USB/usb-pad/usb-train.cpp" line="155"/>
@@ -24470,14 +24470,14 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="596"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="597"/>
<location filename="../../pcsx2/USB/usb-pad/usb-seamic.cpp" line="365"/>
<location filename="../../pcsx2/USB/usb-pad/usb-train.cpp" line="156"/>
<source>C</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="597"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="598"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="90"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="116"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="936"/>
@@ -24491,7 +24491,7 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="598"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="599"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="91"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="117"/>
<location filename="../../pcsx2/USB/usb-pad/usb-pad.cpp" line="937"/>
@@ -24505,141 +24505,141 @@ Rename it to {} to remove this warning.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="599"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="600"/>
<source>Relative Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="600"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="601"/>
<source>Relative Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="601"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="602"/>
<source>Relative Up</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="602"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="603"/>
<source>Relative Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="611"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="612"/>
<source>Cursor Path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="612"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="613"/>
<source>Sets the crosshair image that this lightgun will use. Setting a crosshair image will disable the system cursor.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="615"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="616"/>
<source>Cursor Scale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="616"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="617"/>
<source>Scales the crosshair image set above.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="616"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="617"/>
<source>%.0f%%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="618"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="619"/>
<source>Cursor Color</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="619"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="620"/>
<source>Applies a color to the chosen crosshair images, can be used for multiple players. Specify in HTML/CSS format (e.g. #aabbcc)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="622"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="623"/>
<source>Manual Screen Configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="623"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="624"/>
<source>Forces the use of the screen parameters below, instead of automatic parameters if available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="626"/>
<source>X Scale (Sensitivity)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="627"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="630"/>
<source>Scales the position to simulate CRT curvature.</source>
<source>X Scale (Sensitivity)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="628"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="631"/>
<source>%.2f%%</source>
<source>Scales the position to simulate CRT curvature.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="629"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="632"/>
<source>%.2f%%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="630"/>
<source>Y Scale (Sensitivity)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="632"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="633"/>
<source>Center X</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="633"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="634"/>
<source>Sets the horizontal center position of the simulated screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="634"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="637"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="635"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="638"/>
<source>%.0fpx</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="635"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="636"/>
<source>Center Y</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="636"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="637"/>
<source>Sets the vertical center position of the simulated screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="638"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="639"/>
<source>Screen Width</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="639"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="640"/>
<source>Sets the width of the simulated screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="639"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="642"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="640"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="643"/>
<source>%dpx</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="641"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="642"/>
<source>Screen Height</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="642"/>
<location filename="../../pcsx2/USB/usb-lightgun/guncon2.cpp" line="643"/>
<source>Sets the height of the simulated screen.</source>
<translation type="unfinished"></translation>
</message>
+28 -1
View File
@@ -385,7 +385,13 @@ void GSClut::Read32(const GIFRegTEX0& TEX0, const GIFRegTEXA& TEXA)
case PSMT4HH:
clut += (TEX0.CSA & 15) << 4;
// TODO: merge these functions
ReadCLUT_T32_I4(clut, m_buff32);
// This is for a situation with Breath of Fire Dragon Quarter where it reinterprets the buffer under CSM2 after reading as CSM1.
if (TEX0.CSM == 1 && m_write.TEX0.CSM == 0)
ReadCLUT_T32_I4_Swizzled(clut, m_buff32);
else
ReadCLUT_T32_I4(clut, m_buff32);
ExpandCLUT64_T32_I8(m_buff32, (u64*)m_buff64); // sw renderer does not need m_buff64 anymore
break;
}
@@ -632,6 +638,27 @@ __forceinline void GSClut::WriteCLUT_T16_I4_CSM1(const u16* RESTRICT src, u16* R
}
}
// These functions are only used if the CLUT is in 32bit mode and it swaps to CSM2, a very obscure setup used by Breath of Fire Dragon Quarter.
// This doesn't handle offsetting the CLUT or anything crazy, that would be a lot more work
void GSClut::ReadCLUT_T32_I4_Swizzled(const u16* RESTRICT clut, u32* RESTRICT dst)
{
// Point to the base of the palette block
GSVector4i* s = (GSVector4i*)clut;
GSVector4i* d = (GSVector4i*)dst;
GSVector4i v0 = s[0];
GSVector4i v1 = s[2];
GSVector4i v2 = s[32];
GSVector4i v3 = s[34];
GSVector4i::sw16(v0, v2, v1, v3);
d[0] = v0;
d[1] = v1;
d[2] = v2;
d[3] = v3;
}
void GSClut::ReadCLUT_T32_I8(const u16* RESTRICT clut, u32* RESTRICT dst, int offset)
{
// Okay this deserves a small explanation
+1
View File
@@ -78,6 +78,7 @@ class alignas(32) GSClut final : public GSAlignedClass<32>
static void WriteCLUT_T32_I4_CSM1(const u32* RESTRICT src, u16* RESTRICT clut);
static void WriteCLUT_T16_I8_CSM1(const u16* RESTRICT src, u16* RESTRICT clut);
static void WriteCLUT_T16_I4_CSM1(const u16* RESTRICT src, u16* RESTRICT clut);
static void ReadCLUT_T32_I4_Swizzled(const u16* RESTRICT clut, u32* RESTRICT dst);
static void ReadCLUT_T32_I8(const u16* RESTRICT clut, u32* RESTRICT dst, int offset);
static void ReadCLUT_T32_I4(const u16* RESTRICT clut, u32* RESTRICT dst);
//static void ReadCLUT_T32_I4(const u16* RESTRICT clut, u32* RESTRICT dst32, u64* RESTRICT dst64);
+4 -3
View File
@@ -7846,7 +7846,7 @@ void GSRendererHW::ConvertTextureTypeROVSingle(GSTextureCache::Target* tgt, bool
}
#if PCSX2_DEVBUILD
new_tex->SetDebugName(tgt->m_texture->GetDebugName());
new_tex->SetDebugName(old_tex->GetDebugName());
#endif
if (tgt->m_texture == old_tex)
@@ -7877,12 +7877,13 @@ void GSRendererHW::ConvertTextureTypeROV(GSTextureCache::Target* rt, GSTextureCa
// Convert depth to the proper type/format.
if (ds)
{
if (m_conf.ps.HasDepthROV() && !ds->m_texture->IsShaderWrite())
// Note: we must use m_conf.ds because it might be the temporary Z texture.
if (m_conf.ps.HasDepthROV() && !m_conf.ds->IsShaderWrite())
{
GL_PUSH("HW: Convert DepthStencil -> DepthColor for ROV.");
ConvertTextureTypeROVSingle(ds, true);
}
else if (!m_conf.ps.HasDepthROV() && !ds->m_texture->IsDepthStencil())
else if (!m_conf.ps.HasDepthROV() && !m_conf.ds->IsDepthStencil())
{
GL_PUSH("HW: Convert DepthColor -> DepthStencil for non-ROV.");
ConvertTextureTypeROVSingle(ds, false);
+2 -2
View File
@@ -380,8 +380,8 @@ bool FullscreenUI::HasActiveWindow()
bool FullscreenUI::AreAnyDialogsOpen()
{
return (s_save_state_selector_open || s_about_window_open || s_cover_downloader_open ||
s_input_binding_type != InputBindingInfo::Type::Unknown || ImGuiFullscreen::IsChoiceDialogOpen() ||
ImGuiFullscreen::IsFileSelectorOpen());
s_achievements_login_open || s_input_binding_type != InputBindingInfo::Type::Unknown ||
ImGuiFullscreen::IsChoiceDialogOpen() || ImGuiFullscreen::IsFileSelectorOpen());
}
void FullscreenUI::CheckForConfigChanges(const Pcsx2Config& old_config)
+7 -2
View File
@@ -4349,6 +4349,8 @@ void FullscreenUI::DrawAchievementsLoginWindow()
if (ImGui::BeginPopupModal("RetroAchievements", &s_achievements_login_open, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_AlwaysAutoResize))
{
ResetFocusHere();
const float content_width = ImGui::GetContentRegionAvail().x;
ImGui::PushFont(g_large_font.first, g_large_font.second);
@@ -4448,6 +4450,8 @@ void FullscreenUI::DrawAchievementsLoginWindow()
s_achievements_login_username[0] = '\0';
s_achievements_login_password[0] = '\0';
QueueResetFocus(FocusResetType::PopupClosed);
};
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(ImGuiFullscreen::LAYOUT_FRAME_ROUNDING));
@@ -4463,7 +4467,7 @@ void FullscreenUI::DrawAchievementsLoginWindow()
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.3f, 0.6f, 1.0f, 1.0f));
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.1f, 0.4f, 0.8f, 1.0f));
if (ImGui::Button(FSUI_CSTR("Dismiss"), ImVec2(button_width, button_height)) && !s_achievements_login_logging_in)
if ((ImGui::Button(FSUI_CSTR("Dismiss"), ImVec2(button_width, button_height)) || WantsToCloseMenu()) && !s_achievements_login_logging_in)
CloseLoginPopup();
ImGui::PopStyleColor(3);
@@ -4580,7 +4584,7 @@ void FullscreenUI::DrawAchievementsLoginWindow()
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.5f, 0.5f, 0.5f, 1.0f));
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.3f, 0.3f, 0.3f, 1.0f));
if (ImGui::Button(FSUI_CSTR("Cancel"), ImVec2(button_width, button_height)) && !s_achievements_login_logging_in)
if ((ImGui::Button(FSUI_CSTR("Cancel"), ImVec2(button_width, button_height)) || WantsToCloseMenu()) && !s_achievements_login_logging_in)
{
if (s_achievements_login_reason == Achievements::LoginRequestReason::TokenInvalid)
{
@@ -4803,6 +4807,7 @@ void FullscreenUI::DrawAchievementsSettingsPage(std::unique_lock<std::mutex>& se
s_achievements_login_reason = Achievements::LoginRequestReason::UserInitiated;
s_achievements_login_show_dismiss = false;
s_achievements_login_open = true;
QueueResetFocus(FocusResetType::PopupOpened);
}
}
+2 -2
View File
@@ -1635,8 +1635,8 @@ void SaveStateSelectorUI::Draw()
ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_NoTitleBar |
ImGuiWindowFlags_NoScrollbar))
{
// Leave 2 lines for the legend
const float legend_margin = ImGui::GetFontSize() * 3.0f + ImGui::GetStyle().ItemSpacing.y * 3.0f;
// Leave room for the legend.
const float legend_margin = ImGui::GetTextLineHeightWithSpacing() * 4.0f;
const float padding = 10.0f * scale;
ImGui::BeginChild("##item_list", ImVec2(0, -legend_margin), false,