mirror of https://github.com/PCSX2/pcsx2.git
GS: Add a 10:7 pixel ration option
This commit is contained in:
parent
13e0546f56
commit
6c3cf12df6
|
@ -104,6 +104,11 @@
|
||||||
<string>Widescreen (16:9)</string>
|
<string>Widescreen (16:9)</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Native (10:7)</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
|
@ -135,6 +140,11 @@
|
||||||
<string>Widescreen (16:9)</string>
|
<string>Widescreen (16:9)</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Native (10:7)</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
|
|
|
@ -196,6 +196,7 @@ enum class AspectRatioType : u8
|
||||||
RAuto4_3_3_2,
|
RAuto4_3_3_2,
|
||||||
R4_3,
|
R4_3,
|
||||||
R16_9,
|
R16_9,
|
||||||
|
R10_7,
|
||||||
MaxCount
|
MaxCount
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -205,6 +206,7 @@ enum class FMVAspectRatioSwitchType : u8
|
||||||
RAuto4_3_3_2,
|
RAuto4_3_3_2,
|
||||||
R4_3,
|
R4_3,
|
||||||
R16_9,
|
R16_9,
|
||||||
|
R10_7,
|
||||||
MaxCount
|
MaxCount
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -469,6 +469,9 @@ static __fi void DoFMVSwitch()
|
||||||
case FMVAspectRatioSwitchType::R16_9:
|
case FMVAspectRatioSwitchType::R16_9:
|
||||||
EmuConfig.CurrentAspectRatio = new_fmv_state ? AspectRatioType::R16_9 : EmuConfig.GS.AspectRatio;
|
EmuConfig.CurrentAspectRatio = new_fmv_state ? AspectRatioType::R16_9 : EmuConfig.GS.AspectRatio;
|
||||||
break;
|
break;
|
||||||
|
case FMVAspectRatioSwitchType::R10_7:
|
||||||
|
EmuConfig.CurrentAspectRatio = new_fmv_state ? AspectRatioType::R10_7 : EmuConfig.GS.AspectRatio;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -277,7 +277,7 @@ float GSRenderer::GetModXYOffset()
|
||||||
|
|
||||||
static float GetCurrentAspectRatioFloat(bool is_progressive)
|
static float GetCurrentAspectRatioFloat(bool is_progressive)
|
||||||
{
|
{
|
||||||
static constexpr std::array<float, static_cast<size_t>(AspectRatioType::MaxCount) + 1> ars = {{4.0f / 3.0f, 4.0f / 3.0f, 4.0f / 3.0f, 16.0f / 9.0f, 3.0f / 2.0f}};
|
static constexpr std::array<float, static_cast<size_t>(AspectRatioType::MaxCount) + 1> ars = {{4.0f / 3.0f, 4.0f / 3.0f, 4.0f / 3.0f, 16.0f / 9.0f, 10.0f / 7.0f, 3.0f / 2.0f}};
|
||||||
return ars[static_cast<u32>(GSConfig.AspectRatio) + (3u * (is_progressive && GSConfig.AspectRatio == AspectRatioType::RAuto4_3_3_2))];
|
return ars[static_cast<u32>(GSConfig.AspectRatio) + (3u * (is_progressive && GSConfig.AspectRatio == AspectRatioType::RAuto4_3_3_2))];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,7 +300,13 @@ static GSVector4 CalculateDrawDstRect(s32 window_width, s32 window_height, const
|
||||||
targetAr = 4.0f / 3.0f;
|
targetAr = 4.0f / 3.0f;
|
||||||
}
|
}
|
||||||
else if (EmuConfig.CurrentAspectRatio == AspectRatioType::R16_9)
|
else if (EmuConfig.CurrentAspectRatio == AspectRatioType::R16_9)
|
||||||
|
{
|
||||||
targetAr = 16.0f / 9.0f;
|
targetAr = 16.0f / 9.0f;
|
||||||
|
}
|
||||||
|
else if (EmuConfig.CurrentAspectRatio == AspectRatioType::R10_7)
|
||||||
|
{
|
||||||
|
targetAr = 10.0f / 7.0f;
|
||||||
|
}
|
||||||
|
|
||||||
const float crop_adjust = (static_cast<float>(src_rect.width()) / static_cast<float>(src_size.x)) /
|
const float crop_adjust = (static_cast<float>(src_rect.width()) / static_cast<float>(src_size.x)) /
|
||||||
(static_cast<float>(src_rect.height()) / static_cast<float>(src_size.y));
|
(static_cast<float>(src_rect.height()) / static_cast<float>(src_size.y));
|
||||||
|
|
|
@ -553,6 +553,7 @@ const char* Pcsx2Config::GSOptions::AspectRatioNames[] = {
|
||||||
"Auto 4:3/3:2",
|
"Auto 4:3/3:2",
|
||||||
"4:3",
|
"4:3",
|
||||||
"16:9",
|
"16:9",
|
||||||
|
"10:7",
|
||||||
nullptr};
|
nullptr};
|
||||||
|
|
||||||
const char* Pcsx2Config::GSOptions::FMVAspectRatioSwitchNames[] = {
|
const char* Pcsx2Config::GSOptions::FMVAspectRatioSwitchNames[] = {
|
||||||
|
@ -560,6 +561,7 @@ const char* Pcsx2Config::GSOptions::FMVAspectRatioSwitchNames[] = {
|
||||||
"Auto 4:3/3:2",
|
"Auto 4:3/3:2",
|
||||||
"4:3",
|
"4:3",
|
||||||
"16:9",
|
"16:9",
|
||||||
|
"10:7",
|
||||||
nullptr};
|
nullptr};
|
||||||
|
|
||||||
const char* Pcsx2Config::GSOptions::BlendingLevelNames[] = {
|
const char* Pcsx2Config::GSOptions::BlendingLevelNames[] = {
|
||||||
|
|
|
@ -877,6 +877,9 @@ void VMManager::RequestDisplaySize(float scale /*= 0.0f*/)
|
||||||
case AspectRatioType::R16_9:
|
case AspectRatioType::R16_9:
|
||||||
x_scale = (16.0f / 9.0f) / (static_cast<float>(iwidth) / static_cast<float>(iheight));
|
x_scale = (16.0f / 9.0f) / (static_cast<float>(iwidth) / static_cast<float>(iheight));
|
||||||
break;
|
break;
|
||||||
|
case AspectRatioType::R10_7:
|
||||||
|
x_scale = (10.0f / 7.0f) / (static_cast<float>(iwidth) / static_cast<float>(iheight));
|
||||||
|
break;
|
||||||
case AspectRatioType::Stretch:
|
case AspectRatioType::Stretch:
|
||||||
default:
|
default:
|
||||||
x_scale = 1.0f;
|
x_scale = 1.0f;
|
||||||
|
|
Loading…
Reference in New Issue