mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-01-31 01:15:24 +01:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
407c989860 | ||
|
|
9b4b112a97 | ||
|
|
865b75bcbb | ||
|
|
795b0813cc | ||
|
|
3e1f2b8b9d | ||
|
|
1f0d6f0ac7 | ||
|
|
4ab4f4a67c |
@@ -1481,6 +1481,7 @@ SCAJ-20041:
|
||||
name: "Energy Airforce - Aim Strike!"
|
||||
region: "NTSC-Unk"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
SCAJ-20043:
|
||||
name: "Chain Dive"
|
||||
@@ -14697,6 +14698,10 @@ SLES-50396:
|
||||
SLES-50397:
|
||||
name: "Prisoner of War"
|
||||
region: "PAL-M5"
|
||||
speedHacks:
|
||||
instantVU1: 0 # Fixes NPCs getting stuck in place.
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Fixes shading and shadow definition.
|
||||
SLES-50398:
|
||||
name: "UEFA Champions League"
|
||||
region: "PAL-M5"
|
||||
@@ -16553,6 +16558,7 @@ SLES-51203:
|
||||
- EETimingHack # Fixes various VIF errors.
|
||||
gsHWFixes:
|
||||
minimumBlendingLevel: 2 # Improves banding.
|
||||
recommendedBlendingLevel: 4 # Fixes missing text brightness.
|
||||
SLES-51208:
|
||||
name: "Rocky"
|
||||
region: "PAL-M5"
|
||||
@@ -17970,7 +17976,8 @@ SLES-51824:
|
||||
name: "Colin McRae Rally '04"
|
||||
region: "PAL-M5"
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
halfPixelOffset: 4 # Fixes vertical lines and depth lines.
|
||||
autoFlush: 2 # Fixes sun intensity.
|
||||
SLES-51825:
|
||||
name: "Pop Idol"
|
||||
region: "PAL-E"
|
||||
@@ -18281,6 +18288,7 @@ SLES-51918:
|
||||
gsHWFixes:
|
||||
autoFlush: 2 # Reduces post-processing misalignment.
|
||||
halfPixelOffset: 4 # Reduces post-processing misalignment.
|
||||
nativeScaling: 2 # Fixes post effects.
|
||||
SLES-51924:
|
||||
name: "World War Zero - Ironstorm"
|
||||
region: "PAL-M5"
|
||||
@@ -18987,16 +18995,19 @@ SLES-52265:
|
||||
name: "Energy Airforce - Aim Strike!"
|
||||
region: "PAL-E"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
SLES-52266:
|
||||
name: "Energy Airforce - Aim Strike!"
|
||||
region: "PAL-F"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
SLES-52267:
|
||||
name: "Energy Airforce - Aim Strike!"
|
||||
region: "PAL-I"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
SLES-52275:
|
||||
name: "Way of the Samurai 2"
|
||||
@@ -19263,6 +19274,7 @@ SLES-52372:
|
||||
name: "Spider-Man 2"
|
||||
region: "PAL-M5"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -19446,6 +19458,7 @@ SLES-52447:
|
||||
name: "Spider-Man 2"
|
||||
region: "PAL-I"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -19563,6 +19576,7 @@ SLES-52493:
|
||||
name: "Spider-Man 2"
|
||||
region: "PAL-E"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -22626,6 +22640,7 @@ SLES-53523:
|
||||
minimumBlendingLevel: 3 # Fixes broken light and shadow rendering.
|
||||
halfPixelOffset: 2 # Fixes misaligned bloom and character shadows.
|
||||
autoFlush: 1 # Fixes missing bloom intensity and alignment.
|
||||
nativeScaling: 2 # Helps fix offset blur and bloom on shadows and the UI.
|
||||
SLES-53524:
|
||||
name: "Mortal Kombat - Shaolin Monks"
|
||||
region: "PAL-M5"
|
||||
@@ -23172,6 +23187,7 @@ SLES-53647:
|
||||
minimumBlendingLevel: 3 # Fixes broken light and shadow rendering.
|
||||
halfPixelOffset: 2 # Fixes misaligned bloom and character shadows.
|
||||
autoFlush: 1 # Fixes missing bloom intensity and alignment.
|
||||
nativeScaling: 2 # Helps fix offset blur and bloom on shadows and the UI.
|
||||
SLES-53651:
|
||||
name: "WWII - Soldier"
|
||||
region: "PAL-E"
|
||||
@@ -24613,13 +24629,13 @@ SLES-54159:
|
||||
region: "PAL-M5"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Fixes post processing misalignment.
|
||||
recommendedBlendingLevel: 3 # Improves reflection quality.
|
||||
recommendedBlendingLevel: 4 # Improves reflection quality and terrain lighting.
|
||||
SLES-54160:
|
||||
name: "Eragon"
|
||||
region: "PAL-R"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Fixes post processing misalignment.
|
||||
recommendedBlendingLevel: 3 # Improves reflection quality.
|
||||
recommendedBlendingLevel: 4 # Improves reflection quality and terrain lighting.
|
||||
SLES-54161:
|
||||
name: "Super Dragon Ball Z"
|
||||
region: "PAL-E"
|
||||
@@ -25933,6 +25949,9 @@ SLES-54590:
|
||||
name: "Hard Knock High"
|
||||
region: "PAL-E"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Aligns post effects.
|
||||
nativeScaling: 1 # Fixes post effects.
|
||||
SLES-54591:
|
||||
name: "Special Forces"
|
||||
region: "PAL-E"
|
||||
@@ -25976,8 +25995,11 @@ SLES-54615:
|
||||
SLES-54616:
|
||||
name: "Fantastic Four - Rise of the Silver Surfer"
|
||||
region: "PAL-M5"
|
||||
speedHacks:
|
||||
eeCycleRate: 1 # Helps alleviate FPS drops during FMVs.
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes edge depth bleeding during power attacks and misaligned bloom.
|
||||
nativeScaling: 1 # Fixes Post effect.
|
||||
SLES-54617:
|
||||
name: "Action Man A.T.O.M. - Alpha Teens on Machines"
|
||||
region: "PAL-M9"
|
||||
@@ -26497,8 +26519,11 @@ SLES-54774:
|
||||
SLES-54776:
|
||||
name: "Fantastic Four - Rise of the Silver Surfer"
|
||||
region: "PAL-E-I"
|
||||
speedHacks:
|
||||
eeCycleRate: 1 # Helps alleviate FPS drops during FMVs.
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes edge depth bleeding during power attacks and misaligned bloom.
|
||||
nativeScaling: 1 # Fixes Post effect.
|
||||
SLES-54778:
|
||||
name: "Harry Potter and the Order of the Phoenix"
|
||||
region: "PAL-E"
|
||||
@@ -28177,6 +28202,9 @@ SLES-55345:
|
||||
name: "007 - Quantum of Solace"
|
||||
region: "PAL-M5"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Reduces bloom misalignment and fixes depth lines.
|
||||
nativeScaling: 2 # Fixes bloom intensity.
|
||||
SLES-55346:
|
||||
name: "Rugby League 2 - World Cup Edition"
|
||||
region: "PAL-E"
|
||||
@@ -29580,6 +29608,7 @@ SLKA-25032:
|
||||
- EETimingHack # Fixes various VIF errors.
|
||||
gsHWFixes:
|
||||
minimumBlendingLevel: 2 # Improves banding.
|
||||
recommendedBlendingLevel: 4 # Fixes missing text brightness.
|
||||
SLKA-25033:
|
||||
name: "Gregory Horror Show"
|
||||
region: "NTSC-K"
|
||||
@@ -30147,9 +30176,10 @@ SLKA-25180:
|
||||
halfPixelOffset: 4 # Aligns post effects.
|
||||
nativeScaling: 2 # Fixes post effects.
|
||||
SLKA-25181:
|
||||
name: "Energy Airforce Aim Strike"
|
||||
name: "Energy Airforce Aim Strike!"
|
||||
region: "NTSC-K"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
SLKA-25182:
|
||||
name: "Hajime no Ippo2 Victorious Road"
|
||||
@@ -31310,6 +31340,9 @@ SLKA-25441:
|
||||
SLKA-25442:
|
||||
name: "007 - Quantum of Solace"
|
||||
region: "NTSC-K"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Reduces bloom misalignment and fixes depth lines.
|
||||
nativeScaling: 2 # Fixes bloom intensity.
|
||||
SLKA-25443:
|
||||
name: "Musou Orochi Maou Sairin"
|
||||
region: "NTSC-K"
|
||||
@@ -32278,6 +32311,9 @@ SLPM-55148:
|
||||
name-sort: "007 なぐさめのほうしゅう"
|
||||
name-en: "007 - Nagusame no Houshuu"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Reduces bloom misalignment and fixes depth lines.
|
||||
nativeScaling: 2 # Fixes bloom intensity.
|
||||
SLPM-55149:
|
||||
name: "ラブルートゼロ KissKiss☆ラビリンス [通常版]"
|
||||
name-sort: "らぶるーとぜろ きすきすらびりんす [つうじょうばん]"
|
||||
@@ -40879,6 +40915,7 @@ SLPM-65374:
|
||||
instantVU1: 0 # Fixes hanging while going ingame.
|
||||
mtvu: 0
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
SLPM-65375:
|
||||
name: "真・三國無双3 & 真・三國無双3 猛将伝 [ディスク 1] [プレミアムパック]"
|
||||
@@ -42473,6 +42510,7 @@ SLPM-65662:
|
||||
name-en: "Spider-Man 2"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -45210,6 +45248,7 @@ SLPM-66121:
|
||||
name: "Spider-Man 2 [TAITO BEST]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -54171,6 +54210,9 @@ SLPS-20474:
|
||||
name-sort: "しんぷる2000しりーず Vol.107 THE ほのおのかくとうばんちょう"
|
||||
name-en: "Simple 2000 Series Vol. 107 - The Honoo no Kakutou Banchou"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 4 # Aligns post effects.
|
||||
nativeScaling: 1 # Fixes post effects.
|
||||
SLPS-20475:
|
||||
name: "山佐DigiワールドSP ジャイアントパルサー"
|
||||
name-sort: "やまさでじわーるどSP じゃいあんとぱるさー"
|
||||
@@ -55863,6 +55905,7 @@ SLPS-25254:
|
||||
- EETimingHack # Fixes various VIF errors.
|
||||
gsHWFixes:
|
||||
minimumBlendingLevel: 2 # Improves banding.
|
||||
recommendedBlendingLevel: 4 # Fixes missing text brightness.
|
||||
SLPS-25255:
|
||||
name: "サイドワインダーV フライトBOX [特別限定版]"
|
||||
name-sort: "さいどわいんだーV ふらいとBOX [とくべつげんていばん]"
|
||||
@@ -63150,6 +63193,7 @@ SLUS-20454:
|
||||
- EETimingHack # Fixes various VIF errors.
|
||||
gsHWFixes:
|
||||
minimumBlendingLevel: 2 # Improves banding.
|
||||
recommendedBlendingLevel: 4 # Fixes missing text brightness.
|
||||
SLUS-20455:
|
||||
name: "F1 2002"
|
||||
region: "NTSC-U"
|
||||
@@ -64887,6 +64931,7 @@ SLUS-20776:
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -66978,6 +67023,7 @@ SLUS-21139:
|
||||
minimumBlendingLevel: 3 # Fixes broken light and shadow rendering.
|
||||
halfPixelOffset: 2 # Fixes misaligned bloom and character shadows.
|
||||
autoFlush: 1 # Fixes missing bloom intensity and alignment.
|
||||
nativeScaling: 2 # Helps fix offset blur and bloom on shadows and the UI.
|
||||
SLUS-21140:
|
||||
name: "Mobile Suit Gundam Seed - Never Ending Tomorrow"
|
||||
region: "NTSC-U"
|
||||
@@ -68207,7 +68253,7 @@ SLUS-21322:
|
||||
vuClampMode: 3 # Fixes SPS and spawn issues.
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Fixes post processing misalignment.
|
||||
recommendedBlendingLevel: 3 # Improves reflection quality.
|
||||
recommendedBlendingLevel: 4 # Improves reflection quality and terrain lighting.
|
||||
SLUS-21323:
|
||||
name: "Rampage - Total Destruction"
|
||||
region: "NTSC-U"
|
||||
@@ -69433,8 +69479,11 @@ SLUS-21544:
|
||||
name: "Fantastic 4 - Rise of Silver Surfer"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
speedHacks:
|
||||
eeCycleRate: 1 # Helps alleviate FPS drops during FMVs.
|
||||
gsHWFixes:
|
||||
roundSprite: 2 # Fixes edge depth bleeding during power attacks and misaligned bloom.
|
||||
nativeScaling: 1 # Fixes Post effect.
|
||||
SLUS-21545:
|
||||
name: "Pirates of the Caribbean - At World's End"
|
||||
region: "NTSC-U"
|
||||
@@ -70933,6 +70982,9 @@ SLUS-21813:
|
||||
name: "007 - Quantum of Solace"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
gsHWFixes:
|
||||
halfPixelOffset: 2 # Reduces bloom misalignment and fixes depth lines.
|
||||
nativeScaling: 2 # Fixes bloom intensity.
|
||||
SLUS-21814:
|
||||
name: "Disney - Think Fast"
|
||||
region: "NTSC-U"
|
||||
@@ -72724,6 +72776,17 @@ TCPS-10068:
|
||||
name-sort: "でんしゃでごー りょじょうへん [こんとろーらどうこんせっと]"
|
||||
name-en: "Densha de Go! Ryojou-hen [with Controller]"
|
||||
region: "NTSC-J"
|
||||
TCPS-10073:
|
||||
name: "エナジーエアフォース エイムストライク!"
|
||||
name-sort: "えなじーえあふぉーす えいむすとらいく!"
|
||||
name-en: "Energy Airforce - Aim Strike! [TAITO 2002]"
|
||||
region: "NTSC-J"
|
||||
speedHacks:
|
||||
instantVU1: 0 # Fixes hanging while going ingame.
|
||||
mtvu: 0
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 5 # Alleviates color banding.
|
||||
autoFlush: 2 # Corrects post-processing effect on jet exhausts.
|
||||
TCPS-10074:
|
||||
name: "スペースインベーダー アニバーサリー [筐体型コントローラ同梱セット]"
|
||||
name-sort: "すぺーすいんべーだー あにばーさりー [きょうたいけいこんとろーらどうこんせっと]"
|
||||
@@ -72760,6 +72823,7 @@ TCPS-10092:
|
||||
name-en: "Spider-Man 2"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
@@ -72835,6 +72899,7 @@ TCPS-10127:
|
||||
name: "Spider-Man 2 [TAITO BEST]"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
recommendedBlendingLevel: 3 # Fixes missing water sheen.
|
||||
cpuSpriteRenderBW: 1 # Fixes textures.
|
||||
autoFlush: 2 # Fixes the position of the shadow and makes it not blocky.
|
||||
halfPixelOffset: 2 # Fixes shadows.
|
||||
|
||||
@@ -40,6 +40,7 @@ MemorySearchWidget::MemorySearchWidget(QWidget* parent)
|
||||
connect(m_ui.listSearchResults->verticalScrollBar(), &QScrollBar::valueChanged, this, &MemorySearchWidget::onSearchResultsListScroll);
|
||||
connect(m_ui.listSearchResults, &QListView::customContextMenuRequested, this, &MemorySearchWidget::onListSearchResultsContextMenu);
|
||||
connect(m_ui.cmbSearchType, &QComboBox::currentIndexChanged, this, &MemorySearchWidget::onSearchTypeChanged);
|
||||
connect(m_ui.cmbSearchComparison, &QComboBox::currentIndexChanged, this, &MemorySearchWidget::onSearchComparisonChanged);
|
||||
|
||||
// Ensures we don't retrigger the load results function unintentionally
|
||||
m_resultsLoadTimer.setInterval(100);
|
||||
@@ -249,7 +250,6 @@ bool handleSearchComparison(SearchComparison searchComparison, u32 searchAddress
|
||||
}
|
||||
case SearchComparison::IncreasedBy:
|
||||
{
|
||||
|
||||
const T priorValue = priorResult->getValue<T>();
|
||||
const T expectedIncrease = searchValue + priorValue;
|
||||
return memoryValueComparator(SearchComparison::Equals, readValue, expectedIncrease);
|
||||
@@ -282,6 +282,10 @@ bool handleSearchComparison(SearchComparison searchComparison, u32 searchAddress
|
||||
const T expectedDecrease = priorValue - searchValue;
|
||||
return memoryValueComparator(SearchComparison::Equals, readValue, expectedIncrease) || memoryValueComparator(SearchComparison::Equals, readValue, expectedDecrease);
|
||||
}
|
||||
case SearchComparison::UnknownValue:
|
||||
{
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
Console.Error("Debugger: Unknown type when doing memory search!");
|
||||
return false;
|
||||
@@ -506,63 +510,69 @@ void MemorySearchWidget::onSearchButtonClicked()
|
||||
const bool isFilterSearch = sender() == m_ui.btnFilterSearch;
|
||||
unsigned long long value;
|
||||
|
||||
switch (searchType)
|
||||
if(searchComparison != SearchComparison::UnknownValue)
|
||||
{
|
||||
case SearchType::ByteType:
|
||||
case SearchType::Int16Type:
|
||||
case SearchType::Int32Type:
|
||||
case SearchType::Int64Type:
|
||||
value = searchValue.toULongLong(&ok, searchHex ? 16 : 10);
|
||||
break;
|
||||
case SearchType::FloatType:
|
||||
case SearchType::DoubleType:
|
||||
searchValue.toDouble(&ok);
|
||||
break;
|
||||
case SearchType::StringType:
|
||||
ok = !searchValue.isEmpty();
|
||||
break;
|
||||
case SearchType::ArrayType:
|
||||
ok = !searchValue.trimmed().isEmpty();
|
||||
break;
|
||||
}
|
||||
if(doesSearchComparisonTakeInput(searchComparison))
|
||||
{
|
||||
switch (searchType)
|
||||
{
|
||||
case SearchType::ByteType:
|
||||
case SearchType::Int16Type:
|
||||
case SearchType::Int32Type:
|
||||
case SearchType::Int64Type:
|
||||
value = searchValue.toULongLong(&ok, searchHex ? 16 : 10);
|
||||
break;
|
||||
case SearchType::FloatType:
|
||||
case SearchType::DoubleType:
|
||||
searchValue.toDouble(&ok);
|
||||
break;
|
||||
case SearchType::StringType:
|
||||
ok = !searchValue.isEmpty();
|
||||
break;
|
||||
case SearchType::ArrayType:
|
||||
ok = !searchValue.trimmed().isEmpty();
|
||||
break;
|
||||
}
|
||||
|
||||
if (!ok)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Debugger"), tr("Invalid search value"));
|
||||
return;
|
||||
}
|
||||
if (!ok)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Debugger"), tr("Invalid search value"));
|
||||
return;
|
||||
}
|
||||
|
||||
switch (searchType)
|
||||
{
|
||||
case SearchType::ArrayType:
|
||||
case SearchType::StringType:
|
||||
case SearchType::DoubleType:
|
||||
case SearchType::FloatType:
|
||||
break;
|
||||
case SearchType::Int64Type:
|
||||
if (value <= std::numeric_limits<unsigned long long>::max())
|
||||
break;
|
||||
case SearchType::Int32Type:
|
||||
if (value <= std::numeric_limits<unsigned long>::max())
|
||||
break;
|
||||
case SearchType::Int16Type:
|
||||
if (value <= std::numeric_limits<unsigned short>::max())
|
||||
break;
|
||||
case SearchType::ByteType:
|
||||
if (value <= std::numeric_limits<unsigned char>::max())
|
||||
break;
|
||||
default:
|
||||
QMessageBox::critical(this, tr("Debugger"), tr("Value is larger than type"));
|
||||
switch (searchType)
|
||||
{
|
||||
case SearchType::ArrayType:
|
||||
case SearchType::StringType:
|
||||
case SearchType::DoubleType:
|
||||
case SearchType::FloatType:
|
||||
break;
|
||||
case SearchType::Int64Type:
|
||||
if (value <= std::numeric_limits<unsigned long long>::max())
|
||||
break;
|
||||
case SearchType::Int32Type:
|
||||
if (value <= std::numeric_limits<unsigned long>::max())
|
||||
break;
|
||||
case SearchType::Int16Type:
|
||||
if (value <= std::numeric_limits<unsigned short>::max())
|
||||
break;
|
||||
case SearchType::ByteType:
|
||||
if (value <= std::numeric_limits<unsigned char>::max())
|
||||
break;
|
||||
default:
|
||||
QMessageBox::critical(this, tr("Debugger"), tr("Value is larger than type"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isFilterSearch && (searchComparison == SearchComparison::Changed || searchComparison == SearchComparison::ChangedBy
|
||||
|| searchComparison == SearchComparison::Decreased || searchComparison == SearchComparison::DecreasedBy
|
||||
|| searchComparison == SearchComparison::Increased || searchComparison == SearchComparison::IncreasedBy
|
||||
|| searchComparison == SearchComparison::NotChanged))
|
||||
{
|
||||
QMessageBox::critical(this, tr("Debugger"), tr("This search comparison can only be used with filter searches."));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isFilterSearch && (searchComparison == SearchComparison::Changed || searchComparison == SearchComparison::ChangedBy
|
||||
|| searchComparison == SearchComparison::Decreased || searchComparison == SearchComparison::DecreasedBy
|
||||
|| searchComparison == SearchComparison::Increased || searchComparison == SearchComparison::IncreasedBy
|
||||
|| searchComparison == SearchComparison::NotChanged))
|
||||
{
|
||||
QMessageBox::critical(this, tr("Debugger"), tr("This search comparison can only be used with filter searches."));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QFutureWatcher<std::vector<SearchResult>>* workerWatcher = new QFutureWatcher<std::vector<SearchResult>>();
|
||||
@@ -637,6 +647,23 @@ SearchComparison MemorySearchWidget::getCurrentSearchComparison()
|
||||
return m_searchComparisonLabelMap.labelToEnum(m_ui.cmbSearchComparison->currentText());
|
||||
}
|
||||
|
||||
bool MemorySearchWidget::doesSearchComparisonTakeInput(const SearchComparison comparison)
|
||||
{
|
||||
switch (comparison) {
|
||||
case SearchComparison::Equals:
|
||||
case SearchComparison::NotEquals:
|
||||
case SearchComparison::GreaterThan:
|
||||
case SearchComparison::GreaterThanOrEqual:
|
||||
case SearchComparison::LessThan:
|
||||
case SearchComparison::LessThanOrEqual:
|
||||
case SearchComparison::IncreasedBy:
|
||||
case SearchComparison::DecreasedBy:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void MemorySearchWidget::onSearchTypeChanged(int newIndex)
|
||||
{
|
||||
if (newIndex < 4)
|
||||
@@ -654,6 +681,11 @@ void MemorySearchWidget::onSearchTypeChanged(int newIndex)
|
||||
updateSearchComparisonSelections();
|
||||
}
|
||||
|
||||
void MemorySearchWidget::onSearchComparisonChanged(int newValue)
|
||||
{
|
||||
m_ui.txtSearchValue->setEnabled(getCurrentSearchComparison() != SearchComparison::UnknownValue);
|
||||
}
|
||||
|
||||
void MemorySearchWidget::updateSearchComparisonSelections()
|
||||
{
|
||||
const QString selectedComparisonLabel = m_ui.cmbSearchComparison->currentText();
|
||||
@@ -704,5 +736,11 @@ std::vector<SearchComparison> MemorySearchWidget::getValidSearchComparisonsForSt
|
||||
comparisons.push_back(SearchComparison::ChangedBy);
|
||||
comparisons.push_back(SearchComparison::NotChanged);
|
||||
}
|
||||
|
||||
if(!hasResults)
|
||||
{
|
||||
comparisons.push_back(SearchComparison::UnknownValue);
|
||||
}
|
||||
|
||||
return comparisons;
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
Changed,
|
||||
ChangedBy,
|
||||
NotChanged,
|
||||
UnknownValue,
|
||||
Invalid
|
||||
};
|
||||
|
||||
@@ -69,6 +70,7 @@ public:
|
||||
insert(SearchComparison::Changed, tr("Changed"));
|
||||
insert(SearchComparison::ChangedBy, tr("Changed By"));
|
||||
insert(SearchComparison::NotChanged, tr("Not Changed"));
|
||||
insert(SearchComparison::UnknownValue, tr("Unknown Initial Value"));
|
||||
insert(SearchComparison::Invalid, "");
|
||||
}
|
||||
SearchComparison labelToEnum(QString comparisonLabel)
|
||||
@@ -120,6 +122,7 @@ public slots:
|
||||
void onSearchButtonClicked();
|
||||
void onSearchResultsListScroll(u32 value);
|
||||
void onSearchTypeChanged(int newIndex);
|
||||
void onSearchComparisonChanged(int newIndex);
|
||||
void loadSearchResults();
|
||||
void contextSearchResultGoToDisassembly();
|
||||
void contextRemoveSearchResult();
|
||||
@@ -146,4 +149,5 @@ private:
|
||||
std::vector<SearchComparison> getValidSearchComparisonsForState(SearchType type, std::vector<SearchResult> &existingResults);
|
||||
SearchType getCurrentSearchType();
|
||||
SearchComparison getCurrentSearchComparison();
|
||||
bool doesSearchComparisonTakeInput(SearchComparison comparison);
|
||||
};
|
||||
|
||||
@@ -148,6 +148,11 @@
|
||||
<string>Less Than Or Equal</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Unknown Initial Value</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
|
||||
@@ -17162,162 +17162,168 @@ This action cannot be reversed, and you will lose any saves on the card.</source
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="123"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="59"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="60"/>
|
||||
<source>Equals</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="128"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="60"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="61"/>
|
||||
<source>Not Equals</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="133"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="61"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="62"/>
|
||||
<source>Greater Than</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="138"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="62"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="63"/>
|
||||
<source>Greater Than Or Equal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="143"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="63"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="64"/>
|
||||
<source>Less Than</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="148"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="64"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="65"/>
|
||||
<source>Less Than Or Equal</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="156"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="153"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="73"/>
|
||||
<source>Unknown Initial Value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="161"/>
|
||||
<source>Comparison</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="167"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="172"/>
|
||||
<source>Start</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="181"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.ui" line="186"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="94"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="95"/>
|
||||
<source>Search Results List Context Menu</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="100"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="101"/>
|
||||
<source>Copy Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="104"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="105"/>
|
||||
<source>Go to in Disassembly</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="108"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="109"/>
|
||||
<source>Add to Saved Memory Addresses</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="115"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="116"/>
|
||||
<source>Remove Result</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="486"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="494"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="500"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="531"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="555"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="564"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="490"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="498"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="504"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="539"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="563"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="573"/>
|
||||
<source>Debugger</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="486"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="490"/>
|
||||
<source>Invalid start address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="494"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="498"/>
|
||||
<source>Invalid end address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="500"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="504"/>
|
||||
<source>Start address can't be equal to or greater than the end address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="531"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="539"/>
|
||||
<source>Invalid search value</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="555"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="563"/>
|
||||
<source>Value is larger than type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="564"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="573"/>
|
||||
<source>This search comparison can only be used with filter searches.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="577"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="587"/>
|
||||
<source>%0 results found</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="594"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.cpp" line="604"/>
|
||||
<source>Searching...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="65"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="66"/>
|
||||
<source>Increased</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="66"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="67"/>
|
||||
<source>Increased By</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="67"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="68"/>
|
||||
<source>Decreased</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="68"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="69"/>
|
||||
<source>Decreased By</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="69"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="70"/>
|
||||
<source>Changed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="70"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="71"/>
|
||||
<source>Changed By</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="71"/>
|
||||
<location filename="../Debugger/MemorySearchWidget.h" line="72"/>
|
||||
<source>Not Changed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -952,7 +952,7 @@ GSVector2i GSRendererHW::GetValidSize(const GSTextureCache::Source* tex)
|
||||
// Make sure sizes are within max limit of 2048,
|
||||
// this shouldn't happen but if it does it needs to be addressed,
|
||||
// clamp the size so at least it doesn't cause a crash.
|
||||
constexpr int valid_max_size = 2048;
|
||||
constexpr int valid_max_size = 2047;
|
||||
if ((width > valid_max_size) || (height > valid_max_size))
|
||||
{
|
||||
Console.Warning("Warning: GetValidSize out of bounds, X:%d Y:%d", width, height);
|
||||
|
||||
@@ -1851,7 +1851,7 @@ bool VMManager::DoSaveState(const char* filename, s32 slot_for_message, bool zip
|
||||
Console.WriteLn(fmt::format("Creating save state backup {}...", backup_filename));
|
||||
if (!FileSystem::RenamePath(filename, backup_filename.c_str()))
|
||||
{
|
||||
Host::AddIconOSDMessage(std::move(osd_key), ICON_FA_EXCLAMATION_TRIANGLE,
|
||||
Host::AddIconOSDMessage(osd_key, ICON_FA_EXCLAMATION_TRIANGLE,
|
||||
fmt::format(
|
||||
TRANSLATE_FS("VMManager", "Failed to back up old save state {}."), Path::GetFileName(filename)),
|
||||
Host::OSD_ERROR_DURATION);
|
||||
@@ -2234,7 +2234,7 @@ bool VMManager::ChangeDisc(CDVD_SourceType source, std::string path)
|
||||
|
||||
CDVDsys_ChangeSource(source);
|
||||
if (!path.empty())
|
||||
CDVDsys_SetFile(source, std::move(path));
|
||||
CDVDsys_SetFile(source, path);
|
||||
|
||||
Error error;
|
||||
const bool result = DoCDVDopen(&error);
|
||||
|
||||
@@ -39,6 +39,13 @@ __fi void makeMergeMask(u32& x)
|
||||
x = ((x & 0x40) >> 6) | ((x & 0x10) >> 3) | (x & 4) | ((x & 1) << 3);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
__fi void makeMergeMaskAllColumns(u32& x)
|
||||
{
|
||||
x = ((x & 0x40404040) >> 6) | ((x & 0x10101010) >> 3) | (x & 0x04040404) | ((x & 0x01010101) << 3);
|
||||
}
|
||||
#endif
|
||||
|
||||
__fi void VifUnpackSSE_Dynarec::SetMasks(int cS) const
|
||||
{
|
||||
const int idx = v.idx;
|
||||
@@ -260,11 +267,8 @@ void VifUnpackSSE_Dynarec::CompileRoutine()
|
||||
#ifdef _WIN32
|
||||
// See SetMasks()
|
||||
const u32 m0 = vB.mask;
|
||||
const u32 m3 = ((m0 & 0xaaaaaaaa) >> 1) & ~m0;
|
||||
const u32 m2 = (m0 & 0x55555555) & (~m0 >> 1);
|
||||
// see doMaskWrite()
|
||||
const u32 m4 = (m0 & ~((m3 << 1) | m2)) & 0x55555555;
|
||||
const u32 m5 = ~(m2 | m3 | m4) & 0x0f0f0f0f;
|
||||
u32 m3 = ((m0 & 0xaaaaaaaa) >> 1) & ~m0;
|
||||
u32 m2 = (m0 & 0x55555555) & (~m0 >> 1);
|
||||
|
||||
int regsUsed = 2;
|
||||
// Allocate column registers
|
||||
@@ -287,26 +291,36 @@ void VifUnpackSSE_Dynarec::CompileRoutine()
|
||||
// Allocate row register
|
||||
if ((doMask && m2) || doMode)
|
||||
{
|
||||
rowReg = xRegisterSSE(regsUsed);
|
||||
if (regsUsed - 6 >= 0)
|
||||
nonVolatileRegs[regsUsed - 6] = rowReg;
|
||||
rowReg = xRegisterSSE(regsUsed++);
|
||||
regsUsed++;
|
||||
}
|
||||
|
||||
// see doMaskWrite()
|
||||
u32 m4 = (m0 & ~((m3 << 1) | m2)) & 0x55555555;
|
||||
makeMergeMaskAllColumns(m2);
|
||||
makeMergeMaskAllColumns(m3);
|
||||
makeMergeMaskAllColumns(m4);
|
||||
const u32 m5 = ~(m2 | m3 | m4) & 0x0f0f0f0f;
|
||||
|
||||
// Allocate temp register
|
||||
if (doMode && (doMode != 3) &&
|
||||
doMask && m5 != 0x0f0f0f0f)
|
||||
{
|
||||
tmpReg = xRegisterSSE(regsUsed);
|
||||
if (regsUsed - 6 >= 0)
|
||||
nonVolatileRegs[regsUsed - 6] = tmpReg;
|
||||
tmpReg = xRegisterSSE(regsUsed++);
|
||||
regsUsed++;
|
||||
}
|
||||
|
||||
// Allocate zero register
|
||||
if (needXmmZero)
|
||||
{
|
||||
zeroReg = xRegisterSSE(regsUsed);
|
||||
if (regsUsed - 6 >= 0)
|
||||
nonVolatileRegs[regsUsed - 6] = zeroReg;
|
||||
zeroReg = xRegisterSSE(regsUsed++);
|
||||
regsUsed++;
|
||||
}
|
||||
|
||||
regsUsed -= 6;
|
||||
|
||||
Reference in New Issue
Block a user