mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-01-31 01:15:24 +01:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bde55a6fe2 | ||
|
|
83c1bed868 | ||
|
|
6845f026bc | ||
|
|
f2c796bcc5 | ||
|
|
a930daf575 | ||
|
|
36d8e5f295 | ||
|
|
71100679a3 | ||
|
|
e3b61b5b1f | ||
|
|
42a5e7422c | ||
|
|
24782950e4 | ||
|
|
e5639102cb | ||
|
|
b74d05603d |
Binary file not shown.
@@ -2222,7 +2222,7 @@ SCAJ-20162:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
SCAJ-20163:
|
||||
name: "Tales of the Abyss"
|
||||
@@ -6311,7 +6311,7 @@ SCES-54552:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
patches:
|
||||
CBB4B383:
|
||||
@@ -8953,7 +8953,7 @@ SCPS-15102:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
SCPS-15103:
|
||||
name: "ガンパレード・オーケストラ 白の章 ~青森ペンギン伝説~(限定版)"
|
||||
@@ -9210,7 +9210,7 @@ SCPS-17013:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
patches:
|
||||
CDEE4B19:
|
||||
@@ -9459,7 +9459,7 @@ SCPS-19254:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
SCPS-19301:
|
||||
name: "みんなのGOLF 4 [PlayStation2 the Best]"
|
||||
@@ -11990,7 +11990,7 @@ SCUS-97490:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
patches:
|
||||
0643F90C:
|
||||
@@ -12314,7 +12314,7 @@ SCUS-97572:
|
||||
roundSprite: 1 # Fix mini-map and field menu.
|
||||
preloadFrameData: 1 # Fixes corrupt textures especially on water.
|
||||
disablePartialInvalidation: 1 # Prevents UI and subtitles from disappearing.
|
||||
halfPixelOffset: 4 # Aligns post bloom.
|
||||
halfPixelOffset: 2 # Aligns post bloom.
|
||||
nativeScaling: 2 # Fixes doubled post and DOF effects.
|
||||
SCUS-97574:
|
||||
name: "Jak X - Combat Racing [Greatest Hits]"
|
||||
@@ -13381,6 +13381,7 @@ SLED-53330:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLED-53359:
|
||||
@@ -17386,9 +17387,9 @@ SLES-51553:
|
||||
clampModes:
|
||||
vuClampMode: 2 # Fixes SPS in item menu.
|
||||
gsHWFixes:
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
alignSprite: 1 # Fixes green vertical lines.
|
||||
roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed.
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
SLES-51554:
|
||||
name: "Cell Damage Overdrive"
|
||||
region: "PAL-M5"
|
||||
@@ -18443,6 +18444,8 @@ SLES-51981:
|
||||
vuClampMode: 0 # Resolves I Reg Clamping / performance impact and yellow graphics in certain areas.
|
||||
gsHWFixes:
|
||||
roundSprite: 1 # Fixes slight blur.
|
||||
halfPixelOffset: 2 # Aligns sun post processing.
|
||||
nativeScaling: 2 # Fixes sun lines.
|
||||
SLES-51982:
|
||||
name: "ShellShock - Nam '67"
|
||||
region: "PAL-M3"
|
||||
@@ -18450,6 +18453,8 @@ SLES-51982:
|
||||
vuClampMode: 0 # Resolves I Reg Clamping / performance impact and yellow graphics in certain areas.
|
||||
gsHWFixes:
|
||||
roundSprite: 1 # Fixes slight blur.
|
||||
halfPixelOffset: 2 # Aligns sun post processing.
|
||||
nativeScaling: 2 # Fixes sun lines.
|
||||
SLES-51986:
|
||||
name: "Backyard Wrestling - Don't Try This At Home"
|
||||
region: "PAL-M5"
|
||||
@@ -21588,6 +21593,7 @@ SLES-53125:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLES-53127:
|
||||
@@ -29547,9 +29553,9 @@ SLKA-25026:
|
||||
clampModes:
|
||||
vuClampMode: 2 # Fixes SPS in item menu.
|
||||
gsHWFixes:
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
alignSprite: 1 # Fixes green vertical lines.
|
||||
roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed.
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
SLKA-25027:
|
||||
name: "NBA Street Vol. 2"
|
||||
region: "NTSC-K"
|
||||
@@ -34323,6 +34329,7 @@ SLPM-61110:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLPM-61111:
|
||||
@@ -40174,9 +40181,9 @@ SLPM-65249:
|
||||
clampModes:
|
||||
vuClampMode: 2 # Fixes SPS in item menu.
|
||||
gsHWFixes:
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
alignSprite: 1 # Fixes green vertical lines.
|
||||
roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed.
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
SLPM-65250:
|
||||
name: "カットビ!! ゴルフ"
|
||||
name-sort: "かっとび!! ごるふ"
|
||||
@@ -44126,6 +44133,7 @@ SLPM-65948:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLPM-65949:
|
||||
@@ -46097,6 +46105,7 @@ SLPM-66257:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLPM-66258:
|
||||
@@ -51024,6 +51033,7 @@ SLPM-68519:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLPM-68520:
|
||||
@@ -53333,6 +53343,8 @@ SLPS-20307:
|
||||
name-sort: "らくしょう! ぱちすろせんげん - もぐもぐふうりんかざん・しょうきんくび・びりーざびっぐ・すーぱーぶらっくじゃっく"
|
||||
name-en: "Rakushou! Pachi-Slot Sengen - MoguMoguFuuRinKaZan,Shoukin Kubi,Billy the Big,Super Black Jack"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
cpuFramebufferConversion: 1 # A liitle fixes some graphic glitchs on upper screen (not Perfectly).
|
||||
SLPS-20308:
|
||||
name: "花火百景 [特典版]"
|
||||
name-sort: "はなびひゃっけい [とくてんばん]"
|
||||
@@ -53790,6 +53802,8 @@ SLPS-20404:
|
||||
name-sort: "らくしょう! ぱちすろせんげん2 - じゅうじか・でかだん"
|
||||
name-en: "Rakushou! Pachi-Slot Sengen 2 - Juujika, Deka Dan"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
cpuFramebufferConversion: 1 # A liitle fixes some graphic glitchs on upper screen (not Perfectly).
|
||||
SLPS-20405:
|
||||
name: "スロッターUPコア5 ルパン大好き!主役は銭形"
|
||||
name-sort: "すろったーUPこあ 5 るぱんだいすき!しゅやくはぜにがた"
|
||||
@@ -53866,6 +53880,8 @@ SLPS-20419:
|
||||
name-sort: "らくしょう! ぱちすろせんげん3 - りおでかーにばる・じゅうじか600しき"
|
||||
name-en: "Rakushou! Pachi-Slot Sengen 3 - Rio de Carnival, Juujika 600-shiki"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
cpuFramebufferConversion: 1 # A liitle fixes some graphic glitchs on upper screen (not Perfectly).
|
||||
SLPS-20420:
|
||||
name: "ウルトラマンネクサス"
|
||||
name-sort: "うるとらまんねくさす"
|
||||
@@ -54075,6 +54091,8 @@ SLPS-20460:
|
||||
name-sort: "らくしょう! ぱちすろせんげん4 - しんもぐもぐふうりんかざん りおでかーにばる"
|
||||
name-en: "Rakushou! Pachi-Slot Sengen 4 - Shin MoguMogu FuuRinKaZan,Rio de Carnival"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
cpuFramebufferConversion: 1 # A liitle fixes some graphic glitchs on upper screen (not Perfectly).
|
||||
SLPS-20461:
|
||||
name: "SIMPLE2000シリーズ Vol.99 THE 原始人"
|
||||
name-sort: "しんぷる2000しりーず Vol. 99 THE げんしじん"
|
||||
@@ -58925,6 +58943,8 @@ SLPS-25770:
|
||||
name-sort: "らくしょう! ぱちすろせんげん5 - りおぱらだいす"
|
||||
name-en: "Rakushou! Pachi-Slot Sengen 5 - Rio Paradise"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
cpuFramebufferConversion: 1 # A liitle fixes some graphic glitchs on upper screen (not Perfectly).
|
||||
SLPS-25771:
|
||||
name: "グリムグリモア [初回生産版]"
|
||||
name-sort: "ぐりむぐりもあ [しょかいせいさんばん]"
|
||||
@@ -59794,6 +59814,8 @@ SLPS-25921:
|
||||
name-sort: "らくしょう! ぱちすろせんげん6 - りお2 くるーじんぐ ヴぁなでぃーす"
|
||||
name-en: "Rakushou! Pachi-Slot Sengen 6 - Rio 2 Cruising Vanadis"
|
||||
region: "NTSC-J"
|
||||
gsHWFixes:
|
||||
cpuFramebufferConversion: 1 # A liitle fixes some graphic glitchs on upper screen (not Perfectly).
|
||||
SLPS-25922:
|
||||
name: "Vitamin Z [限定版]"
|
||||
name-sort: "びたみん Z [げんていばん]"
|
||||
@@ -64408,9 +64430,9 @@ SLUS-20695:
|
||||
clampModes:
|
||||
vuClampMode: 2 # Fixes SPS in item menu.
|
||||
gsHWFixes:
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
alignSprite: 1 # Fixes green vertical lines.
|
||||
roundSprite: 2 # Fixes vertical lines and some font artifacts but not completely fixed.
|
||||
textureInsideRT: 1 # Fixes rainbow shadow of legions.
|
||||
SLUS-20696:
|
||||
name: "Nickelodeon Jimmy Neutron Boy Genius - Jet Fusion"
|
||||
region: "NTSC-U"
|
||||
@@ -65102,6 +65124,8 @@ SLUS-20828:
|
||||
vuClampMode: 0 # Resolves I Reg Clamping / performance impact and yellow graphics in certain areas.
|
||||
gsHWFixes:
|
||||
roundSprite: 1 # Fixes slight blur.
|
||||
halfPixelOffset: 2 # Aligns sun post processing.
|
||||
nativeScaling: 2 # Fixes sun lines.
|
||||
SLUS-20830:
|
||||
name: "Intellivision Lives!"
|
||||
region: "NTSC-U"
|
||||
@@ -65931,6 +65955,7 @@ SLUS-20967:
|
||||
gsHWFixes:
|
||||
alignSprite: 1 # Fixes vertical lines.
|
||||
textureInsideRT: 1 # Fixes reflections.
|
||||
mipmap: 0 # Currently causes texture flickering.
|
||||
gameFixes:
|
||||
- SoftwareRendererFMVHack # Fixes upscale lines in FMVs.
|
||||
SLUS-20968:
|
||||
@@ -67417,6 +67442,11 @@ SLUS-21218:
|
||||
name: "Tak - The Great Juju Challenge"
|
||||
region: "NTSC-U"
|
||||
compat: 5
|
||||
memcardFilters:
|
||||
- "SLUS-21218"
|
||||
- "SLUS-21252"
|
||||
- "SLUS-21277"
|
||||
- "SLUS-21284"
|
||||
SLUS-21219:
|
||||
name: "Pac-Man World 3"
|
||||
region: "NTSC-U"
|
||||
@@ -67660,6 +67690,11 @@ SLUS-21252:
|
||||
recommendedBlendingLevel: 3 # Fixes missing lights.
|
||||
halfPixelOffset: 4 # Aligns post processing.
|
||||
nativeScaling: 2 # Fixes post effects.
|
||||
memcardFilters:
|
||||
- "SLUS-21218"
|
||||
- "SLUS-21252"
|
||||
- "SLUS-21277"
|
||||
- "SLUS-21284"
|
||||
SLUS-21253:
|
||||
name: "TY the Tasmanian Tiger 3 - Night of the Quinkan"
|
||||
region: "NTSC-U"
|
||||
@@ -67851,6 +67886,11 @@ SLUS-21277:
|
||||
autoFlush: 2 # Needed for recursive mipmap rendering.
|
||||
nativeScaling: 1 # Fixes post effects.
|
||||
getSkipCount: "GSC_BlueTongueGames" # Render mipmaps on the CPU.
|
||||
memcardFilters:
|
||||
- "SLUS-21218"
|
||||
- "SLUS-21252"
|
||||
- "SLUS-21277"
|
||||
- "SLUS-21284"
|
||||
SLUS-21278:
|
||||
name: "SSX On Tour"
|
||||
region: "NTSC-U"
|
||||
@@ -67921,6 +67961,11 @@ SLUS-21284:
|
||||
autoFlush: 2 # Fixes glows. Also needed for recursive mipmap rendering.
|
||||
textureInsideRT: 1 # Fixes rainbow lighting for some areas.
|
||||
getSkipCount: "GSC_BlueTongueGames" # Mipmap rendering on CPU.
|
||||
memcardFilters:
|
||||
- "SLUS-21218"
|
||||
- "SLUS-21252"
|
||||
- "SLUS-21277"
|
||||
- "SLUS-21284"
|
||||
SLUS-21285:
|
||||
name: "Ultimate Spider-Man [Limited Edition]"
|
||||
region: "NTSC-U"
|
||||
|
||||
@@ -325,7 +325,7 @@
|
||||
030000000d0f0000c100000000000000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
030000000d0f0000f600000000000000,Horipad Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows,
|
||||
030000000d0f00006700000000000000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
|
||||
030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b2,paddle1:b15,paddle2:b5,paddle3:b19,paddle4:b18,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
030000000d0f0000dc00000000000000,Horipad Switch,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
|
||||
03000000242e00000b20000000000000,Hyperkin Admiral N64 Controller,+rightx:b11,+righty:b13,-rightx:b8,-righty:b12,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,platform:Windows,
|
||||
03000000242e0000ff0b000000000000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Windows,
|
||||
@@ -1051,7 +1051,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000b40400000a01000000000000,Sega Saturn,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X,
|
||||
030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,
|
||||
0300000000f00000f100000000000000,SNES RetroPort,a:b2,b:b3,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,rightshoulder:b7,start:b6,x:b0,y:b1,platform:Mac OS X,
|
||||
03000000bc2000000155000000010000,SNK NEOGEO Arcade Stick Pro,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b2,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b11,x:b0,y:b3,platform:Mac OS X,
|
||||
030000004c050000a00b000000000000,Sony DualShock 4 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,
|
||||
030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,
|
||||
03000000666600006706000088020000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Mac OS X,
|
||||
@@ -1328,6 +1327,8 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000000d0f0000ee00000011010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000000d0f0000c100000011010000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000000d0f00006700000001010000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000000d0f0000ab01000011010000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc2:b2,paddle1:b19,paddle2:b18,paddle3:b15,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
050000000d0f00009601000091000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc2:b2,paddle1:b19,paddle2:b18,paddle3:b15,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
050000000d0f0000f600000001000000,Horipad Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
03000000341a000005f7000010010000,HuiJia GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux,
|
||||
05000000242e00000b20000001000000,Hyperkin Admiral N64 Controller,+rightx:b11,+righty:b13,-rightx:b8,-righty:b12,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,platform:Linux,
|
||||
@@ -1501,6 +1502,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000006f0e0000ef02000007640000,PDP Xbox Series Kinetic Wired Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000c62400000053000000010000,PowerA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000c62400003a54000001010000,PowerA 1428124-01,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d62000000540000001010000,PowerA Advantage Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d620000011a7000011010000,PowerA Core Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000dd62000015a7000011010000,PowerA Fusion Nintendo Switch Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000d620000012a7000011010000,PowerA Fusion Nintendo Switch Fight Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -1517,7 +1519,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000d62000000240000001010000,PowerA Xbox One Spectra Infinity,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d62000000f20000001010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d62000000b20000001010000,PowerA Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d62000000540000001010000,PowerA Advantage Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000006d040000d2ca000011010000,Precision Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000250900000017000010010000,PS/SS/N64 Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b5,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2~,righty:a3,start:b8,platform:Linux,
|
||||
03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
@@ -1627,7 +1628,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000790000001100000011010000,Sega Saturn,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000790000002201000011010000,Sega Saturn,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux,
|
||||
03000000b40400000a01000000010000,Sega Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux,
|
||||
030000001f08000001e4000010010000,SFC Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000632500002305000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000632500002605000010010000,Shanwan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000632500007505000010010000,Shanwan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
@@ -1664,6 +1664,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
05000000110100001914000009010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000ad1b000038f0000090040000,Street Fighter IV Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000003b07000004a1000000010000,Suncom SFX Plus,a:b0,b:b2,back:b7,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Linux,
|
||||
030000001f08000001e4000010010000,Super Famicom Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux,
|
||||
0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux,
|
||||
030000008f0e00000d31000010010000,SZMY Power 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
lbsubmit.wav: https://freesound.org/people/Eponn/sounds/636656/
|
||||
unlock.wav and message.wav are from https://github.com/RetroAchievements/RAInterface
|
||||
message.wav is from https://github.com/RetroAchievements/RAInterface
|
||||
unlock.wav is from https://freesound.org/people/rhodesmas/sounds/320655/
|
||||
|
||||
Binary file not shown.
@@ -14582,7 +14582,7 @@ Swap chain: see Microsoft's Terminology Portal.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="1130"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="1132"/>
|
||||
<source>Save slot {0} selected ({1}).</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -14590,78 +14590,63 @@ Swap chain: see Microsoft's Terminology Portal.</extracomment>
|
||||
<context>
|
||||
<name>ImGuiOverlays</name>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="685"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="687"/>
|
||||
<source>{} Recording Input</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="689"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="691"/>
|
||||
<source>{} Replaying</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="693"/>
|
||||
<source>Input Recording Active: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="694"/>
|
||||
<source>Frame: {}/{} ({})</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="695"/>
|
||||
<source>Undo Count: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="757"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="759"/>
|
||||
<source>Saved at {0:%H:%M} on {0:%a} {0:%Y/%m/%d}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="784"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="786"/>
|
||||
<source>Save state selector is unavailable without a valid game serial.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="871"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="873"/>
|
||||
<source>Load</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="873"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="875"/>
|
||||
<source>Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="875"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="877"/>
|
||||
<source>Select Previous</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="877"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="879"/>
|
||||
<source>Select Next</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="879"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="881"/>
|
||||
<source>Close Menu</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="932"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="954"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="934"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="956"/>
|
||||
<source>Save Slot {0}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="955"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="957"/>
|
||||
<source>No save present in this slot.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="1127"/>
|
||||
<location filename="../../pcsx2/ImGui/ImGuiOverlays.cpp" line="1129"/>
|
||||
<source>no save yet</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -14771,40 +14756,55 @@ Right click to clear binding</source>
|
||||
<context>
|
||||
<name>InputRecording</name>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="75"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="77"/>
|
||||
<source>Started new input recording</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="94"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="96"/>
|
||||
<source>Savestate load failed for input recording</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="104"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="106"/>
|
||||
<source>Savestate load failed for input recording, unsupported version?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="121"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="123"/>
|
||||
<source>Replaying input recording</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="139"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="141"/>
|
||||
<source>Input recording stopped</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="144"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="146"/>
|
||||
<source>Unable to stop input recording</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="232"/>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="234"/>
|
||||
<source>Congratulations, you've been playing for far too long and thus have reached the limit of input recording! Stopping recording now...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="394"/>
|
||||
<source>Input Recording Active: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="395"/>
|
||||
<source>Frame: {}/{} ({})</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/Recording/InputRecording.cpp" line="396"/>
|
||||
<source>Undo Count: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InputRecordingControls</name>
|
||||
@@ -18504,7 +18504,7 @@ Ejecting {3} and replacing it with {2}.</source>
|
||||
<context>
|
||||
<name>SaveState</name>
|
||||
<message>
|
||||
<location filename="../../pcsx2/SaveState.cpp" line="1100"/>
|
||||
<location filename="../../pcsx2/SaveState.cpp" line="1104"/>
|
||||
<source>This save state is outdated and is no longer compatible with the current version of PCSX2.
|
||||
|
||||
If you have any unsaved progress on this save state, you can download the compatible version (PCSX2 {}) from pcsx2.net, load the save state, and save your progress to the memory card.</source>
|
||||
@@ -21834,177 +21834,177 @@ Error was: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3065"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3067"/>
|
||||
<source>Cheats have been disabled due to achievements hardcore mode.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3118"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3120"/>
|
||||
<source>Fast CDVD is enabled, this may break games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3122"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3124"/>
|
||||
<source>Cycle rate/skip is not at default, this may crash or make games run too slow.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3132"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3134"/>
|
||||
<source>Upscale multiplier is below native, this will break rendering.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3172"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3174"/>
|
||||
<source>Mipmapping is disabled. This may break rendering in some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3181"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3183"/>
|
||||
<source>Renderer is not set to Automatic. This may cause performance problems and graphical issues.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3187"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3189"/>
|
||||
<source>Texture filtering is not set to Bilinear (PS2). This will break rendering in some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3650"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3652"/>
|
||||
<source>No Game Running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3137"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3139"/>
|
||||
<source>Trilinear filtering is not set to automatic. This may break rendering in some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3142"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3144"/>
|
||||
<source>Blending Accuracy is below Basic, this may break effects in some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3147"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3149"/>
|
||||
<source>Hardware Download Mode is not set to Accurate, this may break rendering in some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3193"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3195"/>
|
||||
<source>EE FPU Round Mode is not set to default, this may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3199"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3201"/>
|
||||
<source>EE FPU Clamp Mode is not set to default, this may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3204"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3206"/>
|
||||
<source>VU0 Round Mode is not set to default, this may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3209"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3211"/>
|
||||
<source>VU1 Round Mode is not set to default, this may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3216"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3218"/>
|
||||
<source>VU Clamp Mode is not set to default, this may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3221"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3223"/>
|
||||
<source>128MB RAM is enabled. Compatibility with some games may be affected.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3226"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3228"/>
|
||||
<source>Game Fixes are not enabled. Compatibility with some games may be affected.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3231"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3233"/>
|
||||
<source>Compatibility Patches are not enabled. Compatibility with some games may be affected.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3235"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3237"/>
|
||||
<source>Frame rate for NTSC is not default. This may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3237"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3239"/>
|
||||
<source>Frame rate for PAL is not default. This may break some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3256"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3258"/>
|
||||
<source>EE Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3261"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3263"/>
|
||||
<source>VU0 Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3266"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3268"/>
|
||||
<source>VU1 Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3271"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3273"/>
|
||||
<source>IOP Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3276"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3278"/>
|
||||
<source>EE Cache is enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3281"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3283"/>
|
||||
<source>EE Wait Loop Detection is not enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3286"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3288"/>
|
||||
<source>INTC Spin Detection is not enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3289"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3291"/>
|
||||
<source>Fastmem is not enabled, this will reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3293"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3295"/>
|
||||
<source>Instant VU1 is disabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3298"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3300"/>
|
||||
<source>mVU Flag Hack is not enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3152"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3154"/>
|
||||
<source>GPU Palette Conversion is enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3157"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3159"/>
|
||||
<source>Texture Preloading is not Full, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3162"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3164"/>
|
||||
<source>Estimate texture region is enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3167"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3169"/>
|
||||
<source>Texture dumping is enabled, this will continually dump textures to disk.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -97,11 +97,20 @@ void SymbolImporter::OnElfChanged(std::vector<u8> elf, const std::string& elf_fi
|
||||
return;
|
||||
}
|
||||
|
||||
AnalyseElf(std::move(elf), elf_file_name, EmuConfig.DebuggerAnalysis);
|
||||
AnalyseElf(std::move(elf), elf_file_name, EmuConfig.DebuggerAnalysis, true);
|
||||
|
||||
m_symbol_table_loaded_on_boot = true;
|
||||
}
|
||||
|
||||
void SymbolImporter::OnElfLoadedInMemory()
|
||||
{
|
||||
{
|
||||
std::lock_guard lock(m_elf_loaded_in_memory_mutex);
|
||||
m_elf_loaded_in_memory = true;
|
||||
}
|
||||
m_elf_loaded_in_memory_condition_variable.notify_one();
|
||||
}
|
||||
|
||||
void SymbolImporter::OnDebuggerOpened()
|
||||
{
|
||||
m_debugger_open = true;
|
||||
@@ -165,11 +174,23 @@ void SymbolImporter::LoadAndAnalyseElf(Pcsx2Config::DebugAnalysisOptions options
|
||||
return;
|
||||
}
|
||||
|
||||
AnalyseElf(elfo.ReleaseData(), elf_path, options);
|
||||
AnalyseElf(elfo.ReleaseData(), elf_path, options, false);
|
||||
}
|
||||
|
||||
struct SymbolImporterThreadParameters
|
||||
{
|
||||
std::vector<u8> elf;
|
||||
std::string elf_file_name;
|
||||
std::string nocash_path;
|
||||
Pcsx2Config::DebugAnalysisOptions options;
|
||||
bool wait_until_elf_is_loaded;
|
||||
};
|
||||
|
||||
void SymbolImporter::AnalyseElf(
|
||||
std::vector<u8> elf, const std::string& elf_file_name, Pcsx2Config::DebugAnalysisOptions options)
|
||||
std::vector<u8> elf,
|
||||
const std::string& elf_file_name,
|
||||
Pcsx2Config::DebugAnalysisOptions options,
|
||||
bool wait_until_elf_is_loaded)
|
||||
{
|
||||
// Search for a .sym file to load symbols from.
|
||||
std::string nocash_path;
|
||||
@@ -185,38 +206,63 @@ void SymbolImporter::AnalyseElf(
|
||||
nocash_path = iso_file_path.substr(0, n) + ".sym";
|
||||
}
|
||||
|
||||
ccc::Result<ccc::ElfFile> parsed_elf = ccc::ElfFile::parse(std::move(elf));
|
||||
if (!parsed_elf.success())
|
||||
{
|
||||
ccc::report_error(parsed_elf.error());
|
||||
return;
|
||||
}
|
||||
|
||||
ccc::ElfSymbolFile symbol_file(std::move(*parsed_elf), std::move(elf_file_name));
|
||||
SymbolImporterThreadParameters parameters;
|
||||
parameters.elf = std::move(elf);
|
||||
parameters.elf_file_name = elf_file_name;
|
||||
parameters.nocash_path = std::move(nocash_path);
|
||||
parameters.options = std::move(options);
|
||||
parameters.wait_until_elf_is_loaded = wait_until_elf_is_loaded;
|
||||
|
||||
ShutdownWorkerThread();
|
||||
|
||||
m_import_thread = std::thread([this, nocash_path, options, worker_symbol_file = std::move(symbol_file), builtins = m_builtin_types]() {
|
||||
m_import_thread = std::thread([this, params = std::move(parameters)]() {
|
||||
Threading::SetNameOfCurrentThread("Symbol Worker");
|
||||
|
||||
ccc::Result<ccc::ElfFile> parsed_elf = ccc::ElfFile::parse(std::move(params.elf));
|
||||
if (!parsed_elf.success())
|
||||
{
|
||||
ccc::report_error(parsed_elf.error());
|
||||
return;
|
||||
}
|
||||
|
||||
ccc::ElfSymbolFile symbol_file(std::move(*parsed_elf), std::move(params.elf_file_name));
|
||||
|
||||
ccc::SymbolDatabase temp_database;
|
||||
|
||||
ImportSymbols(temp_database, worker_symbol_file, nocash_path, options, builtins, &m_interrupt_import_thread);
|
||||
ImportSymbols(
|
||||
temp_database,
|
||||
symbol_file,
|
||||
params.nocash_path,
|
||||
params.options,
|
||||
m_builtin_types,
|
||||
&m_interrupt_import_thread);
|
||||
|
||||
if (m_interrupt_import_thread)
|
||||
return;
|
||||
|
||||
if (options.GenerateFunctionHashes)
|
||||
if (params.options.GenerateFunctionHashes)
|
||||
{
|
||||
ElfMemoryReader reader(worker_symbol_file.elf());
|
||||
ElfMemoryReader reader(symbol_file.elf());
|
||||
SymbolGuardian::GenerateFunctionHashes(temp_database, reader);
|
||||
}
|
||||
|
||||
if (m_interrupt_import_thread)
|
||||
return;
|
||||
|
||||
if (params.wait_until_elf_is_loaded && params.options.FunctionScanMode == DebugFunctionScanMode::SCAN_MEMORY)
|
||||
{
|
||||
// Wait for the entry point to start compiling on the CPU thread so
|
||||
// we know the functions we want to scan are loaded in memory.
|
||||
std::unique_lock lock(m_elf_loaded_in_memory_mutex);
|
||||
m_elf_loaded_in_memory_condition_variable.wait(lock,
|
||||
[this]() { return m_elf_loaded_in_memory; });
|
||||
|
||||
if (m_interrupt_import_thread)
|
||||
return;
|
||||
}
|
||||
|
||||
m_guardian.ReadWrite([&](ccc::SymbolDatabase& database) {
|
||||
ClearExistingSymbols(database, options);
|
||||
ClearExistingSymbols(database, params.options);
|
||||
|
||||
if (m_interrupt_import_thread)
|
||||
return;
|
||||
@@ -229,7 +275,7 @@ void SymbolImporter::AnalyseElf(
|
||||
// The function scanner has to be run on the main database so that
|
||||
// functions created before the importer was run are still
|
||||
// considered. Otherwise, duplicate functions will be created.
|
||||
ScanForFunctions(database, worker_symbol_file, options);
|
||||
ScanForFunctions(database, symbol_file, params.options);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -239,9 +285,23 @@ void SymbolImporter::ShutdownWorkerThread()
|
||||
if (m_import_thread.joinable())
|
||||
{
|
||||
m_interrupt_import_thread = true;
|
||||
|
||||
// Make sure the import thread is woken up so we can shut it down.
|
||||
{
|
||||
std::lock_guard lock(m_elf_loaded_in_memory_mutex);
|
||||
m_elf_loaded_in_memory = true;
|
||||
}
|
||||
m_elf_loaded_in_memory_condition_variable.notify_one();
|
||||
|
||||
m_import_thread.join();
|
||||
|
||||
m_interrupt_import_thread = false;
|
||||
}
|
||||
|
||||
{
|
||||
std::lock_guard lock(m_elf_loaded_in_memory_mutex);
|
||||
m_elf_loaded_in_memory = false;
|
||||
}
|
||||
}
|
||||
|
||||
void SymbolImporter::ClearExistingSymbols(ccc::SymbolDatabase& database, const Pcsx2Config::DebugAnalysisOptions& options)
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "Config.h"
|
||||
#include "SymbolGuardian.h"
|
||||
|
||||
#include <condition_variable>
|
||||
|
||||
class DebugInterface;
|
||||
|
||||
class SymbolImporter
|
||||
@@ -17,6 +19,7 @@ public:
|
||||
// that are used to determine when symbol tables should be loaded, and
|
||||
// should be called from the CPU thread.
|
||||
void OnElfChanged(std::vector<u8> elf, const std::string& elf_file_name);
|
||||
void OnElfLoadedInMemory();
|
||||
void OnDebuggerOpened();
|
||||
void OnDebuggerClosed();
|
||||
|
||||
@@ -30,7 +33,11 @@ public:
|
||||
|
||||
// Import symbols from the ELF file, nocash symbols, and scan for functions.
|
||||
// Should be called from the CPU thread.
|
||||
void AnalyseElf(std::vector<u8> elf, const std::string& elf_file_name, Pcsx2Config::DebugAnalysisOptions options);
|
||||
void AnalyseElf(
|
||||
std::vector<u8> elf,
|
||||
const std::string& elf_file_name,
|
||||
Pcsx2Config::DebugAnalysisOptions options,
|
||||
bool wait_until_elf_is_loaded);
|
||||
|
||||
// Interrupt the import thread. Should be called from the CPU thread.
|
||||
void ShutdownWorkerThread();
|
||||
@@ -77,6 +84,10 @@ protected:
|
||||
std::thread m_import_thread;
|
||||
std::atomic_bool m_interrupt_import_thread = false;
|
||||
|
||||
std::mutex m_elf_loaded_in_memory_mutex;
|
||||
std::condition_variable m_elf_loaded_in_memory_condition_variable;
|
||||
bool m_elf_loaded_in_memory = false;
|
||||
|
||||
std::map<std::string, ccc::DataTypeHandle> m_builtin_types;
|
||||
};
|
||||
|
||||
|
||||
@@ -47,10 +47,11 @@ SERIAL-12345: # !required! Serial number for the game, this is how games are loo
|
||||
mipmap: 1
|
||||
preloadFrameData: 1
|
||||
# The value of the speedhacks is assumed to be an integer,
|
||||
# but at the time of writing speedhacks are effectively booleans (0/1)
|
||||
speedHacks:
|
||||
mvuFlagSpeedHack: 0
|
||||
InstantVU1SpeedHack: 0
|
||||
mvuFlag: 0
|
||||
InstantVU1: 0
|
||||
mtvu: 0
|
||||
eeCycleRate: 2
|
||||
memcardFilters:
|
||||
- "SERIAL-123"
|
||||
- "SERIAL-456"
|
||||
@@ -249,15 +250,17 @@ These values are in a key-value format, where the value is assumed to be an inte
|
||||
|
||||
### Options for SpeedHacks
|
||||
|
||||
* `mvuFlagSpeedHack`
|
||||
* `mvuFlag`
|
||||
* Accepted Values - `0` / `1`
|
||||
* Katamari Damacy has a peculiar speed bug when this speed hack is enabled (and it is by default)
|
||||
* `MTVUSpeedHack`
|
||||
* `mtvu`
|
||||
* Accepted Values - `0` / `1`
|
||||
* T-bit games dislike MTVU, and some games are incompatible with MTVU.
|
||||
* `InstantVU1SpeedHack`
|
||||
* `instantVU1`
|
||||
* Accepted Values - `0` / `1`
|
||||
* Games such as PaRappa the Rapper 2 need VU1 to sync, so you can force sync with this parameter.
|
||||
* `eeCycleRate`
|
||||
* Accepted Values - `-3` / `3`
|
||||
|
||||
## Memory Card Filter Override
|
||||
|
||||
|
||||
@@ -949,6 +949,17 @@ 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;
|
||||
if ((width > valid_max_size) || (height > valid_max_size))
|
||||
{
|
||||
Console.Warning("Warning: GetValidSize out of bounds, X:%d Y:%d", width, height);
|
||||
width = std::min(width, valid_max_size);
|
||||
height = std::min(height, valid_max_size);
|
||||
}
|
||||
|
||||
return GSVector2i(width, height);
|
||||
}
|
||||
|
||||
@@ -2728,7 +2739,7 @@ void GSRendererHW::Draw()
|
||||
}
|
||||
|
||||
rt = g_texture_cache->CreateTarget(FRAME_TEX0, t_size, GetValidSize(src), (scale_draw < 0 && is_possible_mem_clear != ClearType::NormalClear) ? src->m_from_target->GetScale() : target_scale, GSTextureCache::RenderTarget, true,
|
||||
fm, false, force_preload, preserve_rt_color | possible_shuffle, m_r, src);
|
||||
fm, false, force_preload, preserve_rt_color || possible_shuffle, m_r, src);
|
||||
if (!rt) [[unlikely]]
|
||||
{
|
||||
GL_INS("ERROR: Failed to create FRAME target, skipping.");
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
#include <tuple>
|
||||
#include <unordered_map>
|
||||
|
||||
InputRecordingUI::InputRecordingData g_InputRecordingData;
|
||||
|
||||
namespace ImGuiManager
|
||||
{
|
||||
static void FormatProcessorStat(SmallStringBase& text, double usage, double time);
|
||||
@@ -680,7 +682,7 @@ __ri void ImGuiManager::DrawInputRecordingOverlay(float& position_y, float scale
|
||||
} while (0)
|
||||
|
||||
// Status Indicators
|
||||
if (g_InputRecording.getControls().isRecording())
|
||||
if (g_InputRecordingData.is_recording)
|
||||
{
|
||||
DRAW_LINE(standard_font, TinyString::from_format(TRANSLATE_FS("ImGuiOverlays", "{} Recording Input"), ICON_PF_CIRCLE).c_str(), IM_COL32(255, 0, 0, 255));
|
||||
}
|
||||
@@ -690,9 +692,9 @@ __ri void ImGuiManager::DrawInputRecordingOverlay(float& position_y, float scale
|
||||
}
|
||||
|
||||
// Input Recording Metadata
|
||||
DRAW_LINE(fixed_font, TinyString::from_format(TRANSLATE_FS("ImGuiOverlays", "Input Recording Active: {}"), g_InputRecording.getData().getFilename()).c_str(), IM_COL32(117, 255, 241, 255));
|
||||
DRAW_LINE(fixed_font, TinyString::from_format(TRANSLATE_FS("ImGuiOverlays", "Frame: {}/{} ({})"), g_InputRecording.getFrameCounter() + 1, g_InputRecording.getData().getTotalFrames(), g_FrameCount).c_str(), IM_COL32(117, 255, 241, 255));
|
||||
DRAW_LINE(fixed_font, TinyString::from_format(TRANSLATE_FS("ImGuiOverlays", "Undo Count: {}"), g_InputRecording.getData().getUndoCount()).c_str(), IM_COL32(117, 255, 241, 255));
|
||||
DRAW_LINE(fixed_font, g_InputRecordingData.recording_active_message.c_str(), IM_COL32(117, 255, 241, 255));
|
||||
DRAW_LINE(fixed_font, g_InputRecordingData.frame_data_message.c_str(), IM_COL32(117, 255, 241, 255));
|
||||
DRAW_LINE(fixed_font, g_InputRecordingData.undo_count_message.c_str(), IM_COL32(117, 255, 241, 255));
|
||||
|
||||
#undef DRAW_LINE
|
||||
}
|
||||
|
||||
@@ -28,3 +28,16 @@ namespace SaveStateSelectorUI
|
||||
void LoadCurrentSlot();
|
||||
void SaveCurrentSlot();
|
||||
} // namespace SaveStateSelectorUI
|
||||
|
||||
namespace InputRecordingUI
|
||||
{
|
||||
struct InputRecordingData
|
||||
{
|
||||
bool is_recording = false;
|
||||
TinyString recording_active_message = "";
|
||||
TinyString frame_data_message = "";
|
||||
TinyString undo_count_message = "";
|
||||
};
|
||||
}
|
||||
|
||||
extern InputRecordingUI::InputRecordingData g_InputRecordingData;
|
||||
|
||||
@@ -26,6 +26,8 @@ bool SaveStateBase::InputRecordingFreeze()
|
||||
#include "Counters.h"
|
||||
#include "SaveState.h"
|
||||
#include "VMManager.h"
|
||||
#include "Host.h"
|
||||
#include "ImGui/ImGuiOverlays.h"
|
||||
#include "DebugTools/Debug.h"
|
||||
#include "GameDatabase.h"
|
||||
#include "fmt/format.h"
|
||||
@@ -237,8 +239,9 @@ void InputRecording::incFrameCounter()
|
||||
|
||||
if (m_controls.isReplaying())
|
||||
{
|
||||
InformGSThread();
|
||||
// If we've reached the end of the recording while replaying, pause
|
||||
if (m_frame_counter == m_file.getTotalFrames() - 1)
|
||||
if (m_frame_counter == m_file.getTotalFrames())
|
||||
{
|
||||
VMManager::SetPaused(true);
|
||||
// Can also stop watching for re-records, they've watched to the end of the recording
|
||||
@@ -247,6 +250,7 @@ void InputRecording::incFrameCounter()
|
||||
}
|
||||
if (m_controls.isRecording())
|
||||
{
|
||||
m_frame_counter_stateless++;
|
||||
m_file.setTotalFrames(m_frame_counter);
|
||||
// If we've been in record mode and moved to the next frame, we've overrote something
|
||||
// if this was following a save-state loading, this is considered a re-record, a.k.a an undo
|
||||
@@ -255,14 +259,20 @@ void InputRecording::incFrameCounter()
|
||||
m_file.incrementUndoCount();
|
||||
m_watching_for_rerecords = false;
|
||||
}
|
||||
InformGSThread();
|
||||
}
|
||||
}
|
||||
|
||||
u64 InputRecording::getFrameCounter() const
|
||||
u32 InputRecording::getFrameCounter() const
|
||||
{
|
||||
return m_frame_counter;
|
||||
}
|
||||
|
||||
u32 InputRecording::getFrameCounterStateless() const
|
||||
{
|
||||
return m_frame_counter_stateless;
|
||||
}
|
||||
|
||||
bool InputRecording::isActive() const
|
||||
{
|
||||
return m_is_active;
|
||||
@@ -320,6 +330,12 @@ void InputRecording::setStartingFrame(u32 startingFrame)
|
||||
}
|
||||
InputRec::consoleLog(fmt::format("Internal Starting Frame: {}", startingFrame));
|
||||
m_starting_frame = startingFrame;
|
||||
InformGSThread();
|
||||
}
|
||||
|
||||
u32 InputRecording::getStartingFrame()
|
||||
{
|
||||
return m_starting_frame;
|
||||
}
|
||||
|
||||
void InputRecording::adjustFrameCounterOnReRecord(u32 newFrameCounter)
|
||||
@@ -351,6 +367,9 @@ void InputRecording::adjustFrameCounterOnReRecord(u32 newFrameCounter)
|
||||
getControls().setReplayMode();
|
||||
}
|
||||
m_frame_counter = newFrameCounter - m_starting_frame;
|
||||
m_frame_counter_stateless--;
|
||||
m_file.setTotalFrames(m_frame_counter);
|
||||
InformGSThread();
|
||||
}
|
||||
|
||||
InputRecordingControls& InputRecording::getControls()
|
||||
@@ -367,4 +386,20 @@ void InputRecording::initializeState()
|
||||
{
|
||||
m_frame_counter = 0;
|
||||
m_watching_for_rerecords = false;
|
||||
InformGSThread();
|
||||
}
|
||||
|
||||
void InputRecording::InformGSThread()
|
||||
{
|
||||
TinyString recording_active_message = TinyString::from_format(TRANSLATE_FS("InputRecording", "Input Recording Active: {}"), g_InputRecording.getData().getFilename());
|
||||
TinyString frame_data_message = TinyString::from_format(TRANSLATE_FS("InputRecording", "Frame: {}/{} ({})"), g_InputRecording.getFrameCounter(), g_InputRecording.getData().getTotalFrames(), g_InputRecording.getFrameCounterStateless());
|
||||
TinyString undo_count_message = TinyString::from_format(TRANSLATE_FS("InputRecording", "Undo Count: {}"), g_InputRecording.getData().getUndoCount());
|
||||
|
||||
MTGS::RunOnGSThread([recording_active_message, frame_data_message, undo_count_message](bool is_recording = g_InputRecording.getControls().isRecording())
|
||||
{
|
||||
g_InputRecordingData.is_recording = is_recording;
|
||||
g_InputRecordingData.recording_active_message = recording_active_message;
|
||||
g_InputRecordingData.frame_data_message = frame_data_message;
|
||||
g_InputRecordingData.undo_count_message = undo_count_message;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -22,14 +22,19 @@ public:
|
||||
bool play(const std::string& path);
|
||||
void stop();
|
||||
|
||||
static void InformGSThread();
|
||||
void handleControllerDataUpdate();
|
||||
void saveControllerData(const PadData& data, const int port, const int slot);
|
||||
std::optional<PadData> updateControllerData(const int port, const int slot);
|
||||
void incFrameCounter();
|
||||
u64 getFrameCounter() const;
|
||||
u32 getFrameCounter() const;
|
||||
u32 getFrameCounterStateless() const;
|
||||
bool isActive() const;
|
||||
void processRecordQueue();
|
||||
|
||||
void setStartingFrame(u32 startingFrame);
|
||||
u32 getStartingFrame();
|
||||
|
||||
void handleExceededFrameCounter();
|
||||
void handleReset();
|
||||
void handleLoadingSavestate();
|
||||
@@ -53,11 +58,11 @@ private:
|
||||
std::queue<std::function<void()>> m_recordingQueue;
|
||||
|
||||
u32 m_frame_counter = 0;
|
||||
u32 m_frame_counter_stateless = 0;
|
||||
// Either 0 for a power-on movie, or the g_FrameCount that is stored on the starting frame
|
||||
u32 m_starting_frame = 0;
|
||||
|
||||
void initializeState();
|
||||
void setStartingFrame(u32 startingFrame);
|
||||
void closeActiveFile();
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#include "InputRecordingFile.h"
|
||||
#include "InputRecording.h"
|
||||
|
||||
#include "BuildVersion.h"
|
||||
#include "Utilities/InputRecordingLogger.h"
|
||||
@@ -89,6 +90,7 @@ void InputRecordingFile::incrementUndoCount()
|
||||
}
|
||||
fseek(m_recordingFile, s_seekpointUndoCount, SEEK_SET);
|
||||
fwrite(&m_undoCount, 4, 1, m_recordingFile);
|
||||
InputRecording::InformGSThread();
|
||||
}
|
||||
|
||||
bool InputRecordingFile::openNew(const std::string& path, bool fromSavestate)
|
||||
@@ -104,6 +106,7 @@ bool InputRecordingFile::openNew(const std::string& path, bool fromSavestate)
|
||||
m_undoCount = 0;
|
||||
m_header.init();
|
||||
m_savestate = fromSavestate;
|
||||
InputRecording::InformGSThread();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -123,6 +126,7 @@ bool InputRecordingFile::openExisting(const std::string& path)
|
||||
}
|
||||
|
||||
m_filename = path;
|
||||
InputRecording::InformGSThread();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -147,13 +151,14 @@ std::optional<PadData> InputRecordingFile::readPadData(const uint frame, const u
|
||||
|
||||
void InputRecordingFile::setTotalFrames(u32 frame)
|
||||
{
|
||||
if (m_recordingFile == nullptr || m_totalFrames >= frame)
|
||||
if (m_recordingFile == nullptr)
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_totalFrames = frame;
|
||||
fseek(m_recordingFile, s_seekpointTotalFrames, SEEK_SET);
|
||||
fwrite(&m_totalFrames, 4, 1, m_recordingFile);
|
||||
InputRecording::InformGSThread();
|
||||
}
|
||||
|
||||
bool InputRecordingFile::writeHeader() const
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "Config.h"
|
||||
#include "Counters.h"
|
||||
#include "DebugTools/Breakpoints.h"
|
||||
#include "DebugTools/SymbolImporter.h"
|
||||
#include "Elfheader.h"
|
||||
#include "GS.h"
|
||||
#include "GS/GS.h"
|
||||
@@ -80,6 +81,9 @@ static void PostLoadPrep()
|
||||
CBreakPoints::SetSkipFirst(BREAKPOINT_IOP, 0);
|
||||
|
||||
UpdateVSyncRate(true);
|
||||
|
||||
if (VMManager::Internal::HasBootedELF())
|
||||
R5900SymbolImporter.OnElfLoadedInMemory();
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------
|
||||
|
||||
@@ -2789,6 +2789,8 @@ void VMManager::Internal::EntryPointCompilingOnCPUThread()
|
||||
// Toss all the recs, we're going to be executing new code.
|
||||
mmap_ResetBlockTracking();
|
||||
ClearCPUExecutionCaches();
|
||||
|
||||
R5900SymbolImporter.OnElfLoadedInMemory();
|
||||
}
|
||||
|
||||
void VMManager::Internal::VSyncOnCPUThread()
|
||||
|
||||
@@ -30,9 +30,6 @@
|
||||
#include "fmt/format.h"
|
||||
|
||||
#include <bit>
|
||||
#ifdef _M_X86
|
||||
#include <immintrin.h>
|
||||
#endif
|
||||
#include <map>
|
||||
#include <unordered_set>
|
||||
#include <unordered_map>
|
||||
@@ -112,6 +109,16 @@ vtlb_private::VTLBVirtual::VTLBVirtual(VTLBPhysical phys, u32 paddr, u32 vaddr)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(_M_X86)
|
||||
#include <immintrin.h>
|
||||
#elif defined(_M_ARM64)
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#include <arm64_neon.h>
|
||||
#else
|
||||
#include <arm_neon.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
__inline int CheckCache(u32 addr)
|
||||
{
|
||||
// Check if the cache is enabled
|
||||
@@ -123,7 +130,7 @@ __inline int CheckCache(u32 addr)
|
||||
size_t i = 0;
|
||||
const size_t size = cachedTlbs.count;
|
||||
|
||||
#ifdef _M_X86
|
||||
#if defined(_M_X86)
|
||||
const int stride = 4;
|
||||
|
||||
const __m128i addr_vec = _mm_set1_epi32(addr);
|
||||
@@ -173,6 +180,32 @@ __inline int CheckCache(u32 addr)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#elif defined(_M_ARM64)
|
||||
const int stride = 4;
|
||||
|
||||
const uint32x4_t addr_vec = vld1q_dup_u32(&addr);
|
||||
|
||||
for (; i + stride <= size; i += stride)
|
||||
{
|
||||
const uint32x4_t pfn1_vec = vld1q_u32(&cachedTlbs.PFN1s[i]);
|
||||
const uint32x4_t pfn0_vec = vld1q_u32(&cachedTlbs.PFN0s[i]);
|
||||
const uint32x4_t mask_vec = vld1q_u32(&cachedTlbs.PageMasks[i]);
|
||||
|
||||
const uint32x4_t cached1_vec = vld1q_u32(&cachedTlbs.CacheEnabled1[i]);
|
||||
const uint32x4_t cached0_vec = vld1q_u32(&cachedTlbs.CacheEnabled0[i]);
|
||||
|
||||
const uint32x4_t pfn1_end_vec = vaddq_u32(pfn1_vec, mask_vec);
|
||||
const uint32x4_t pfn0_end_vec = vaddq_u32(pfn0_vec, mask_vec);
|
||||
|
||||
const uint32x4_t cmp1 = vandq_u32(vcgeq_u32(addr_vec, pfn1_vec), vcleq_u32(addr_vec, pfn1_end_vec));
|
||||
const uint32x4_t cmp0 = vandq_u32(vcgeq_u32(addr_vec, pfn0_vec), vcleq_u32(addr_vec, pfn0_end_vec));
|
||||
|
||||
const uint32x4_t lanes_enabled = vorrq_u32(vandq_u32(cached1_vec, cmp1), vandq_u32(cached0_vec, cmp0));
|
||||
|
||||
const uint32x2_t tmp = vorr_u32(vget_low_u32(lanes_enabled), vget_high_u32(lanes_enabled));
|
||||
if (vget_lane_u32(vpmax_u32(tmp, tmp), 0))
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
for (; i < size; i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user