Compare commits

...

5 Commits

Author SHA1 Message Date
chaoticgd
4b88a290c4 Qt: Destroy settings save timer before quitting 2025-04-05 00:48:54 +02:00
chaoticgd
ee8335e5f1 Debugger: Prevent blinking animation when stepping 2025-04-05 00:47:56 +02:00
JimScript
fcde7fdb80 GameDB: R&C Size Matters HPO Native with Texture Offset 2025-04-04 10:57:32 -04:00
JimScript
3d42da3e97 GameDB: R&C Size Matters HPO Native with Texture Offset 2025-04-04 10:57:32 -04:00
Berylskid
c81a37b740 GameDB: HPO update for Armored Core games 2025-04-04 02:31:08 +02:00
5 changed files with 75 additions and 57 deletions

View File

@@ -1654,7 +1654,7 @@ SCAJ-20076:
name: "Armored Core - Nexus [Disc 1]"
region: "NTSC-Unk"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SCAJ-20076"
@@ -1667,7 +1667,7 @@ SCAJ-20077:
name: "Armored Core - Nexus [Disc 2]"
region: "NTSC-Unk"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SCAJ-20076"
@@ -1826,7 +1826,7 @@ SCAJ-20105:
name: "Armored Core - Nine Breaker"
region: "NTSC-Unk"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
cpuSpriteRenderBW: 2 # Fixes broken water on "Upper Sea" level.
cpuSpriteRenderLevel: 2 # Needed for above.
@@ -1941,9 +1941,7 @@ SCAJ-20121:
name: "Armored Core - Formula Front"
region: "NTSC-Unk"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
cpuSpriteRenderBW: 1 # Fixes broken shadow caused by HPO 1.
cpuSpriteRenderLevel: 2 # Needed for above.
halfPixelOffset: 5 # Fixes misaligned blur.
SCAJ-20122:
name: "Swords of Destiny"
region: "NTSC-Unk"
@@ -6514,7 +6512,12 @@ SCES-54941:
region: "PAL-E"
SCES-55019:
name: "Ratchet & Clank - Size Matters"
region: "PAL-M5"
region: "PAL-M13"
gsHWFixes:
recommendedBlendingLevel: 4 # Fixes vendor and other bloom.
autoFlush: 2 # Fixes missing bloom and shadow definition.
halfPixelOffset: 5 # Fixes misaligned bloom.
nativeScaling: 2 # Fixes pixelated bloom.
SCES-55038:
name: "EyeToy Play - Hero"
region: "PAL-M15"
@@ -7203,7 +7206,7 @@ SCKA-20047:
name: "Armored Core - Nine Breaker"
region: "NTSC-K"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
cpuSpriteRenderBW: 2 # Fixes broken water on "Upper Sea" level.
cpuSpriteRenderLevel: 2 # Needed for above.
@@ -7653,6 +7656,8 @@ SCKA-20120:
gsHWFixes:
recommendedBlendingLevel: 4 # Fixes vendor and other bloom.
autoFlush: 2 # Fixes missing bloom and shadow definition.
halfPixelOffset: 5 # Fixes misaligned bloom.
nativeScaling: 2 # Fixes pixelated bloom.
SCKA-20124:
name: "Piposarugetchu 3" # Ape Escape 3
region: "NTSC-K"
@@ -12436,6 +12441,8 @@ SCUS-97615:
gsHWFixes:
recommendedBlendingLevel: 4 # Fixes vendor and other bloom.
autoFlush: 2 # Fixes missing bloom and shadow definition.
halfPixelOffset: 5 # Fixes misaligned bloom.
nativeScaling: 2 # Fixes pixelated bloom.
SCUS-97616:
name: "SingStar '80s"
region: "NTSC-U"
@@ -23809,7 +23816,7 @@ SLES-53819:
name: "Armored Core - Nine Breaker"
region: "PAL-E"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
cpuSpriteRenderBW: 2 # Fixes broken water on "Upper Sea" level.
cpuSpriteRenderLevel: 2 # Needed for above.
@@ -27630,6 +27637,8 @@ SLES-55019:
gsHWFixes:
recommendedBlendingLevel: 4 # Fixes vendor and other bloom.
autoFlush: 2 # Fixes missing bloom and shadow definition.
halfPixelOffset: 5 # Fixes misaligned bloom.
nativeScaling: 2 # Fixes pixelated bloom.
SLES-55020:
name: "Die Simpsons - Das Spiel"
region: "PAL-G"
@@ -29509,7 +29518,7 @@ SLES-82036:
name: "Armored Core - Nexus [Disc 1]"
region: "PAL-M5"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SLES-82036"
@@ -29518,7 +29527,7 @@ SLES-82037:
name: "Armored Core - Nexus [Disc 2]"
region: "PAL-M5"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SLES-82036"
@@ -30598,7 +30607,7 @@ SLKA-25201:
name: "Armored Core - Nexus [Disc 1]"
region: "NTSC-K"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SLKA-25201"
@@ -30607,7 +30616,7 @@ SLKA-25202:
name: "Armored Core - Nexus [Disc 2]"
region: "NTSC-K"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SLKA-25201"
@@ -30925,9 +30934,7 @@ SLKA-25270:
name: "Armored Core - Formula Front"
region: "NTSC-K"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
cpuSpriteRenderBW: 1 # Fixes broken shadow caused by HPO 1.
cpuSpriteRenderLevel: 2 # Needed for above.
halfPixelOffset: 5 # Fixes misaligned blur.
SLKA-25271:
name: "Harry Potter and the Order of the Phoenix"
region: "NTSC-K"
@@ -56797,7 +56804,7 @@ SLPS-25338:
name-en: "Armored Core - Nexus [Disc 1]"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SCAJ-20076"
@@ -56812,7 +56819,7 @@ SLPS-25339:
name-en: "Armored Core - Nexus [Disc 2]"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SCAJ-20076"
@@ -57265,7 +57272,7 @@ SLPS-25408:
name-en: "Armored Core - Nine Breaker"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
cpuSpriteRenderBW: 2 # Fixes broken water on "Upper Sea" level.
cpuSpriteRenderLevel: 2 # Needed for above.
@@ -57590,9 +57597,7 @@ SLPS-25461:
name-en: "Armored Core - Formula Front"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
cpuSpriteRenderBW: 1 # Fixes broken shadow caused by HPO 1.
cpuSpriteRenderLevel: 2 # Needed for above.
halfPixelOffset: 5 # Fixes misaligned blur.
SLPS-25462:
name: "アーマード・コア ラストレイヴン"
name-sort: "あーまーどこあ らすとれいゔん"
@@ -60857,7 +60862,7 @@ SLPS-73202:
name-en: "Armored Core - Nexus [Disc 1] [PlayStation2 the Best]"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SCAJ-20076"
@@ -60872,7 +60877,7 @@ SLPS-73203:
name-en: "Armored Core - Nexus [Disc 2] [PlayStation2 the Best]"
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SCAJ-20076"
@@ -66576,7 +66581,7 @@ SLUS-20986:
region: "NTSC-U"
compat: 5
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SLUS-20986"
@@ -67150,7 +67155,7 @@ SLUS-21079:
name: "Armored Core - Nexus [Disc 2]"
region: "NTSC-U"
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
memcardFilters:
- "SLUS-20986"
@@ -67828,7 +67833,7 @@ SLUS-21200:
region: "NTSC-U"
compat: 5
gsHWFixes:
halfPixelOffset: 1 # Fixes misaligned blur.
halfPixelOffset: 5 # Fixes misaligned blur.
recommendedBlendingLevel: 3 # Fixes level brightness.
cpuSpriteRenderBW: 2 # Fixes broken water on "Upper Sea" level.
cpuSpriteRenderLevel: 2 # Needed for above.

