mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-01-31 01:15:24 +01:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b01359e06f | ||
|
|
905f9431a5 |
420
bin/utils/bulk_compression.py
Executable file
420
bin/utils/bulk_compression.py
Executable file
@@ -0,0 +1,420 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# PCSX2 - PS2 Emulator for PCs
|
||||
# Copyright (C) 2024 PCSX2 Dev Team
|
||||
#
|
||||
# PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
# of the GNU General Public License as published by the Free Software Found-
|
||||
# ation, either version 3 of the License, or (at your option) any later version.
|
||||
#
|
||||
# PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
# If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
from subprocess import Popen, PIPE
|
||||
from os.path import exists
|
||||
|
||||
gamecount = [0]
|
||||
|
||||
# =================================================================================================
|
||||
|
||||
def deletionChoice(source_extension): # Choose to delete source files
|
||||
|
||||
yesno = {
|
||||
"n" : 0,
|
||||
"no" : 0,
|
||||
"y" : 1,
|
||||
"yes" : 1,
|
||||
}
|
||||
|
||||
print("╟-------------------------------------------------------------------------------╢")
|
||||
print(f"║ Do you want to delete the original {source_extension.upper()} files as they are converted?")
|
||||
choice = input("║ Type Y or N then press ENTER: ").lower()
|
||||
|
||||
if (not choice in yesno):
|
||||
exitInvalidOption()
|
||||
|
||||
return (yesno[choice])
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def blockSizeChoice(is_cd, decompressing): # Choose block size
|
||||
|
||||
if (decompressing):
|
||||
return 0
|
||||
|
||||
sizes = {
|
||||
"1" : 16384,
|
||||
"2" : 131072,
|
||||
"3" : 262144,
|
||||
} if not is_cd else {
|
||||
"1": 17136,
|
||||
"2": 132192,
|
||||
"3": 264384,
|
||||
}
|
||||
|
||||
print("╟-------------------------------------------------------------------------------╢")
|
||||
print("║ Please pick the block size you would like to use:")
|
||||
print("║")
|
||||
print("║ 1 - 16 kB (bigger files, faster access/less CPU, choose this if unsure)")
|
||||
print("║ 2 - 128 kB (balanced)")
|
||||
print("║ 3 - 256 kB (smaller files, slower access/more CPU)")
|
||||
print("║")
|
||||
blocksize = input("║ Type the number corresponding to your selection then press ENTER: ")
|
||||
|
||||
if (not blocksize in sizes):
|
||||
exitInvalidOption()
|
||||
|
||||
return (sizes[blocksize])
|
||||
|
||||
# =================================================================================================
|
||||
|
||||
def checkSuccess(compressing, fname, extension, error_code): # Ensure file created properly
|
||||
|
||||
target_fname = f"{fname}.{extension}"
|
||||
if (error_code):
|
||||
|
||||
print("╠===============================================================================╣")
|
||||
|
||||
if (compressing):
|
||||
print(f"║ Compression to {extension.upper()} failed for the following:{(37 - len(extension)) * ' '}║")
|
||||
else:
|
||||
print(f"║ Extraction to {extension.upper()} failed for the following:{(38 - len(extension)) * ' '}║")
|
||||
|
||||
print(f"║ {target_fname}{(77 - len(target_fname)) * ' '}║")
|
||||
print("╚===============================================================================╝")
|
||||
|
||||
sys.exit(1)
|
||||
|
||||
print(f"║ {target_fname} created.{(69 - len(target_fname)) * ' '}║")
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def checkProgramMissing(program):
|
||||
|
||||
if (sys.platform.startswith('win32') and exists(f"./{program}.exe")):
|
||||
return # Windows
|
||||
|
||||
else: # Linux, macOS
|
||||
from shutil import which
|
||||
if (which(program) is not None):
|
||||
return
|
||||
|
||||
print("╠===============================================================================╗")
|
||||
print(f"║ {program} failed, {program} is missing.{(39 - (len(program) * 2)) * ' '}║")
|
||||
print("╚===============================================================================╝")
|
||||
sys.exit(1)
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def checkBinCueMismatch(bin_files, cue_files): # Ensure all bins and cues match
|
||||
|
||||
if (len(bin_files) != len(cue_files)): # Ensure numerical parity
|
||||
exitBinCueMismatch()
|
||||
|
||||
for fname in bin_files: # Ensure filename parity
|
||||
if (f"{fname[:-4]}.cue" not in cue_files):
|
||||
exitBinCueMismatch()
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def checkDuplicates(source_files, target_extensions, crash_protection_type=0):
|
||||
|
||||
dupe_options = {
|
||||
"s" : 0,
|
||||
"skip" : 0,
|
||||
"o" : 1,
|
||||
"overwrite" : 1,
|
||||
}
|
||||
|
||||
dupe_files = []
|
||||
dupe_names = []
|
||||
target_files = []
|
||||
|
||||
for extension in target_extensions:
|
||||
target_files[len(target_files):] = returnFilteredPwdContents(extension)
|
||||
|
||||
for fname in source_files:
|
||||
for extension in target_extensions:
|
||||
target_fname = f"{fname[:-4]}.{extension}"
|
||||
if (target_fname in target_files):
|
||||
dupe_files.append(target_fname)
|
||||
|
||||
match crash_protection_type:
|
||||
case 0:
|
||||
pass
|
||||
case 1: # Skip any dupe files no matter what
|
||||
[dupe_names.append(fname[:-4]) for fname in dupe_files if fname[:-4] not in dupe_names]
|
||||
return dupe_names
|
||||
case 2: # Only skip if intermediate .iso present
|
||||
[dupe_names.append(fname[:-4]) for fname in dupe_files if fname[:-4] not in dupe_names and fname[-4:] == ".iso"]
|
||||
case _:
|
||||
pass
|
||||
|
||||
if (not dupe_files):
|
||||
return dupe_names
|
||||
|
||||
print("╟-------------------------------------------------------------------------------╢")
|
||||
print("║ The following files were found which would be overwritten:")
|
||||
|
||||
for fname in dupe_files:
|
||||
print(f"║ - {fname}")
|
||||
|
||||
print("║")
|
||||
print("║ You may choose to OVERWRITE or SKIP all of these.")
|
||||
if (crash_protection_type == 2):
|
||||
print("║ NOTE: chdman cannot overwrite .cso files. These will be skipped regardless.")
|
||||
choice = input("║ Press 'O' to overwrite or 'S' to skip and press ENTER: ").lower()
|
||||
|
||||
if (choice in dupe_options):
|
||||
if (not dupe_options[choice]): # Skip
|
||||
[dupe_names.append(fname[:-4]) for fname in dupe_files if fname[:-4] not in dupe_names]
|
||||
return dupe_names
|
||||
else:
|
||||
exitInvalidOption()
|
||||
|
||||
# =================================================================================================
|
||||
|
||||
def printInitialStatus(decompressing, target_fname):
|
||||
|
||||
if (gamecount[0] != 0):
|
||||
print("╟-------------------------------------------------------------------------------╢")
|
||||
gamecount[0] += 1
|
||||
|
||||
if (decompressing):
|
||||
print(f"║ Extracting to {target_fname}... ({gamecount[0]}){(58 - len(target_fname) - len(str(gamecount[0]))) * ' '}║")
|
||||
else:
|
||||
print(f"║ Compressing to {target_fname}... ({gamecount[0]}){(57 - len(target_fname) - len(str(gamecount[0]))) * ' '}║")
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def printSkip(target_fname):
|
||||
|
||||
if (gamecount[0] != 0):
|
||||
print("╟-------------------------------------------------------------------------------╢")
|
||||
gamecount[0] += 1
|
||||
print(f"║ Skipping creation of {target_fname}{(57 - len(target_fname)) * ' '}║")
|
||||
|
||||
# =================================================================================================
|
||||
|
||||
def createCommandList(mode, source_fname, target_fname, blocksize=0):
|
||||
|
||||
match mode:
|
||||
case 1:
|
||||
return [["maxcso", f"--block={blocksize}", source_fname]]
|
||||
case 2:
|
||||
return [["chdman", "createraw", "-us", "2048", "-hs", f"{blocksize}", "-f", "-i", source_fname, "-o", target_fname]]
|
||||
case 3:
|
||||
return [["chdman", "createcd", "-hs", f"{blocksize}", "-i", source_fname, "-o", f"{source_fname[:-4]}.chd"]]
|
||||
case 4:
|
||||
return [["maxcso", "--decompress", source_fname],
|
||||
["chdman", "createraw", "-us", "2048", "-hs", f"{blocksize}", "-f", "-i", f"{source_fname[:-4]}.iso", "-o", f"{source_fname[:-4]}.chd"]]
|
||||
case 5:
|
||||
return [["chdman", "extractraw", "-i", source_fname, "-o", f"{source_fname[:-4]}.iso"],
|
||||
["maxcso", f"--block={blocksize}", f"{source_fname[:-4]}.iso"]]
|
||||
case 6:
|
||||
return [["chdman", "extractraw", "-i", source_fname, "-o", target_fname]]
|
||||
case 7:
|
||||
return [["chdman", "extractcd", "-i", source_fname, "-o", target_fname]]
|
||||
case 8:
|
||||
return [["maxcso", "--decompress", source_fname]]
|
||||
case _:
|
||||
print("You have somehow chosen an invalid mode, and this was not correctly caught by the program.\nPlease report this as a bug.")
|
||||
sys.exit(1)
|
||||
|
||||
# =================================================================================================
|
||||
|
||||
def returnFilteredPwdContents(file_extension): # Get files in pwd with extension
|
||||
|
||||
extension_pattern = r".*\." + file_extension.lower()
|
||||
extension_reg = re.compile(extension_pattern)
|
||||
return [fname for fname in os.listdir('.') if extension_reg.match(fname)]
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def deleteFile(fname): # Delete a file in pwd
|
||||
|
||||
print(f"║ Deleting {fname}...{(66 - len(fname)) * ' '}║")
|
||||
os.remove(f"./{fname}")
|
||||
|
||||
# =================================================================================================
|
||||
|
||||
def exitInvalidOption():
|
||||
|
||||
print("╠===============================================================================╗")
|
||||
print("║ Invalid option. ║")
|
||||
print("╚===============================================================================╝")
|
||||
sys.exit(1)
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
def exitBinCueMismatch():
|
||||
|
||||
print("╠===============================================================================╗")
|
||||
print("║ All BIN files must have a matching CUE. ║")
|
||||
print("╚===============================================================================╝")
|
||||
sys.exit(1)
|
||||
|
||||
# =================================================================================================
|
||||
# /////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
# =================================================================================================
|
||||
|
||||
options = { # Options listings
|
||||
1 : "Convert ISO to CSO",
|
||||
2 : "Convert ISO to CHD",
|
||||
3 : "Convert CUE/BIN to CHD",
|
||||
4 : "Convert CSO to CHD",
|
||||
5 : "Convert DVD CHD to CSO",
|
||||
6 : "Extract DVD CHD to ISO",
|
||||
7 : "Extract CD CHD to CUE/BIN",
|
||||
8 : "Extract CSO to ISO",
|
||||
9 : "Exit script",
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
sources = { # Source file extensions
|
||||
1 : "iso",
|
||||
2 : "iso",
|
||||
3 : "cue/bin",
|
||||
4 : "cso",
|
||||
5 : "chd",
|
||||
6 : "chd",
|
||||
7 : "chd",
|
||||
8 : "cso",
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
targets = { # Target file extensions
|
||||
1 : ["cso"],
|
||||
2 : ["chd"],
|
||||
3 : ["chd"],
|
||||
4 : ["iso", "chd"],
|
||||
5 : ["iso", "cso"],
|
||||
6 : ["iso"],
|
||||
7 : ["cue", "bin"],
|
||||
8 : ["iso"],
|
||||
}
|
||||
|
||||
# # -------------------------------------------------------------------------------------------------
|
||||
|
||||
reqs = { # Selection dependencies
|
||||
1 : ["maxcso"],
|
||||
2 : ["chdman"],
|
||||
3 : ["chdman"],
|
||||
4 : ["maxcso", "chdman"],
|
||||
5 : ["maxcso", "chdman"],
|
||||
6 : ["chdman"],
|
||||
7 : ["chdman"],
|
||||
8 : ["maxcso"],
|
||||
}
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
print("╔===============================================================================╗")
|
||||
print("║ CSO/CHD/ISO/CUEBIN Conversion by Refraction, RedDevilus and TheTechnician27 ║")
|
||||
print("║ (Version Jul 16 2024) ║")
|
||||
print("╠===============================================================================╣")
|
||||
print("║ ║")
|
||||
print("║ PLEASE NOTE: This will affect all files in this folder! ║")
|
||||
print("║ Be sure to run this from the same directory as the files you wish to convert. ║")
|
||||
print("║ ║")
|
||||
|
||||
for number, message in options.items():
|
||||
print("║ ", number, " - ", message, f"{(70 - len(message)) * ' '}║")
|
||||
|
||||
print("║ ║")
|
||||
print("╠===============================================================================╝")
|
||||
#print("║")
|
||||
mode = input("║ Type the number corresponding to your selection then press ENTER: ")
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
try:
|
||||
mode = int(mode)
|
||||
|
||||
except ValueError:
|
||||
exitInvalidOption()
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
if (mode < 9 and mode > 0):
|
||||
|
||||
for program in reqs[mode]: # Check for dependencies
|
||||
checkProgramMissing(program)
|
||||
|
||||
delete = deletionChoice(sources[mode]) # Choose to delete source files
|
||||
blocksize = blockSizeChoice(mode == 3, mode > 5) # Choose block size if compressing
|
||||
|
||||
match mode:
|
||||
case 3:
|
||||
bin_files = returnFilteredPwdContents("bin") # Get all BIN files in pwd
|
||||
source_files = returnFilteredPwdContents("cue") # Get all CUE files in pwd
|
||||
checkBinCueMismatch(bin_files, source_files)
|
||||
dupe_list = checkDuplicates(source_files, targets[mode], 1)
|
||||
case 5:
|
||||
source_files = returnFilteredPwdContents(sources[mode]) # Get source files in pwd
|
||||
dupe_list = checkDuplicates(source_files, targets[mode], 2)
|
||||
case 6:
|
||||
source_files = returnFilteredPwdContents(sources[mode]) # Get source files in pwd
|
||||
dupe_list = checkDuplicates(source_files, targets[mode], 1)
|
||||
case _:
|
||||
source_files = returnFilteredPwdContents(sources[mode]) # Get source files in pwd
|
||||
dupe_list = checkDuplicates(source_files, targets[mode])
|
||||
|
||||
|
||||
print("╠===============================================================================╗")
|
||||
|
||||
# ---------------------------------------------------------------------------------------------
|
||||
|
||||
for fname in source_files:
|
||||
|
||||
target_fname = f"{fname[:-4]}.{targets[mode][0]}"
|
||||
commands = createCommandList(mode, fname, target_fname, blocksize)
|
||||
if (fname[:-4] in dupe_list):
|
||||
printSkip(target_fname)
|
||||
continue
|
||||
|
||||
printInitialStatus(mode > 5, f"{fname[:-4]}.{targets[mode][-1]}")
|
||||
|
||||
for step, command in enumerate (commands):
|
||||
|
||||
process = Popen(commands[step], stdout=PIPE, stderr=PIPE) # Execute process
|
||||
stdout, stderr = process.communicate() # Suppress output
|
||||
checkSuccess(mode < 6, fname[:-4], # Ensure target creation
|
||||
targets[mode][step], process.returncode)
|
||||
|
||||
if (step == 1): # Delete intermediate file
|
||||
deleteFile(f"{fname[:-4]}.iso")
|
||||
|
||||
if (delete): # Delete source requested
|
||||
deleteFile(fname)
|
||||
if (mode == 3):
|
||||
deleteFile(f"{fname[:-4]}.bin")
|
||||
|
||||
# ===== EXIT SCRIPT ===============================================================================
|
||||
|
||||
elif (mode == 9):
|
||||
print("╠===============================================================================╗")
|
||||
print("║ Goodbye! :) ║")
|
||||
print("╚===============================================================================╝")
|
||||
sys.exit(0)
|
||||
|
||||
# ===== EXIT SCRIPT WITH ERROR ====================================================================
|
||||
|
||||
else:
|
||||
exitInvalidOption()
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
print("╠===============================================================================╣")
|
||||
print("║ Process complete! ║")
|
||||
print("╚===============================================================================╝")
|
||||
sys.exit(0)
|
||||
@@ -3229,29 +3229,34 @@ Not Configured/Buttons configured</extracomment>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.ui" line="119"/>
|
||||
<source>Delete Profile</source>
|
||||
<source>Rename Profile</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.ui" line="129"/>
|
||||
<source>Mapping Settings</source>
|
||||
<source>Delete Profile</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.ui" line="139"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="209"/>
|
||||
<source>Mapping Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.ui" line="149"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="252"/>
|
||||
<source>Restore Defaults</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="91"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="105"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="118"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="92"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="106"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="119"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="92"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="93"/>
|
||||
<source>Custom input profiles are used to override the Shared input profile for specific games.
|
||||
To apply a custom input profile to a game, go to its Game Properties, then change the 'Input Profile' on the Summary tab.
|
||||
|
||||
@@ -3259,40 +3264,43 @@ Enter the name for the new input profile:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="101"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="146"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="192"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="529"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="102"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="147"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="193"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="199"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="235"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="573"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="101"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="102"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="193"/>
|
||||
<source>A profile with the name '%1' already exists.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="106"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="107"/>
|
||||
<source>Do you want to copy all bindings from the currently-selected profile to the new profile? Selecting No will create a completely empty profile.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="119"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="120"/>
|
||||
<source>Do you want to copy the current hotkey bindings from global settings to the new input profile?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="146"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="147"/>
|
||||
<source>Failed to save the new profile to '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="156"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="157"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="157"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="158"/>
|
||||
<source>Are you sure you want to load the input profile named '%1'?
|
||||
|
||||
All current global bindings will be removed, and the profile bindings loaded.
|
||||
@@ -3301,24 +3309,39 @@ You cannot undo this action.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="181"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="182"/>
|
||||
<source>Rename Input Profile</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="183"/>
|
||||
<source>Enter the new name for the input profile:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="199"/>
|
||||
<source>Failed to rename '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="224"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="182"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="225"/>
|
||||
<source>Are you sure you want to delete the input profile named '%1'?
|
||||
|
||||
You cannot undo this action.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="192"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="235"/>
|
||||
<source>Failed to delete '%1'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="210"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="253"/>
|
||||
<source>Are you sure you want to restore the default controller configuration?
|
||||
|
||||
All shared bindings and configuration will be lost, but your input profiles will remain.
|
||||
@@ -3327,46 +3350,46 @@ You cannot undo this action.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="385"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="428"/>
|
||||
<source>Global Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="418"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="473"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="461"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="517"/>
|
||||
<source>Controller Port %1%2
|
||||
%3</source>
|
||||
<extracomment>Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="420"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="475"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="463"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="519"/>
|
||||
<source>Controller Port %1
|
||||
%2</source>
|
||||
<extracomment>Controller Port is an official term from Sony. Find the official translation for your language inside the console's manual.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="436"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="493"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="479"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="537"/>
|
||||
<source>USB Port %1
|
||||
%2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="446"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="489"/>
|
||||
<source>Hotkeys</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="507"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="551"/>
|
||||
<source>Shared</source>
|
||||
<extracomment>"Shared" refers here to the shared input profile.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="529"/>
|
||||
<location filename="../Settings/ControllerSettingsWindow.cpp" line="573"/>
|
||||
<source>The input profile named '%1' cannot be found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -18423,7 +18446,7 @@ Ejecting {3} and replacing it with {2}.</source>
|
||||
<context>
|
||||
<name>SaveState</name>
|
||||
<message>
|
||||
<location filename="../../pcsx2/SaveState.cpp" line="1099"/>
|
||||
<location filename="../../pcsx2/SaveState.cpp" line="1100"/>
|
||||
<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>
|
||||
@@ -21613,42 +21636,42 @@ Scanning recursively takes more time, but will identify files in subdirectories.
|
||||
<context>
|
||||
<name>VMManager</name>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1852"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1856"/>
|
||||
<source>Failed to back up old save state {}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1837"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1841"/>
|
||||
<source>Failed to save save state: {}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1022"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1026"/>
|
||||
<source>PS2 BIOS ({})</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1083"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1087"/>
|
||||
<source>Unknown Game</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1246"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1250"/>
|
||||
<source>CDVD precaching was cancelled.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1252"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1256"/>
|
||||
<source>CDVD precaching failed: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1345"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1349"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1346"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1350"/>
|
||||
<source>PCSX2 requires a PS2 BIOS in order to run.
|
||||
|
||||
For legal reasons, you *must* obtain a BIOS from an actual PS2 unit that you own (borrowing doesn't count).
|
||||
@@ -21659,270 +21682,270 @@ Please consult the FAQs and Guides for further instructions.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1437"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1441"/>
|
||||
<source>Resuming state</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1442"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1446"/>
|
||||
<source>Boot and Debug</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1810"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1814"/>
|
||||
<source>Failed to load save state</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1885"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1889"/>
|
||||
<source>State saved to slot {}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1892"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1896"/>
|
||||
<source>Failed to save save state to slot {}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1960"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1997"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1964"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2001"/>
|
||||
<source>Loading state</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1971"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1975"/>
|
||||
<source>Failed to load state (Memory card is busy)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1990"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="1994"/>
|
||||
<source>There is no save state in slot {}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2008"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2012"/>
|
||||
<source>Failed to load state from slot {} (Memory card is busy)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2014"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2018"/>
|
||||
<source>Loading state from slot {}...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2023"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2027"/>
|
||||
<source>Failed to save state (Memory card is busy)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2040"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2044"/>
|
||||
<source>Failed to save state to slot {} (Memory card is busy)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2047"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2051"/>
|
||||
<source>Saving state to slot {}...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2213"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2217"/>
|
||||
<source>Frame advancing</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2241"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2245"/>
|
||||
<source>Disc removed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2247"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2251"/>
|
||||
<source>Disc changed to '{}'.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2256"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2260"/>
|
||||
<source>Failed to open new disc image '{}'. Reverting to old image.
|
||||
Error was: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2265"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="2269"/>
|
||||
<source>Failed to switch back to old disc image. Removing disc.
|
||||
Error was: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3048"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3052"/>
|
||||
<source>Cheats have been disabled due to achievements hardcore mode.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3101"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3105"/>
|
||||
<source>Fast CDVD is enabled, this may break games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3105"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3109"/>
|
||||
<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="3115"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3119"/>
|
||||
<source>Upscale multiplier is below native, this will break rendering.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3155"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3159"/>
|
||||
<source>Mipmapping is disabled. This may break rendering in some games.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3164"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3168"/>
|
||||
<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="3170"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3174"/>
|
||||
<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="3633"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3637"/>
|
||||
<source>No Game Running</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3120"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3124"/>
|
||||
<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="3125"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3129"/>
|
||||
<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="3130"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3134"/>
|
||||
<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="3176"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3180"/>
|
||||
<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="3182"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3186"/>
|
||||
<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="3187"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3191"/>
|
||||
<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="3192"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3196"/>
|
||||
<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="3199"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3203"/>
|
||||
<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="3204"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3208"/>
|
||||
<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="3209"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3213"/>
|
||||
<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="3214"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3218"/>
|
||||
<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="3218"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3222"/>
|
||||
<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="3220"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3224"/>
|
||||
<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="3239"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3243"/>
|
||||
<source>EE Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3244"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3248"/>
|
||||
<source>VU0 Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3249"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3253"/>
|
||||
<source>VU1 Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3254"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3258"/>
|
||||
<source>IOP Recompiler is not enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3259"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3263"/>
|
||||
<source>EE Cache is enabled, this will significantly reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3264"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3268"/>
|
||||
<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="3269"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3273"/>
|
||||
<source>INTC Spin Detection is not enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3272"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3276"/>
|
||||
<source>Fastmem is not enabled, this will reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3276"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3280"/>
|
||||
<source>Instant VU1 is disabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3281"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3285"/>
|
||||
<source>mVU Flag Hack is not enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3135"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3139"/>
|
||||
<source>GPU Palette Conversion is enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3140"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3144"/>
|
||||
<source>Texture Preloading is not Full, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3145"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3149"/>
|
||||
<source>Estimate texture region is enabled, this may reduce performance.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3150"/>
|
||||
<location filename="../../pcsx2/VMManager.cpp" line="3154"/>
|
||||
<source>Texture dumping is enabled, this will continually dump textures to disk.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user