mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-05 10:13:15 +00:00
Cheats/Patches (#493)
* Cheats/Patches Adds the possibility of applying cheats/patches according to the specific game serial+version The logic for adding modifications has not yet been implemented! Interface based on issues/372 https://github.com/shadps4-emu/shadPS4/issues/372 [X]Front-end []Back-end Create a synchronized fork of the cheats/patches repository * Clang Format * separate files The code has been separated into separate files as suggested by georgemoralis. Added the Patch tab, which has not been implemented yet. Added the 'applyCheat' area to apply the modification, not implemented yet... And added LOG_INFO. * reuse * initial implementation of cheat functionality * Update cheats_patches.cpp sets all added buttons to the size of the largest button. and fixes some aesthetic issues. * move eboot_address to module.h fixes the non-qt builds and makes more sense to be there anyway * Patchs menu and fixes adds the possibility to download Patches, it does not modify the memory yet. and some other fixes * MemoryPatcher namespace, activate cheats on start * format * initial patch implementation * format * format again... * convertValueToHex * Fixes Choosing which cheat file to use. And some other fixes * fix bytes16, bytes32, bytes64 type patches If a patch is any of these types we convert it from little endian to big endian * format * format again :( * Implement pattern scanning for mask type patches * add check to stop patches applying to wrong game previously if you added a patch to a game, but closed the window and opened a different game it would still try to apply the patch, this is now fixed * format * Fix 'Hint' 0x400000 | and Author * Management |save checkbox | shadps4 repository MENU - Cheats/Patches Management (implementing Patches) save patches checkbox add shadps4 repository * Load saved patches, miscellaneous fixes * Fix an issue with mask patches not being saved * format + remove debug log * multiple patches | TR translation for cheats/patches * clang * ENABLE_QT_GUI * OK * move memory_patcher to qt_gui * clang * add cheats hu_HU * fix log * Remove the item from the patchesListView if no patches were added (the game has patches, but not for the current version) --------- Co-authored-by: CrazyBloo <CrazyBloo@users.noreply.github.com>
This commit is contained in:
parent
a6a9fff666
commit
614a23b369
35 changed files with 12003 additions and 798 deletions
|
@ -81,67 +81,72 @@
|
|||
<context>
|
||||
<name>GuiContextMenus</name>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="39"/>
|
||||
<location filename="../gui_context_menus.h" line="46"/>
|
||||
<source>Create Shortcut</source>
|
||||
<translation>Create Shortcut</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="40"/>
|
||||
<location filename="../gui_context_menus.h" line="47"/>
|
||||
<source>Open Game Folder</source>
|
||||
<translation>Open Game Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="41"/>
|
||||
<location filename="../gui_context_menus.h" line="48"/>
|
||||
<source>Cheats / Patches</source>
|
||||
<translation>Cheats / Patches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="49"/>
|
||||
<source>SFO Viewer</source>
|
||||
<translation>SFO Viewer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="42"/>
|
||||
<location filename="../gui_context_menus.h" line="50"/>
|
||||
<source>Trophy Viewer</source>
|
||||
<translation>Trophy Viewer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="50"/>
|
||||
<location filename="../gui_context_menus.h" line="59"/>
|
||||
<source>Copy info</source>
|
||||
<translation>Copy info</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="51"/>
|
||||
<location filename="../gui_context_menus.h" line="60"/>
|
||||
<source>Copy Name</source>
|
||||
<translation>Copy Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="52"/>
|
||||
<location filename="../gui_context_menus.h" line="61"/>
|
||||
<source>Copy Serial</source>
|
||||
<translation>Copy Serial</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="53"/>
|
||||
<location filename="../gui_context_menus.h" line="62"/>
|
||||
<source>Copy All</source>
|
||||
<translation>Copy All</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="173"/>
|
||||
<location filename="../gui_context_menus.h" line="195"/>
|
||||
<source>Shortcut creation</source>
|
||||
<translation>Shortcut creation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="174"/>
|
||||
<location filename="../gui_context_menus.h" line="196"/>
|
||||
<source>Shortcut created successfully!\n %1</source>
|
||||
<translation>Shortcut created successfully!\n %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="177"/>
|
||||
<location filename="../gui_context_menus.h" line="199"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="178"/>
|
||||
<location filename="../gui_context_menus.h" line="200"/>
|
||||
<source>Error creating shortcut!\n %1</source>
|
||||
<translation>Error creating shortcut!\n %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_context_menus.h" line="253"/>
|
||||
<location filename="../gui_context_menus.h" line="275"/>
|
||||
<source>Install PKG</source>
|
||||
<translation>Install PKG</translation>
|
||||
</message>
|
||||
|
@ -248,6 +253,11 @@
|
|||
<source>Game Install Directory</source>
|
||||
<translation>Game Install Directory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window_ui.h" line="343"/>
|
||||
<source>Download Cheats/Patches</source>
|
||||
<translation>Download Cheats / Patches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window_ui.h" line="345"/>
|
||||
<source>Dump Game List</source>
|
||||
|
@ -488,4 +498,395 @@
|
|||
<translation>Enable RenderDoc Debugging</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="168"/>
|
||||
<source> * Unsupported Vulkan Version</source>
|
||||
<translation> * Unsupported Vulkan Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="326"/>
|
||||
<source>Download Cheats For All Installed Games</source>
|
||||
<translation>Download Cheats For All Installed Games</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="328"/>
|
||||
<source>Download Patches For All Games</source>
|
||||
<translation>Download Patches For All Games</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="363"/>
|
||||
<source>Download Complete</source>
|
||||
<translation>Download Complete</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="364"/>
|
||||
<source>You have downloaded cheats for all the games you have installed.</source>
|
||||
<translation>You have downloaded cheats for all the games you have installed.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="391"/>
|
||||
<source>Patches Downloaded Successfully!</source>
|
||||
<translation>Patches Downloaded Successfully!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="392"/>
|
||||
<source>All Patches available for all games have been downloaded.</source>
|
||||
<translation>All Patches available for all games have been downloaded.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="549"/>
|
||||
<source>Games: </source>
|
||||
<translation>Games: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="575"/>
|
||||
<source>PKG File (*.PKG)</source>
|
||||
<translation>PKG File (*.PKG)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="594"/>
|
||||
<source>ELF files (*.bin *.elf *.oelf)</source>
|
||||
<translation>ELF files (*.bin *.elf *.oelf)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="600"/>
|
||||
<source>Game Boot</source>
|
||||
<translation>Game Boot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="600"/>
|
||||
<source>Only one file can be selected!</source>
|
||||
<translation>Only one file can be selected!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="623"/>
|
||||
<source>PKG Extraction</source>
|
||||
<translation>PKG Extraction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="633"/>
|
||||
<source>Patch detected!\nPKG and Game versions match!: %1\nWould you like </source>
|
||||
<translation>Patch detected!\nPKG and Game versions match!: %1\nWould you like </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="634"/>
|
||||
<source>to overwrite?</source>
|
||||
<translation>to overwrite?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="639"/>
|
||||
<source>Patch detected!\nPKG Version %1 is older </source>
|
||||
<translation>Patch detected!\nPKG Version %1 is older </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="640"/>
|
||||
<source>than installed version!: %2\nWould you like </source>
|
||||
<translation>than installed version!: %2\nWould you like </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="641"/>
|
||||
<source>to overwrite?</source>
|
||||
<translation>to overwrite?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="646"/>
|
||||
<source>Patch detected!\nGame is installed: %1\nWould you like </source>
|
||||
<translation>Patch detected!\nGame is installed: %1\nWould you like </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="647"/>
|
||||
<source>to install Patch: %2?</source>
|
||||
<translation>to install Patch: %2?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="659"/>
|
||||
<source>Game already installed\n%1\nWould you like to overwrite?</source>
|
||||
<translation>Game already installed\n%1\nWould you like to overwrite?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="674"/>
|
||||
<source>PKG is a patch, please install the game first!</source>
|
||||
<translation>PKG is a patch, please install the game first!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="681"/>
|
||||
<source>PKG ERROR</source>
|
||||
<translation>PKG ERROR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="693"/>
|
||||
<source>Extracting PKG %1/%2</source>
|
||||
<translation>Extracting PKG %1/%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="703"/>
|
||||
<source>Extraction Finished</source>
|
||||
<translation>Extraction Finished</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="704"/>
|
||||
<source>Game successfully installed at %1</source>
|
||||
<translation>Game successfully installed at %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main_window.cpp" line="725"/>
|
||||
<source>File doesn't appear to be a valid PKG file</source>
|
||||
<translation>File doesn't appear to be a valid PKG file</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CheatsPatches</name>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="44"/>
|
||||
<source>Cheats / Patches</source>
|
||||
<translation>Cheats / Patches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="50"/>
|
||||
<source>defaultTextEdit_MSG</source>
|
||||
<translation>Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\nhttps://github.com/shadps4-emu/ps4_cheats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="69"/>
|
||||
<source>No Image Available</source>
|
||||
<translation>No Image Available</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="79"/>
|
||||
<source>Serial: </source>
|
||||
<translation>Serial: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="83"/>
|
||||
<source>Version: </source>
|
||||
<translation>Version: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="87"/>
|
||||
<source>Size: </source>
|
||||
<translation>Size: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="126"/>
|
||||
<source>Select Cheat File:</source>
|
||||
<translation>Select Cheat File:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="133"/>
|
||||
<source>Repository:</source>
|
||||
<translation>Repository:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="149"/>
|
||||
<source>Download Cheats</source>
|
||||
<translation>Download Cheats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="155"/>
|
||||
<source>Delete File</source>
|
||||
<translation>Delete File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="169"/>
|
||||
<source>No files selected.</source>
|
||||
<translation>No files selected.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="170"/>
|
||||
<source>You can delete the cheats you don't want after downloading them.</source>
|
||||
<translation>You can delete the cheats you don't want after downloading them.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="178"/>
|
||||
<source>Do you want to delete the selected file?\n%1</source>
|
||||
<translation>Do you want to delete the selected file?\n%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="213"/>
|
||||
<source>Select Patch File:</source>
|
||||
<translation>Select Patch File:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="241"/>
|
||||
<source>Download Patches</source>
|
||||
<translation>Download Patches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="248"/>
|
||||
<source>Save</source>
|
||||
<translation>Save</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="256"/>
|
||||
<source>Cheats</source>
|
||||
<translation>Cheats</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="257"/>
|
||||
<source>Patches</source>
|
||||
<translation>Patches</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="278"/>
|
||||
<source>Error</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="278"/>
|
||||
<source>No patch selected.</source>
|
||||
<translation>No patch selected.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="292"/>
|
||||
<source>Unable to open files.json for reading.</source>
|
||||
<translation>Unable to open files.json for reading.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="316"/>
|
||||
<source>No patch file found for the current serial.</source>
|
||||
<translation>No patch file found for the current serial.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="323"/>
|
||||
<source>Unable to open the file for reading.</source>
|
||||
<translation>Unable to open the file for reading.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="422"/>
|
||||
<source>Unable to open the file for writing.</source>
|
||||
<translation>Unable to open the file for writing.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="432"/>
|
||||
<source>Failed to parse XML: </source>
|
||||
<translation>Failed to parse XML: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="434"/>
|
||||
<source>Success</source>
|
||||
<translation>Success</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="434"/>
|
||||
<source>Options saved successfully.</source>
|
||||
<translation>Options saved successfully.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="470"/>
|
||||
<source>Invalid Source</source>
|
||||
<translation>Invalid Source</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="471"/>
|
||||
<source>The selected source is invalid.</source>
|
||||
<translation>The selected source is invalid.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="519"/>
|
||||
<source>File Exists</source>
|
||||
<translation>File Exists</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="520"/>
|
||||
<source>File already exists. Do you want to replace it?</source>
|
||||
<translation>File already exists. Do you want to replace it?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="539"/>
|
||||
<source>Failed to save file:</source>
|
||||
<translation>Failed to save file:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="545"/>
|
||||
<source>Failed to download file:</source>
|
||||
<translation>Failed to download file:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="556"/>
|
||||
<source>Cheats Not Found</source>
|
||||
<translation>Cheats Not Found</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="556"/>
|
||||
<source>CheatsNotFound_MSG</source>
|
||||
<translation>No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="593"/>
|
||||
<source>Cheats Downloaded Successfully</source>
|
||||
<translation>Cheats Downloaded Successfully</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="594"/>
|
||||
<source>CheatsDownloadedSuccessfully_MSG</source>
|
||||
<translation>You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="747"/>
|
||||
<source>Failed to save:</source>
|
||||
<translation>Failed to save:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="754"/>
|
||||
<source>Failed to download:</source>
|
||||
<translation>Failed to download:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="762"/>
|
||||
<source>Download Complete</source>
|
||||
<translation>Download Complete</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="763"/>
|
||||
<source>DownloadComplete_MSG</source>
|
||||
<translation>Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="773"/>
|
||||
<source>Failed to parse JSON data from HTML.</source>
|
||||
<translation>Failed to parse JSON data from HTML.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="778"/>
|
||||
<source>Failed to retrieve HTML page.</source>
|
||||
<translation>Failed to retrieve HTML page.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="801"/>
|
||||
<source>Failed to open file:</source>
|
||||
<translation>Failed to open file:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="819"/>
|
||||
<source>XML ERROR:</source>
|
||||
<translation>XML ERROR:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="826"/>
|
||||
<source>Failed to open files.json for writing</source>
|
||||
<translation>Failed to open files.json for writing</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="925"/>
|
||||
<source>Author: </source>
|
||||
<translation>Author: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="997"/>
|
||||
<source>Directory does not exist:</source>
|
||||
<translation>Directory does not exist:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="1006"/>
|
||||
<source>Failed to open files.json for reading.</source>
|
||||
<translation>Failed to open files.json for reading.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../cheats_patches.cpp" line="1006"/>
|
||||
<source>Name:</source>
|
||||
<translation>Name:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
Loading…
Add table
Add a link
Reference in a new issue