View File

@@ -307,12 +307,18 @@ void DebuggerWindow::onVMPaused()
m_ui.actionStepOver->setEnabled(true);
m_ui.actionStepOut->setEnabled(true);
// Switch to the CPU tab that triggered the breakpoint.
// Also blink the tab text to indicate that a breakpoint was triggered.
if (CBreakPoints::GetBreakpointTriggered())
{
const BreakPointCpu triggeredCpu = CBreakPoints::GetBreakpointTriggeredCpu();
m_dock_manager->switchToLayoutWithCPU(triggeredCpu, true);
// Select a layout tab corresponding to the CPU that triggered the
// breakpoint and make it start blinking unless said breakpoint was
// generated as a result of stepping.
const BreakPointCpu cpu_type = CBreakPoints::GetBreakpointTriggeredCpu();
if (cpu_type == BREAKPOINT_EE || cpu_type == BREAKPOINT_IOP)
{
DebugInterface& cpu = DebugInterface::get(cpu_type);
bool blink_tab = !CBreakPoints::IsSteppingBreakPoint(cpu_type, cpu.getPC());
m_dock_manager->switchToLayoutWithCPU(cpu_type, blink_tab);
}
Host::RunOnCPUThread([] {
CBreakPoints::ClearTemporaryBreakPoints();
@@ -418,7 +424,7 @@ void DebuggerWindow::onStepInto()
bpAddr = info.branchTarget; // Syscalls are always taken
Host::RunOnCPUThread([cpu, bpAddr] {
CBreakPoints::AddBreakPoint(cpu->getCpuType(), bpAddr, true);
CBreakPoints::AddBreakPoint(cpu->getCpuType(), bpAddr, true, true, true);
cpu->resumeCpu();
});
@@ -468,7 +474,7 @@ void DebuggerWindow::onStepOver()
}
Host::RunOnCPUThread([cpu, bpAddr] {
CBreakPoints::AddBreakPoint(cpu->getCpuType(), bpAddr, true);
CBreakPoints::AddBreakPoint(cpu->getCpuType(), bpAddr, true, true, true);
cpu->resumeCpu();
});
@@ -509,7 +515,7 @@ void DebuggerWindow::onStepOut()
u32 breakpoint_pc = stack_frames.at(1).pc;
Host::RunOnCPUThread([cpu, breakpoint_pc] {
CBreakPoints::AddBreakPoint(cpu->getCpuType(), breakpoint_pc, true);
CBreakPoints::AddBreakPoint(cpu->getCpuType(), breakpoint_pc, true, true, true);
cpu->resumeCpu();
});

View File

@@ -84,7 +84,7 @@ namespace QtHost
//////////////////////////////////////////////////////////////////////////
// Local variable declarations
//////////////////////////////////////////////////////////////////////////
static std::unique_ptr<QTimer> s_settings_save_timer;
static QTimer* s_settings_save_timer = nullptr;
static std::unique_ptr<INISettingsInterface> s_base_settings_interface;
static bool s_batch_mode = false;
static bool s_nogui_mode = false;
@@ -1404,7 +1404,7 @@ void QtHost::SaveSettings()
if (s_settings_save_timer)
{
s_settings_save_timer->deleteLater();
s_settings_save_timer.release();
s_settings_save_timer = nullptr;
}
}
@@ -1420,10 +1420,21 @@ void Host::CommitBaseSettingChanges()
if (s_settings_save_timer)
return;
s_settings_save_timer = std::make_unique<QTimer>();
s_settings_save_timer->connect(s_settings_save_timer.get(), &QTimer::timeout, &QtHost::SaveSettings);
s_settings_save_timer = new QTimer;
s_settings_save_timer->connect(s_settings_save_timer, &QTimer::timeout, &QtHost::SaveSettings);
s_settings_save_timer->setSingleShot(true);
s_settings_save_timer->start(SETTINGS_SAVE_DELAY);
static bool connected = false;
if (!connected)
{
QObject::connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, []() {
delete s_settings_save_timer;
s_settings_save_timer = nullptr;
});
connected = true;
}
}
bool QtHost::InBatchMode()

View File

@@ -172,7 +172,13 @@ bool CBreakPoints::IsTempBreakPoint(BreakPointCpu cpu, u32 addr)
return bp != INVALID_BREAKPOINT;
}
void CBreakPoints::AddBreakPoint(BreakPointCpu cpu, u32 addr, bool temp, bool enabled)
bool CBreakPoints::IsSteppingBreakPoint(BreakPointCpu cpu, u32 addr)
{
const size_t bp = FindBreakpoint(cpu, addr, true, true);
return bp != INVALID_BREAKPOINT && breakPoints_[bp].stepping;
}
void CBreakPoints::AddBreakPoint(BreakPointCpu cpu, u32 addr, bool temp, bool enabled, bool stepping)
{
const size_t bp = FindBreakpoint(cpu, addr, true, temp);
if (bp == INVALID_BREAKPOINT)
@@ -180,6 +186,7 @@ void CBreakPoints::AddBreakPoint(BreakPointCpu cpu, u32 addr, bool temp, bool en
BreakPoint pt;
pt.enabled = enabled;
pt.temporary = temp;
pt.stepping = stepping;
pt.addr = addr;
pt.cpu = cpu;

View File

@@ -12,15 +12,10 @@
struct BreakPointCond
{
DebugInterface* debug;
DebugInterface* debug = nullptr;
PostfixExpression expression;
std::string expressionString;
BreakPointCond()
: debug(NULL)
{
}
u32 Evaluate()
{
u64 result;
@@ -33,17 +28,10 @@ struct BreakPointCond
struct BreakPoint
{
BreakPoint()
: addr(0)
, enabled(false)
, temporary(false)
, hasCond(false)
{
}
u32 addr;
bool enabled;
bool temporary;
u32 addr = 0;
bool enabled = false;
bool temporary = false;
bool stepping = false;
bool hasCond;
BreakPointCond cond;
@@ -120,7 +108,8 @@ public:
static bool IsAddressBreakPoint(BreakPointCpu cpu, u32 addr);
static bool IsAddressBreakPoint(BreakPointCpu cpu, u32 addr, bool* enabled);
static bool IsTempBreakPoint(BreakPointCpu cpu, u32 addr);
static void AddBreakPoint(BreakPointCpu cpu, u32 addr, bool temp = false, bool enabled = true);
static bool IsSteppingBreakPoint(BreakPointCpu cpu, u32 addr);
static void AddBreakPoint(BreakPointCpu cpu, u32 addr, bool temp = false, bool enabled = true, bool stepping = false);
static void RemoveBreakPoint(BreakPointCpu cpu, u32 addr);
static void ChangeBreakPoint(BreakPointCpu cpu, u32 addr, bool enable);
static void ClearAllBreakPoints();