From 6faa7a060ce34f1db8a6ad49099d772b5b104d4c Mon Sep 17 00:00:00 2001 From: Leucos8 Date: Mon, 23 Jun 2014 22:33:56 +0200 Subject: [PATCH 01/13] Updated the it_IT translation files --- locales/it_IT/pcsx2_Iconized.po | 52 +++--- locales/it_IT/pcsx2_Main.po | 283 +++++++++++++++++--------------- 2 files changed, 181 insertions(+), 154 deletions(-) diff --git a/locales/it_IT/pcsx2_Iconized.po b/locales/it_IT/pcsx2_Iconized.po index 8c7b46db80..f803a78f34 100644 --- a/locales/it_IT/pcsx2_Iconized.po +++ b/locales/it_IT/pcsx2_Iconized.po @@ -1,11 +1,11 @@ -# Copyright (C) 2013 PCSX2 Team +# Copyright (C) 2014 PCSX2 Team # This file is distributed under the same license as the PCSX2 package. msgid "" msgstr "" -"Project-Id-Version: PCSX2 1.2.0\n" +"Project-Id-Version: PCSX2 1.3.0\n" "Report-Msgid-Bugs-To: https://github.com/PCSX2/pcsx2/issues\n" -"POT-Creation-Date: 2014-04-06 11:47+0200\n" -"PO-Revision-Date: 2013-12-31 16:22+0100\n" +"POT-Creation-Date: 2014-06-23 21:24+0100\n" +"PO-Revision-Date: 2014-06-27 09:57+0100\n" "Last-Translator: Leucos\n" "Language-Team: Leucos \n" "Language: it_IT\n" @@ -14,8 +14,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: pxE;pxEt\n" "X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-Basepath: ..\\..\\..\\PCSX2 Checkout\n" -"X-Generator: Poedit 1.5.5\n" +"X-Poedit-Basepath: ..\\..\n" +"X-Generator: Poedit 1.6.5\n" "X-Poedit-SearchPath-0: pcsx2\n" "X-Poedit-SearchPath-1: common\n" @@ -444,7 +444,7 @@ msgstr "" "automaticamente \n" "quando si preme ESC o si mette in pausa l'emulazione." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:67 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:69 msgid "" "Known to affect following games:\n" " * Digital Devil Saga (Fixes FMV and crashes)\n" @@ -456,7 +456,7 @@ msgstr "" " * SSX (corregge errori nella grafica e crash)\n" " * Resident Evil: Dead Aim (causa texture alterate)" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:76 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:78 msgid "" "Known to affect following games:\n" " * Bleach Blade Battler\n" @@ -468,7 +468,7 @@ msgstr "" " * Growlanser II e III\n" " * Wizardry" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:81 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:83 msgid "" "Known to affect following games:\n" " * Mana Khemia 1 (Going \"off campus\")\n" @@ -476,7 +476,7 @@ msgstr "" "Ha effetto in questi giochi:\n" " * Mana Khemia 1 (Going \"off campus\")\n" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:86 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:88 msgid "" "Known to affect following games:\n" " * Test Drive Unlimited\n" @@ -486,23 +486,29 @@ msgstr "" " * Test Drive Unlimited\n" " * Transformers" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:110 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:116 +msgid "" +"It's better to enable 'Automatic game fixes' at the main menu instead, and " +"leave this page empty. ('Automatic' means: selectively use specific tested " +"fixes for specific games)" +msgstr "" +"È preferibile attivare l'opzione 'GameFix automatici' nel menu principale, e " +"lasciare quindi le opzioni di questa pagina non selezionate.\n" +"('automatici' significa un'attivazione selettiva di GameFix specifici e " +"testati per specifici giochi)" + +#: pcsx2/gui/Panels/GameFixesPanel.cpp:120 msgid "" "Gamefixes can work around wrong emulation in some titles. \n" -"They may also cause compatibility or performance issues. \n" +"They may also cause compatibility or performance issues.\n" "\n" -"It's better to enable 'Automatic game fixes' at the main menu instead, and " -"leave this page empty. \n" -"('Automatic' means: selectively use specific tested fixes for specific games)" +"The safest way to make sure that all game fixes are completely disabled." msgstr "" -"I GameFix possono correggere i problemi di emulazione in alcuni giochi.\n" -"Possono tuttavia causare problemi di compatibilità e di prestazioni in altri " -"giochi.\n" +"I GameFix possono aggirare problemi nell'emulazione di alcuni titoli.\n" +"Possono tuttavia causare problemi di compatibilità o prestazioni.\n" "\n" -"È consigliato attivare l'opzione 'GameFix automatici' nel menu 'Sistema', " -"lasciando quindi le opzioni di questo pannello non selezionate.\n" -"('automatici' significa: uso selettivo di GameFix specifici per specifici " -"giochi)" +"Il modo più sicuro per accertarsi che tutti i GameFix siano completamente " +"disabilitati." #: pcsx2/gui/Panels/MemoryCardListPanel.cpp:735 #, c-format @@ -801,7 +807,7 @@ msgstr "" "disattivata (la schermata visualizzata sarà in pratica spazzatura " "poligonale)." -#: pcsx2/vtlb.cpp:731 +#: pcsx2/vtlb.cpp:800 msgid "" "Your system is too low on virtual resources for PCSX2 to run. This can be " "caused by having a small or disabled swapfile, or by other programs that are " diff --git a/locales/it_IT/pcsx2_Main.po b/locales/it_IT/pcsx2_Main.po index b6e9e29458..6897762991 100644 --- a/locales/it_IT/pcsx2_Main.po +++ b/locales/it_IT/pcsx2_Main.po @@ -1,11 +1,11 @@ -# Copyright (C) 2013 PCSX2 Team +# Copyright (C) 2014 PCSX2 Team # This file is distributed under the same license as the PCSX2 package. msgid "" msgstr "" -"Project-Id-Version: PCSX2 1.2.0\n" +"Project-Id-Version: PCSX2 1.3.0\n" "Report-Msgid-Bugs-To: https://github.com/PCSX2/pcsx2/issues\n" -"POT-Creation-Date: 2014-04-06 11:47+0200\n" -"PO-Revision-Date: 2013-12-31 16:21+0100\n" +"POT-Creation-Date: 2014-06-23 21:22+0100\n" +"PO-Revision-Date: 2014-06-23 21:23+0100\n" "Last-Translator: Leucos\n" "Language-Team: Leucos \n" "Language: it_IT\n" @@ -14,24 +14,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: _;pxL;_d;pxDt;_t;pxLt\n" "X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-Basepath: ..\\..\\..\\PCSX2 Checkout\n" -"X-Generator: Poedit 1.5.5\n" +"X-Poedit-Basepath: ..\\..\n" +"X-Generator: Poedit 1.6.5\n" "X-Poedit-SearchPath-0: pcsx2\n" "X-Poedit-SearchPath-1: common\n" -#: common/include/Utilities/Exceptions.h:187 -msgid "No reason given." -msgstr "Nessuna spiegazione fornita." - -#: common/include/Utilities/Exceptions.h:226 -msgid "Parse error" -msgstr "Errore d'interpretazione" - -#: common/include/Utilities/Exceptions.h:250 -msgid "Your machine's hardware is incapable of running PCSX2. Sorry dood." -msgstr "" -"L'hardware del tuo sistema non è in grado di eseguire PCSX2. Ci dispiace." - #: common/src/Utilities/Exceptions.cpp:219 msgid "Oh noes! Out of memory!" msgstr "O no! Memoria esaurita!" @@ -97,7 +84,7 @@ msgstr "" "Include la processazione degli eventi d'inattività ed alcuni altri utilizzi " "non comuni di eventi." -#: pcsx2/CDVD/InputIsoFile.cpp:231 +#: pcsx2/CDVD/InputIsoFile.cpp:235 msgid "Unrecognized ISO image file format" msgstr "Formato file immagine ISO non riconosciuto" @@ -116,7 +103,7 @@ msgstr "" "causato da un tipo di immagine ISO non supportato o da un bug nel supporto " "immagini ISO di PCSX2." -#: pcsx2/MTGS.cpp:867 +#: pcsx2/MTGS.cpp:871 msgid "" "The MTGS thread has become unresponsive while waiting for the GS plugin to " "open." @@ -124,14 +111,14 @@ msgstr "" "Durante l'attesa per l'apertura del plugin GS il thread MTGS ha smesso di " "rispondere." -#: pcsx2/PluginManager.cpp:712 +#: pcsx2/PluginManager.cpp:716 msgid "" "The savestate cannot be loaded, as it appears to be corrupt or incomplete." msgstr "" "Il salvataggio di stato non può essere caricato, in quanto pare essere " "corrotto o incompleto." -#: pcsx2/PluginManager.cpp:722 +#: pcsx2/PluginManager.cpp:726 #, c-format msgid "" "%s plugin failed to open. Your computer may have insufficient resources, or " @@ -140,7 +127,7 @@ msgstr "" "Non è stato possibile avviare il plugin %s. Il computer potrebbe non " "possedere risorse sufficienti o avere driver/hardware incompatibili." -#: pcsx2/PluginManager.cpp:729 +#: pcsx2/PluginManager.cpp:733 #, c-format msgid "" "%s plugin failed to initialize. Your system may have insufficient memory or " @@ -149,18 +136,18 @@ msgstr "" "Non è stato possibile inizializzare il plugin %s. Il sistema potrebbe non " "disporre della memoria sufficiente o delle risorse richieste." -#: pcsx2/PluginManager.cpp:835 +#: pcsx2/PluginManager.cpp:839 #, c-format msgid "The configured %s plugin file was not found" msgstr "Non è stato possibile trovare il file del plugin %s configurato" -#: pcsx2/PluginManager.cpp:839 +#: pcsx2/PluginManager.cpp:843 #, c-format msgid "The configured %s plugin file is not a valid dynamic library" msgstr "" "Il plugin %s configurato non è una libreria di collegamento dinamico valida" -#: pcsx2/PluginManager.cpp:857 +#: pcsx2/PluginManager.cpp:861 #, c-format msgid "" "The configured %s plugin is not a PCSX2 plugin, or is for an older " @@ -169,13 +156,13 @@ msgstr "" "Il plugin %s configurato non è un plugin di PCSX2 o è realizzato per una " "versione precedente di PCSX2 e non più supportata." -#: pcsx2/PluginManager.cpp:882 +#: pcsx2/PluginManager.cpp:886 msgid "" "The plugin reports that your hardware or software/drivers are not supported." msgstr "" "Il plugin riporta che l'hardware, il software o i driver non sono supportati." -#: pcsx2/PluginManager.cpp:903 +#: pcsx2/PluginManager.cpp:907 msgid "" "Configured plugin is not a PCSX2 plugin, or is for an older unsupported " "version of PCSX2." @@ -183,7 +170,7 @@ msgstr "" "Il plugin configurato non è un plugin di PCSX2 o è realizzato per una " "versione di PCSX2 precedente e non più supportata." -#: pcsx2/PluginManager.cpp:929 +#: pcsx2/PluginManager.cpp:933 #, c-format msgid "" "Configured %s plugin is not a valid PCSX2 plugin, or is for an older " @@ -192,15 +179,15 @@ msgstr "" "Il plugin %s configurato non è un plugin di PCSX2 valido o è realizzato per " "una versione di PCSX2 precedente e non più supportata." -#: pcsx2/PluginManager.cpp:1358 +#: pcsx2/PluginManager.cpp:1362 msgid "Internal Memorycard Plugin failed to initialize." msgstr "Non è stato possibile inizializzare il plugin interno Memory Card." -#: pcsx2/PluginManager.cpp:1755 +#: pcsx2/PluginManager.cpp:1759 msgid "Unloaded Plugin" msgstr "Plugin Scaricato" -#: pcsx2/SaveState.cpp:342 +#: pcsx2/SaveState.cpp:343 msgid "Cannot load savestate. It is of an unknown or unsupported version." msgstr "" "Impossibile caricare il salvataggio di stato. La sua versione è sconosciuta " @@ -367,10 +354,6 @@ msgstr "" msgid "Detailed logging of CDVD hardware." msgstr "Log dettagliato dell'hardware CDVD." -#: pcsx2/System.h:221 pcsx2/System.h:222 pcsx2/System.h:223 -msgid "PCSX2 Message" -msgstr "PCSX2 - Messaggio" - #: pcsx2/ZipTools/thread_gzip.cpp:82 msgid "" "The savestate was not properly saved. The temporary file was created " @@ -529,15 +512,15 @@ msgstr "" "Premi OK per usare il plugin configurato predefinito, o Annulla per chiudere " "%s." -#: pcsx2/gui/AppInit.cpp:509 -msgid "PCSX2 Error: Hardware Deficiency" -msgstr "Errore di PCSX2: Hardware non compatibile" - #: pcsx2/gui/AppInit.cpp:509 pcsx2/gui/AppInit.cpp:521 #, c-format msgid "Press OK to close %s." msgstr "Premi OK per chiudere %s." +#: pcsx2/gui/AppInit.cpp:509 +msgid "PCSX2 Error: Hardware Deficiency" +msgstr "Errore di PCSX2: Hardware non compatibile" + #: pcsx2/gui/AppInit.cpp:522 #, c-format msgid "%s Critical Error" @@ -653,14 +636,14 @@ msgstr "Termina" msgid "Executing PS2 Virtual Machine..." msgstr "Avvio esecuzione Macchina virtuale PS2..." -#: pcsx2/gui/AppRes.cpp:72 -msgid "Browse for an Iso that is not in your recent history." -msgstr "Sfoglia le cartelle per una ISO non presente tra quelle recenti." - #: pcsx2/gui/AppRes.cpp:72 msgid "Browse..." msgstr "Sfoglia..." +#: pcsx2/gui/AppRes.cpp:72 +msgid "Browse for an Iso that is not in your recent history." +msgstr "Sfoglia le cartelle per una ISO non presente tra quelle recenti." + #: pcsx2/gui/AppUserMode.cpp:95 msgid "The following folders exist, but are not writable:" msgstr "" @@ -700,40 +683,34 @@ msgstr "" "Prova ad eliminare manualmente il file chiamato \"portable.ini\" dalla tua " "cartella d'installazione." -#: pcsx2/gui/ApplyState.h:55 -msgid "Cannot apply new settings, one of the settings is invalid." -msgstr "" -"Impossibile applicare le nuove impostazioni, una delle impostazioni non è " -"valida." - #: pcsx2/gui/ConsoleLogger.cpp:120 msgid "Save log question" msgstr "Conferma salvataggio log" -#: pcsx2/gui/ConsoleLogger.cpp:417 -msgid "Fits a lot of log in a microcosmically small area." -msgstr "Infila un mucchio di log in un'area microcosmicamente piccola." - #: pcsx2/gui/ConsoleLogger.cpp:417 msgid "Small" msgstr "Piccolo" -#: pcsx2/gui/ConsoleLogger.cpp:419 -msgid "It's what I use (the programmer guy)." -msgstr "È quello che uso io (il programmatore)." +#: pcsx2/gui/ConsoleLogger.cpp:417 +msgid "Fits a lot of log in a microcosmically small area." +msgstr "Infila un mucchio di log in un'area microcosmicamente piccola." #: pcsx2/gui/ConsoleLogger.cpp:419 pcsx2/gui/Panels/CpuPanel.cpp:38 msgid "Normal" msgstr "Normale" -#: pcsx2/gui/ConsoleLogger.cpp:421 -msgid "Its nice and readable." -msgstr "È bello e leggibile." +#: pcsx2/gui/ConsoleLogger.cpp:419 +msgid "It's what I use (the programmer guy)." +msgstr "È quello che uso io (il programmatore)." #: pcsx2/gui/ConsoleLogger.cpp:421 msgid "Large" msgstr "Grande" +#: pcsx2/gui/ConsoleLogger.cpp:421 +msgid "Its nice and readable." +msgstr "È bello e leggibile." + #: pcsx2/gui/ConsoleLogger.cpp:423 msgid "Huge" msgstr "Enorme" @@ -742,13 +719,17 @@ msgstr "Enorme" msgid "In case you have a really high res display." msgstr "Nel caso tu possieda uno schermo veramente ad alta risoluzione." +#: pcsx2/gui/ConsoleLogger.cpp:427 +msgid "Light theme" +msgstr "Tema chiaro" + #: pcsx2/gui/ConsoleLogger.cpp:427 msgid "Default soft-tone color scheme." msgstr "Schema predefinito a colori tenui." -#: pcsx2/gui/ConsoleLogger.cpp:427 -msgid "Light theme" -msgstr "Tema chiaro" +#: pcsx2/gui/ConsoleLogger.cpp:428 +msgid "Dark theme" +msgstr "Tema scuro" #: pcsx2/gui/ConsoleLogger.cpp:428 msgid "" @@ -758,10 +739,6 @@ msgstr "" "Schema classico a colore nero, per la gente che si diverte ad avere il testo " "marchiato a fuoco nei propri nervi ottici." -#: pcsx2/gui/ConsoleLogger.cpp:428 -msgid "Dark theme" -msgstr "Tema scuro" - #: pcsx2/gui/ConsoleLogger.cpp:431 msgid "Always on Top" msgstr "Sempre in primo piano" @@ -841,23 +818,23 @@ msgstr "&Log" msgid "&Sources" msgstr "&Fonti" -#: pcsx2/gui/Debugger/DisassemblyDialog.cpp:112 +#: pcsx2/gui/Debugger/DisassemblyDialog.cpp:127 msgid "panel" -msgstr "" +msgstr "pannello" #: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:35 #, c-format msgid "About %s" msgstr "Informazioni su %s" -#: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:55 -msgid "Betatesting" -msgstr "Betatesting" - #: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:55 msgid "Previous versions" msgstr "Versioni precedenti" +#: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:55 +msgid "Betatesting" +msgstr "Betatesting" + #: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:55 msgid "Webmasters" msgstr "Webmaster" @@ -887,9 +864,8 @@ msgid "PCSX2 Official Website and Forums" msgstr "Sito Web e Forum ufficiali di PCSX2" #: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:106 -#, fuzzy msgid "PCSX2 Official Git Repository at GitHub" -msgstr "Repository Svn ufficiale di PCSX2 presso GitHub" +msgstr "Repository Git ufficiale di PCSX2 presso GitHub" #: pcsx2/gui/Dialogs/AboutBoxDialog.cpp:110 msgid "I've seen enough" @@ -1045,15 +1021,15 @@ msgstr "" "comporti \n" "in modo imprevedibile (anche se non è un'eventualità così probabile)." +#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:47 +msgid "Settings" +msgstr "Impostazioni" + #: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:47 #, c-format msgid "Select a folder for %s settings" msgstr "Seleziona una cartella per le impostazioni di %s" -#: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:47 -msgid "Settings" -msgstr "Impostazioni" - #: pcsx2/gui/Dialogs/FirstTimeWizard.cpp:76 msgid "Language selector" msgstr "Selettore Lingua" @@ -1283,7 +1259,7 @@ msgstr "" "È un errore rilasciare più file su di una finestra di %s. Per favore uno " "alla volta, grazie." -#: pcsx2/gui/IsoDropTarget.cpp:87 pcsx2/gui/MainMenuClicks.cpp:339 +#: pcsx2/gui/IsoDropTarget.cpp:87 pcsx2/gui/MainMenuClicks.cpp:342 msgid "Confirm PS2 Reset" msgstr "Conferma reset della PS2" @@ -1339,14 +1315,14 @@ msgid "&Debug" msgstr "&Debug" #: pcsx2/gui/MainFrame.cpp:360 -#, fuzzy, c-format +#, c-format msgid "%s %d.%d.%d" -msgstr "%s %d.%d.%d %s" +msgstr "%s %d.%d.%d" #: pcsx2/gui/MainFrame.cpp:365 -#, fuzzy, c-format +#, c-format msgid "%s %d.%d.%d-%lld%s (git) %s" -msgstr "%s %d.%d.%d.%d%s (svn) %s" +msgstr "%s %d.%d.%d-%lld%s (git) %s" #: pcsx2/gui/MainFrame.cpp:402 pcsx2/gui/MainFrame.cpp:404 #: pcsx2/gui/MainFrame.cpp:410 @@ -1379,7 +1355,6 @@ msgid "Enable Cheats" msgstr "Abilita Cheat" #: pcsx2/gui/MainFrame.cpp:430 -#, fuzzy msgid "Enable Widescreen Patches" msgstr "Abilita le Patch Widescreen" @@ -1503,7 +1478,7 @@ msgstr "Informazioni su..." #: pcsx2/gui/MainFrame.cpp:519 msgid "Open Debug Window..." -msgstr "" +msgstr "Apri Finestra di Debug..." #: pcsx2/gui/MainFrame.cpp:521 msgid "Logging..." @@ -1660,27 +1635,32 @@ msgstr "Immagini disco (%s)" msgid "Blockdumps (%s)" msgstr "Blockdump (%s)" -#: pcsx2/gui/MainMenuClicks.cpp:267 pcsx2/gui/MainMenuClicks.cpp:288 +#: pcsx2/gui/MainMenuClicks.cpp:267 +#, c-format +msgid "Compressed (%s)" +msgstr "File compressi (%s)" + +#: pcsx2/gui/MainMenuClicks.cpp:270 pcsx2/gui/MainMenuClicks.cpp:291 msgid "All Files (*.*)" msgstr "Tutti i file (*.*)" -#: pcsx2/gui/MainMenuClicks.cpp:270 +#: pcsx2/gui/MainMenuClicks.cpp:273 msgid "Select CDVD source iso..." msgstr "Seleziona origine ISO del CDVD..." -#: pcsx2/gui/MainMenuClicks.cpp:287 +#: pcsx2/gui/MainMenuClicks.cpp:290 msgid "Select ELF file..." msgstr "Seleziona un file ELF..." -#: pcsx2/gui/MainMenuClicks.cpp:313 +#: pcsx2/gui/MainMenuClicks.cpp:316 msgid "ISO file not found!" msgstr "File ISO non trovato!" -#: pcsx2/gui/MainMenuClicks.cpp:315 +#: pcsx2/gui/MainMenuClicks.cpp:318 msgid "An error occurred while trying to open the file:" msgstr "Un errore si è verificato provando ad aprire il file:" -#: pcsx2/gui/MainMenuClicks.cpp:316 +#: pcsx2/gui/MainMenuClicks.cpp:319 msgid "" "Error: The configured ISO file does not exist. Click OK to select a new ISO " "source for CDVD." @@ -1688,7 +1668,7 @@ msgstr "" "Errore: Il file ISO configurato non esiste. Fai clic su OK per selezionare " "una nuova origine ISO per il CDVD." -#: pcsx2/gui/MainMenuClicks.cpp:387 +#: pcsx2/gui/MainMenuClicks.cpp:390 msgid "" "You have selected the following ISO image into PCSX2:\n" "\n" @@ -1987,11 +1967,11 @@ msgstr "Cerca" msgid "Gamefixes" msgstr "GameFix" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:38 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:40 msgid "VU Add Hack - Fixes Tri-Ace games boot crash." msgstr "VU Add Hack - Corregge il crash all'avvio dei giochi Tri-Ace." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:39 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:41 msgid "" "Games that need this hack to boot:\n" " * Star Ocean 3\n" @@ -2003,84 +1983,84 @@ msgstr "" " * Radiata Stories\n" " * Valkyrie Profile 2" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:42 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:44 msgid "VU Clip Flag Hack - For Persona games (SuperVU recompiler only!)" msgstr "" "VU Clip Flag Hack - Per i giochi della serie Persona (solo per il " "ricompilatore superVU!)" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:46 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:48 msgid "FPU Compare Hack - For Digimon Rumble Arena 2." msgstr "FPU Compare Hack - Per Digimon Rumble Arena 2." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:50 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:52 msgid "FPU Multiply Hack - For Tales of Destiny." msgstr "FPU Multiply Hack - Per Tales of Destiny." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:54 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:56 msgid "FPU Negative Div Hack - For Gundam games." msgstr "FPU Negative Div Hack - Per i giochi della serie Gundam." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:58 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:60 msgid "VU XGkick Hack - For Erementar Gerad." msgstr "VU XGkick Hack - Per Erementar Gerad." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:62 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:64 msgid "FFX videos fix - Fixes bad graphics overlay in FFX videos." msgstr "" "FFX video fix - Corregge i problemi grafici negli overlay dei video in FFX." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:66 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:68 msgid "EE timing hack - Multi purpose hack. Try if all else fails." msgstr "" "EE timing hack - Hack multiscopo. Provalo se tutto il resto non funziona." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:71 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:73 msgid "" "Skip MPEG hack - Skips videos/FMVs in games to avoid game hanging/freezes." msgstr "" "Skip MPEG hack - Salta i video/FMV presenti nei giochi per evitare stalli/" "blocchi." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:75 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:77 msgid "OPH Flag hack - Try if your game freezes showing the same frame." msgstr "" "OPH Flag hack - Provalo se il tuo gioco si blocca mostrando lo stesso " "fotogramma." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:80 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:82 msgid "Ignore DMAC writes when it is busy." msgstr "Ignora le scritture DMAC quando è occupata." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:85 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:87 msgid "Simulate VIF1 FIFO read ahead. Fixes slow loading games." msgstr "Simula read ahead FIFO VIF. Corregge i giochi con caricamenti lenti." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:90 -msgid "Delay VIF1 Stalls (VIF1 FIFO) - For SOCOM 2 HUD." -msgstr "Ritarda le pause di VIF1 (VIF1 FIFO) - Per l'HUD di SOCOM 2." +#: pcsx2/gui/Panels/GameFixesPanel.cpp:92 +msgid "" +"Delay VIF1 Stalls (VIF1 FIFO) - For SOCOM 2 HUD & Spy Hunter loading hang." +msgstr "" +"Ritarda le pause di VIF1 (VIF1 FIFO) - Per l'HUD di SOCOM 2 e il bloco del " +"caricamento di Spy Hunter." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:94 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:96 msgid "Ignore Bus Direction on Path3 Transfer - Used for Hotwheels" msgstr "" "Ignora la Direzione del Bus nel Trasferimento Path3 - Utilizzato per " "Hotwheels." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:98 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:100 msgid "Switch to GSdx software rendering when a FMV plays" msgstr "Passa al rendering software di GSdx quando viene riprodotto un FMV." -#: pcsx2/gui/Panels/GameFixesPanel.cpp:109 +#: pcsx2/gui/Panels/GameFixesPanel.cpp:104 +msgid "Preload TLB hack to avoid tlb miss on Goemon" +msgstr "Hack di precaricamento TLB per evitare TLB miss in Goemon" + +#: pcsx2/gui/Panels/GameFixesPanel.cpp:115 msgid "Enable manual game fixes [Not recommended]" msgstr "Abilita GameFix manuali [non consigliato]" -#: pcsx2/gui/Panels/GameFixesPanel.cpp:114 -msgid "" -"The safest way to make sure that all game fixes are completely disabled." -msgstr "" -"Il modo più sicuro per accertarsi che tutti i GameFix siano completamente " -"disattivati." - #: pcsx2/gui/Panels/LogOptionsPanels.cpp:249 msgid "Enable Trace Logging" msgstr "Abilita i Trace Log" @@ -2172,6 +2152,10 @@ msgstr "Crea una memory card assegnata alla Porta selezionata." msgid "Delete memory file?" msgstr "Eliminare il file della memory card?" +#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:763 +msgid "Failed: Can only duplicate an existing card." +msgstr "Fallita: Si possono copiare solo memory card esistenti." + #: pcsx2/gui/Panels/MemoryCardListPanel.cpp:763 #: pcsx2/gui/Panels/MemoryCardListPanel.cpp:774 #: pcsx2/gui/Panels/MemoryCardListPanel.cpp:781 @@ -2179,10 +2163,6 @@ msgstr "Eliminare il file della memory card?" msgid "Duplicate memory card" msgstr "Copia memory card" -#: pcsx2/gui/Panels/MemoryCardListPanel.cpp:763 -msgid "Failed: Can only duplicate an existing card." -msgstr "Fallita: Si possono copiare solo memory card esistenti." - #: pcsx2/gui/Panels/MemoryCardListPanel.cpp:781 msgid "" "Select a name for the duplicate\n" @@ -2310,22 +2290,22 @@ msgstr "Ultima modifica" msgid "Created on" msgstr "Creata il" -#: pcsx2/gui/Panels/MemoryCardListView.cpp:158 -msgid "No" -msgstr "No" - #: pcsx2/gui/Panels/MemoryCardListView.cpp:158 msgid "Yes" msgstr "Sì" -#: pcsx2/gui/Panels/MemoryCardListView.cpp:159 -msgid "PS2" -msgstr "PS2" +#: pcsx2/gui/Panels/MemoryCardListView.cpp:158 +msgid "No" +msgstr "No" #: pcsx2/gui/Panels/MemoryCardListView.cpp:159 msgid "PSX" msgstr "PSX" +#: pcsx2/gui/Panels/MemoryCardListView.cpp:159 +msgid "PS2" +msgstr "PS2" + #: pcsx2/gui/Panels/MemoryCardListView.cpp:172 msgid "[-- Unused cards --]" msgstr "[-- Card inutilizzate --]" @@ -2743,6 +2723,47 @@ msgstr "" "Estensioni %s non trovate. microVU richiede una CPU del sistema host con " "estensioni MMX, SSE ed SSE2." +#: common/include/Utilities/Exceptions.h:187 +msgid "No reason given." +msgstr "Nessuna spiegazione fornita." + +#: common/include/Utilities/Exceptions.h:226 +msgid "Parse error" +msgstr "Errore d'interpretazione" + +#: common/include/Utilities/Exceptions.h:250 +msgid "Your machine's hardware is incapable of running PCSX2. Sorry dood." +msgstr "" +"L'hardware del tuo sistema non è in grado di eseguire PCSX2. Ci dispiace." + +#: pcsx2/System.h:221 pcsx2/System.h:222 pcsx2/System.h:223 +msgid "PCSX2 Message" +msgstr "PCSX2 - Messaggio" + +#: pcsx2/gui/ApplyState.h:55 +msgid "Cannot apply new settings, one of the settings is invalid." +msgstr "" +"Impossibile applicare le nuove impostazioni, una delle impostazioni non è " +"valida." + +#~ msgid "" +#~ "Gamefixes can work around wrong emulation in some titles. \n" +#~ "They may also cause compatibility or performance issues.\n" +#~ "\n" +#~ "The safest way to make sure that all game fixes are completely disabled." +#~ msgstr "" +#~ "I GameFix possono aggirare i problemi di emulazione di alcuni titoli. \n" +#~ "Possono inoltre causare problemi di compatibilità e di prestazioni.\n" +#~ "\n" +#~ "Il modo più sicuro per accertarsi che tutti i GameFix siano completamente " +#~ "disabilitati." + +#~ msgid "" +#~ "The safest way to make sure that all game fixes are completely disabled." +#~ msgstr "" +#~ "Il modo più sicuro per accertarsi che tutti i GameFix siano completamente " +#~ "disattivati." + #~ msgid "(modded)" #~ msgstr "(modificato)" From 0ddb77c04858f39201f08fbd3abd42053c1db3a4 Mon Sep 17 00:00:00 2001 From: refraction Date: Mon, 30 Jun 2014 18:56:10 +0100 Subject: [PATCH 02/13] VIF: Ignore interrupts caused by obviously bogus NOP and NULL codes. Fixes Onimusha Blade Warriors. --- pcsx2/Vif_Codes.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pcsx2/Vif_Codes.cpp b/pcsx2/Vif_Codes.cpp index edcf8b39ae..c2dd42db24 100644 --- a/pcsx2/Vif_Codes.cpp +++ b/pcsx2/Vif_Codes.cpp @@ -443,7 +443,12 @@ vifOp(vifCode_Nop) { GetVifX.cmd = 0; GetVifX.pass = 0; vifExecQueue(idx); - if(GetVifX.vifpacketsize > 1) + + //If the top bit was set to interrupt, we don't want it to take commands from a bad code if it's interpreted as a nop by us. + //Onimusha - Blade Warriors + if ((vifXRegs.code & 0x80000000) && (vifXRegs.code & 0xFFFFF) != 0) GetVifX.irq = 0; + + if (GetVifX.vifpacketsize > 1) { if(((data[1] >> 24) & 0x7f) == 0x6) //is mskpath3 next { @@ -470,6 +475,9 @@ vifOp(vifCode_Null) { } vifX.cmd = 0; vifX.pass = 0; + + //If the top bit was set to interrupt, we don't want it to take commands from a bad code + if (vifXRegs.code & 0x80000000) vifX.irq = 0; } pass2 { Console.Error("Vif%d bad vifcode! [CMD = %x]", idx, vifX.cmd); } pass3 { VifCodeLog("Null"); } From ecb42cad9b30f04339edf840dbf8a98779da211e Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Tue, 1 Jul 2014 15:43:26 +0200 Subject: [PATCH 03/13] Thanks Bluefire101 for reporting this (eventually) undefined behavior (depending on who you ask). Even if there was no problem, code should always be clear on what it does. --- common/include/x86emitter/x86types.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/include/x86emitter/x86types.h b/common/include/x86emitter/x86types.h index 9c5ead8fc7..8d99e7005f 100644 --- a/common/include/x86emitter/x86types.h +++ b/common/include/x86emitter/x86types.h @@ -366,13 +366,15 @@ template< typename T > void xWrite( T val ); xRegisterSSE& operator++() { - ++Id &= (iREGCNT_XMM-1); + ++Id; + Id &= (iREGCNT_XMM - 1); return *this; } xRegisterSSE& operator--() { - --Id &= (iREGCNT_XMM-1); + --Id; + Id &= (iREGCNT_XMM - 1); return *this; } From ffa216d958b132130bc206e384f9a760bfe07a7f Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 3 Jul 2014 00:24:16 -0400 Subject: [PATCH 04/13] Fix a possibility for out of bound accesses in logging within Cache.cpp --- pcsx2/Cache.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/pcsx2/Cache.cpp b/pcsx2/Cache.cpp index 440bfb679b..51907dd028 100644 --- a/pcsx2/Cache.cpp +++ b/pcsx2/Cache.cpp @@ -179,25 +179,24 @@ void writeCache128(u32 mem, const mem128_t* value){ } u8 readCache8(u32 mem) { - int i, number; + int number; - i = getFreeCache(mem,0,&number); - CACHE_LOG("readCache %8.8x from %d, way %d QW %x u8 part %x Really Reading %x", mem, i,number, (mem >> 4) & 0x3, (mem&0xf)>>2, (u32)pCache[i].data[number][(mem >> 4) & 0x3].b8._u8[(mem&0xf)]); + int i = getFreeCache(mem,0,&number); if(i == -1) { u32 vmv=vtlbdata.vmap[mem>>VTLB_PAGE_BITS]; s32 ppf=mem+vmv; return *(u8*)ppf; } + + CACHE_LOG("readCache %8.8x from %d, way %d QW %x u8 part %x Really Reading %x", mem, i, number, (mem >> 4) & 0x3, (mem & 0xf) >> 2, (u32)pCache[i].data[number][(mem >> 4) & 0x3].b8._u8[(mem & 0xf)]); return pCache[i].data[number][(mem >> 4) & 0x3].b8._u8[(mem&0xf)]; } u16 readCache16(u32 mem) { - int i, number; + int number; - i = getFreeCache(mem,0,&number); - CACHE_LOG("readCache %8.8x from %d, way %d QW %x u16 part %x Really Reading %x", mem, i,number, (mem >> 4) & 0x3, (mem&0xf)>>2, (u32)pCache[i].data[number][(mem >> 4) & 0x3].b8._u16[(mem&0xf)>>1]); - + int i = getFreeCache(mem,0,&number); if(i == -1) { u32 vmv=vtlbdata.vmap[mem>>VTLB_PAGE_BITS]; @@ -205,34 +204,37 @@ u16 readCache16(u32 mem) { return *(u16*)ppf; } + CACHE_LOG("readCache %8.8x from %d, way %d QW %x u16 part %x Really Reading %x", mem, i, number, (mem >> 4) & 0x3, (mem & 0xf) >> 2, (u32)pCache[i].data[number][(mem >> 4) & 0x3].b8._u16[(mem & 0xf) >> 1]); return pCache[i].data[number][(mem >> 4) & 0x3].b8._u16[(mem&0xf)>>1]; } u32 readCache32(u32 mem) { - int i, number; + int number; - i = getFreeCache(mem,0,&number); - CACHE_LOG("readCache %8.8x from %d, way %d QW %x u32 part %x Really Reading %x", mem, i,number, (mem >> 4) & 0x3, (mem&0xf)>>2, (u32)pCache[i].data[number][(mem >> 4) & 0x3].b8._u32[(mem&0xf)>>2]); + int i = getFreeCache(mem,0,&number); if(i == -1) { u32 vmv=vtlbdata.vmap[mem>>VTLB_PAGE_BITS]; s32 ppf=mem+vmv; return *(u32*)ppf; } + + CACHE_LOG("readCache %8.8x from %d, way %d QW %x u32 part %x Really Reading %x", mem, i, number, (mem >> 4) & 0x3, (mem & 0xf) >> 2, (u32)pCache[i].data[number][(mem >> 4) & 0x3].b8._u32[(mem & 0xf) >> 2]); return pCache[i].data[number][(mem >> 4) & 0x3].b8._u32[(mem&0xf)>>2]; } u64 readCache64(u32 mem) { - int i, number; + int number; - i = getFreeCache(mem,0,&number); - CACHE_LOG("readCache %8.8x from %d, way %d QW %x u64 part %x Really Reading %x_%x", mem, i,number, (mem >> 4) & 0x3, (mem&0xf)>>2, pCache[i].data[number][(mem >> 4) & 0x3].b8._u64[(mem&0xf)>>3]); + int i = getFreeCache(mem,0,&number); if(i == -1) { u32 vmv=vtlbdata.vmap[mem>>VTLB_PAGE_BITS]; s32 ppf=mem+vmv; return *(u64*)ppf; } + + CACHE_LOG("readCache %8.8x from %d, way %d QW %x u64 part %x Really Reading %x_%x", mem, i, number, (mem >> 4) & 0x3, (mem & 0xf) >> 2, pCache[i].data[number][(mem >> 4) & 0x3].b8._u64[(mem & 0xf) >> 3]); return pCache[i].data[number][(mem >> 4) & 0x3].b8._u64[(mem&0xf)>>3]; } From efce4495502da2ba9b4ea4fe46bd4e519ad3d7a3 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Thu, 3 Jul 2014 21:16:51 +0200 Subject: [PATCH 05/13] github: add a CONTRIBUTING.md file Initial version that likely got a broken syntax :( --- CONTRIBUTING.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..256f6cd25b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,71 @@ +# Contribution requirement +* be patient + Your contribution will gladly be reviewed but +* discuss with us your future contribution before coding it + Let's avoid duplicate work! Besides specification could be clarified this way. + + +# Window contribution possibility +* check linux chapter ;) Various improvements are actually cross platform! + +# Linux contribution possibility + +You're welcome to the [linux contribution thread](http://forums.pcsx2.net/Thread-Areas-of-interest-for-new-linux-developers) to have full details. Here an handy list of feature that you could implement. Feel free to propse new enhancement. + +## House keeping and general compilation +* clean gcc flags +* clean gcc warning +* support clang (template mess) +* speed comparison clang/gcc +* support avx (gsdx) +* add missing/update copyright header +* LTO support +* PGO support + +## Core +* support XZ compressed iso + +## GSdx +* Fix OpenGL +* implement DX features on OGL (Amsodean's fxaa/video recording ....) +* Fix GLES3 +* add tooltip on gsdx gui +* finish shader subroutine usage (+find a way to clean shader and avoid duplication) +* finish buffer storage +* OSD + +## CDVD +* port CDVDgiga to linux ? + +## zzogl +* reduce gl requirement to 3.3 + gl4 extension +* use multibind +* fix EGL +* port GLSL to window +* Drop old GLSL backend (and much later Nivida CG) +* support wx3.0 + +## Portability +* port GSThread to std::thread +* port core thread to std::thread +* C11 aligned_alloc +* C++11 alignof/alignas syntax +* replace volatile/lock-free queue with real C++ atomic + +## Debian package +* need a refresh to the latest standard +* Clean debian/copyright => debmake -k + + +## QA +* [C++11 auto port](http://clang.llvm.org/extra/clang-modernize.html). Initial requirement: drop XP and support clang/llvm +* [Clean header include](https://code.google.com/p/include-what-you-use/) +* address sanitizer (gcc or clang) +* valgrind (not sure it can run PCSX2, maybe limit the scope to plugin) +* reformat the core/plugin to a constant style with tool like astyle + +# Very very long term feature +Those features will require a lots of work! It would require months if not years. There are listed here for completeness ;) +* PS2 ROM reimplementation (wrongly named HLE bios) +* Android X86 port +* Win/Linux ARM port From 6f19551a772f275848e2e6d384642ec4a63d7b0a Mon Sep 17 00:00:00 2001 From: Pseudonym Date: Fri, 4 Jul 2014 12:35:00 +0100 Subject: [PATCH 06/13] Quick fix for undefined behaviour in the R3000A disassembler. --- pcsx2/DebugTools/DisR3000A.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pcsx2/DebugTools/DisR3000A.cpp b/pcsx2/DebugTools/DisR3000A.cpp index c3bd7df1f1..5898eafabe 100644 --- a/pcsx2/DebugTools/DisR3000A.cpp +++ b/pcsx2/DebugTools/DisR3000A.cpp @@ -68,17 +68,17 @@ typedef char* (*TdisR3000AF)(u32 code, u32 pc); #define _Branch_ (pc + 4 + ((short)_Im_ * 4)) #define _OfB_ _Im_, _nRs_ -#define dName(i) sprintf(ostr, "%s %-7s,", ostr, i) -#define dGPR(i) sprintf(ostr, "%s %8.8x (%s),", ostr, psxRegs.GPR.r[i], disRNameGPR[i]) -#define dCP0(i) sprintf(ostr, "%s %8.8x (%s),", ostr, psxRegs.CP0.r[i], disRNameCP0[i]) -#define dHI() sprintf(ostr, "%s %8.8x (%s),", ostr, psxRegs.GPR.n.hi, "hi") -#define dLO() sprintf(ostr, "%s %8.8x (%s),", ostr, psxRegs.GPR.n.lo, "lo") -#define dImm() sprintf(ostr, "%s %4.4x (%d),", ostr, _Im_, _Im_) -#define dTarget() sprintf(ostr, "%s %8.8x,", ostr, _Target_) -#define dSa() sprintf(ostr, "%s %2.2x (%d),", ostr, _Sa_, _Sa_) -#define dOfB() sprintf(ostr, "%s %4.4x (%8.8x (%s)),", ostr, _Im_, psxRegs.GPR.r[_Rs_], disRNameGPR[_Rs_]) -#define dOffset() sprintf(ostr, "%s %8.8x,", ostr, _Branch_) -#define dCode() sprintf(ostr, "%s %8.8x,", ostr, (code >> 6) & 0xffffff) +#define dName(i) sprintf(ostr + strlen(ostr), " %-7s,", i) +#define dGPR(i) sprintf(ostr + strlen(ostr), " %8.8x (%s),", psxRegs.GPR.r[i], disRNameGPR[i]) +#define dCP0(i) sprintf(ostr + strlen(ostr), " %8.8x (%s),", psxRegs.CP0.r[i], disRNameCP0[i]) +#define dHI() sprintf(ostr + strlen(ostr), " %8.8x (%s),", psxRegs.GPR.n.hi, "hi") +#define dLO() sprintf(ostr + strlen(ostr), " %8.8x (%s),", psxRegs.GPR.n.lo, "lo") +#define dImm() sprintf(ostr + strlen(ostr), " %4.4x (%d),", _Im_, _Im_) +#define dTarget() sprintf(ostr + strlen(ostr), " %8.8x,", _Target_) +#define dSa() sprintf(ostr + strlen(ostr), " %2.2x (%d),", _Sa_, _Sa_) +#define dOfB() sprintf(ostr + strlen(ostr), " %4.4x (%8.8x (%s)),", _Im_, psxRegs.GPR.r[_Rs_], disRNameGPR[_Rs_]) +#define dOffset() sprintf(ostr + strlen(ostr), " %8.8x,", _Branch_) +#define dCode() sprintf(ostr + strlen(ostr), " %8.8x,", (code >> 6) & 0xffffff) /********************************************************* * Arithmetic with immediate operand * From f4cb9de8d903e6ccea5088f61a5acbc5e601da1e Mon Sep 17 00:00:00 2001 From: Pseudonym Date: Fri, 4 Jul 2014 12:38:14 +0100 Subject: [PATCH 07/13] mVU: Corrected a typo in the branch in branch delay slot handling which prevented using the simpler code in the case of the delay slot being that of an unconditional branch. Now hopefully the code in question actually works for that case, since I'm not sure this has been tested. --- pcsx2/x86/microVU_Analyze.inl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pcsx2/x86/microVU_Analyze.inl b/pcsx2/x86/microVU_Analyze.inl index ed32f3f359..215cef54ae 100644 --- a/pcsx2/x86/microVU_Analyze.inl +++ b/pcsx2/x86/microVU_Analyze.inl @@ -463,7 +463,7 @@ __ri int mVUbranchCheck(mV) { if(mVUlow.branch == 2 || mVUlow.branch == 10) //Needs linking, we can only guess this if the next is not conditional { - if(branchType <= 2 && branchType >= 9) //First branch is not conditional so we know what the link will be + if(branchType <= 2 || branchType >= 9) //First branch is not conditional so we know what the link will be { //So we can let the existing evil block do its thing! We know where to get the addr :) mVUregs.blockType = 2; } //Else it is conditional, so we need to do some nasty processing later in microVU_Branch.inl From e6e7c95e94044c06b247629e7f7f340ba60422f7 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Fri, 4 Jul 2014 23:50:51 +0200 Subject: [PATCH 08/13] linux: add an option for clang It will be used on the future with clang/cmake cleaning contribution --- build.sh | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/build.sh b/build.sh index a821f26eef..77d6a3097a 100755 --- a/build.sh +++ b/build.sh @@ -15,7 +15,8 @@ # If not, see . flags="-DCMAKE_BUILD_PO=FALSE" -clean_build=false +clean_build=0 +use_clang=0; for f in $* do @@ -28,7 +29,8 @@ do --gles ) flags="$flags -DGLES_API=TRUE" ;; --sdl2 ) flags="$flags -DSDL2_API=TRUE" ;; --extra ) flags="$flags -DEXTRA_PLUGINS=TRUE" ;; - --clean ) clean_build=true ;; + --clang ) use_clang=1; flags="$flags -DUSE_CLANG=TRUE" ;; + --clean ) clean_build=1 ;; *) # unknown option @@ -47,24 +49,19 @@ do esac done -rm -f install_log.txt - -if [ "$flags" != "" ]; then - echo "Building pcsx2 with $flags" - echo "Building pcsx2 with $flags" > install_log.txt -fi - -if [ "$clean_build" = true ]; then - echo "Doing a clean build." - rm -fr build - # make clean 2>&1 | tee -a ../install_log.txt -fi +[ $clean_build -eq 1 ] && (echo "Doing a clean build."; rm -fr build ) +echo "Building pcsx2 with $flags\n" | tee install_log.txt mkdir -p build cd build -cmake $flags .. 2>&1 | tee -a ../install_log.txt +if [ $use_clang -eq 1 ] +then + CC=clang CXX=clang++ cmake $flags .. 2>&1 | tee -a ../install_log.txt +else + cmake $flags .. 2>&1 | tee -a ../install_log.txt +fi CORE=`grep -w -c processor /proc/cpuinfo` make -j $CORE 2>&1 | tee -a ../install_log.txt From c5d2343f51a2e43a822e436fd0bda9f23db22ff9 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sat, 5 Jul 2014 00:06:26 +0200 Subject: [PATCH 09/13] pcsx2/common: fix tons of warning spamming on clang * Don't use parameter name to avoid unused parameter * Set a default for various case --- common/include/Utilities/Console.h | 36 ++++++++++----------- common/include/Utilities/PageFaultSource.h | 4 +-- common/include/Utilities/PersistentThread.h | 2 +- common/include/Utilities/SafeArray.h | 4 +-- common/include/Utilities/TraceLog.h | 2 +- common/include/Utilities/wxGuiTools.h | 8 ++--- pcsx2/Gif_Unit.h | 1 + pcsx2/HwRead.cpp | 2 ++ pcsx2/HwWrite.cpp | 2 ++ pcsx2/IopBios.h | 6 ++-- pcsx2/Memory.cpp | 9 ++++++ pcsx2/System/SysThreads.h | 2 +- pcsx2/VUmicro.h | 8 ++--- 13 files changed, 50 insertions(+), 36 deletions(-) diff --git a/common/include/Utilities/Console.h b/common/include/Utilities/Console.h index 12a737c558..3a29fe3445 100644 --- a/common/include/Utilities/Console.h +++ b/common/include/Utilities/Console.h @@ -129,32 +129,32 @@ struct IConsoleWriter // struct NullConsoleWriter { - void WriteRaw( const wxString& fmt ) {} - void DoWriteLn( const wxString& fmt ) {} - void DoSetColor( ConsoleColors color ) {} - void DoWriteFromStdout( const wxString& fmt ) {} + void WriteRaw( const wxString& ) {} + void DoWriteLn( const wxString& ) {} + void DoSetColor( ConsoleColors ) {} + void DoWriteFromStdout( const wxString& ) {} void Newline() {} - void SetTitle( const wxString& title ) {} + void SetTitle( const wxString& ) {} ConsoleColors GetColor() const { return Color_Current; } - const NullConsoleWriter& SetColor( ConsoleColors color ) const { return *this; } + const NullConsoleWriter& SetColor( ConsoleColors ) const { return *this; } const NullConsoleWriter& ClearColor() const { return *this; } - const NullConsoleWriter& SetIndent( int tabcount=1 ) const { return *this; } + const NullConsoleWriter& SetIndent( int =1 ) const { return *this; } - NullConsoleWriter Indent( int tabcount=1 ) const { return NullConsoleWriter(); } + NullConsoleWriter Indent( int =1 ) const { return NullConsoleWriter(); } - bool FormatV( const char* fmt, va_list args ) const { return false; } - bool WriteLn( ConsoleColors color, const char* fmt, ... ) const { return false; } - bool WriteLn( const char* fmt, ... ) const { return false; } - bool Error( const char* fmt, ... ) const { return false; } - bool Warning( const char* fmt, ... ) const { return false; } + bool FormatV( const char* , va_list ) const { return false; } + bool WriteLn( ConsoleColors , const char* , ... ) const { return false; } + bool WriteLn( const char* , ... ) const { return false; } + bool Error( const char* , ... ) const { return false; } + bool Warning( const char* , ... ) const { return false; } - bool FormatV( const wxChar* fmt, va_list args ) const { return false; } - bool WriteLn( ConsoleColors color, const wxChar* fmt, ... ) const { return false; } - bool WriteLn( const wxChar* fmt, ... ) const { return false; } - bool Error( const wxChar* fmt, ... ) const { return false; } - bool Warning( const wxChar* fmt, ... ) const { return false; } + bool FormatV( const wxChar* , va_list ) const { return false; } + bool WriteLn( ConsoleColors , const wxChar* , ... ) const { return false; } + bool WriteLn( const wxChar* , ... ) const { return false; } + bool Error( const wxChar* , ... ) const { return false; } + bool Warning( const wxChar* , ... ) const { return false; } }; // -------------------------------------------------------------------------------------- diff --git a/common/include/Utilities/PageFaultSource.h b/common/include/Utilities/PageFaultSource.h index a4d971b010..3fab19a942 100644 --- a/common/include/Utilities/PageFaultSource.h +++ b/common/include/Utilities/PageFaultSource.h @@ -52,12 +52,12 @@ public: OnPageFaultEvent( evtinfo, handled ); } - virtual void DispatchEvent( const PageFaultInfo& evtinfo ) + virtual void DispatchEvent( const PageFaultInfo& ) { pxFailRel( "Don't call me, damnit. Use DispatchException instead." ); } - virtual void OnPageFaultEvent( const PageFaultInfo& evtinfo, bool& handled ) {} + virtual void OnPageFaultEvent( const PageFaultInfo& , bool& ) {} }; // -------------------------------------------------------------------------------------- diff --git a/common/include/Utilities/PersistentThread.h b/common/include/Utilities/PersistentThread.h index 7abc454549..c4de3dd4d4 100644 --- a/common/include/Utilities/PersistentThread.h +++ b/common/include/Utilities/PersistentThread.h @@ -44,7 +44,7 @@ namespace Threading void SetThread( pxThread& thr ) { m_thread = &thr; } void SetThread( pxThread* thr ) { m_thread = thr; } - void DispatchEvent( const int& params ) + void DispatchEvent( const int& ) { OnThreadCleanup(); } diff --git a/common/include/Utilities/SafeArray.h b/common/include/Utilities/SafeArray.h index 96c373cb26..1e46d299bc 100644 --- a/common/include/Utilities/SafeArray.h +++ b/common/include/Utilities/SafeArray.h @@ -92,8 +92,8 @@ public: // Gets a pointer to the element directly after the last element in the array. // This is equivalent to doing GetPtr(GetLength()), except that this call *avoids* // the out-of-bounds assertion check that typically occurs when you do that. :) - T* GetPtrEnd( uint idx=0 ) { return &m_ptr[m_size]; } - const T* GetPtrEnd( uint idx=0 ) const { return &m_ptr[m_size]; } + T* GetPtrEnd() { return &m_ptr[m_size]; } + const T* GetPtrEnd() const { return &m_ptr[m_size]; } // Gets an element of this memory allocation much as if it were an array. // DevBuilds : Generates assertion if the index is invalid. diff --git a/common/include/Utilities/TraceLog.h b/common/include/Utilities/TraceLog.h index 021be06e04..cbdf963007 100644 --- a/common/include/Utilities/TraceLog.h +++ b/common/include/Utilities/TraceLog.h @@ -143,7 +143,7 @@ public: return false; } - virtual void ApplyPrefix( FastFormatAscii& ascii ) const {} + virtual void ApplyPrefix( FastFormatAscii& ) const {} virtual void DoWrite( const char* fmt ) const=0; }; diff --git a/common/include/Utilities/wxGuiTools.h b/common/include/Utilities/wxGuiTools.h index 949d123b2e..d1e7430b99 100644 --- a/common/include/Utilities/wxGuiTools.h +++ b/common/include/Utilities/wxGuiTools.h @@ -91,7 +91,7 @@ struct pxAlignmentType return Apply().Border( dir, padding ); } - wxSizerFlags Proportion( int prop ) const + wxSizerFlags Proportion() const { return Apply().Proportion( intval ); } @@ -127,7 +127,7 @@ struct pxStretchType return Apply().Border( dir, padding ); } - wxSizerFlags Proportion( int prop ) const + wxSizerFlags Proportion() const { return Apply().Proportion( intval ); } @@ -438,7 +438,7 @@ public: // NOTE: Enabling system menu on dialogs usually doesn't work, and might cause // other unwanted behavior, such as a missing close button. - pxDialogCreationFlags SystemMenu( bool enable=true ) const + pxDialogCreationFlags SystemMenu( bool =true ) const { return pxDialogCreationFlags(*this).SetSystemMenu( false ); } @@ -648,7 +648,7 @@ public: protected: // line may be empty - virtual void OnOutputLine(const wxString& line) { } + virtual void OnOutputLine(const wxString&) { } // called at the start of every new line (except the very first one) virtual void OnNewLine() { } diff --git a/pcsx2/Gif_Unit.h b/pcsx2/Gif_Unit.h index f44c747ce0..5f6664047b 100644 --- a/pcsx2/Gif_Unit.h +++ b/pcsx2/Gif_Unit.h @@ -648,6 +648,7 @@ struct Gif_Unit { } void PrintPathInfo(GIF_PATH path) { + (void)path; // avoid silly warning GUNIT_LOG("Gif Path %d - [hasData = %d][state = %d]", path, gifPath[path].hasDataRemaining(), gifPath[path].state); } diff --git a/pcsx2/HwRead.cpp b/pcsx2/HwRead.cpp index a03a7ea067..8dc6dec5f7 100644 --- a/pcsx2/HwRead.cpp +++ b/pcsx2/HwRead.cpp @@ -177,6 +177,7 @@ mem32_t __fastcall _hwRead32(u32 mem) } } break; + default: break; } //Hack for Transformers and Test Drive Unlimited to simulate filling the VIF FIFO //It actually stalls VIF a few QW before the end of the transfer, so we need to pretend its all gone @@ -302,6 +303,7 @@ static void _hwRead64(u32 mem, mem64_t* result ) } } return; + default: break; } *result = _hwRead32( mem ); diff --git a/pcsx2/HwWrite.cpp b/pcsx2/HwWrite.cpp index e11b5e2af4..cf2716f71e 100644 --- a/pcsx2/HwWrite.cpp +++ b/pcsx2/HwWrite.cpp @@ -425,6 +425,8 @@ void __fastcall _hwWrite128(u32 mem, const mem128_t* srcval) } return; + + default: break; } // All upper bits of all non-FIFO 128-bit HW writes are almost certainly disregarded. --air diff --git a/pcsx2/IopBios.h b/pcsx2/IopBios.h index b8d3dece5e..7b97a8ecab 100644 --- a/pcsx2/IopBios.h +++ b/pcsx2/IopBios.h @@ -42,9 +42,9 @@ public: virtual void close() = 0; - virtual int lseek(s32 offset, s32 whence) { return -IOP_EIO; } - virtual int read(void *buf, u32 count) { return -IOP_EIO; } - virtual int write(void *buf, u32 count) { return -IOP_EIO; } + virtual int lseek(s32 , s32 ) { return -IOP_EIO; } + virtual int read(void *, u32 ) { return -IOP_EIO; } + virtual int write(void *, u32 ) { return -IOP_EIO; } }; class IOManDir { diff --git a/pcsx2/Memory.cpp b/pcsx2/Memory.cpp index bcae88394c..a9ffe7b2ab 100644 --- a/pcsx2/Memory.cpp +++ b/pcsx2/Memory.cpp @@ -262,6 +262,7 @@ static mem8_t __fastcall _ext_memRead8 (u32 mem) Console.WriteLn("DEV9 read8 %8.8lx: %2.2lx", mem & ~0xa4000000, retval); return retval; } + default: break; } MEM_LOG("Unknown Memory Read8 from address %8.8x", mem); @@ -291,6 +292,8 @@ static mem16_t __fastcall _ext_memRead16(u32 mem) case 8: // spu2 return SPU2read(mem); + + default: break; } MEM_LOG("Unknown Memory read16 from address %8.8x", mem); cpuTlbMissR(mem, cpuRegs.branch); @@ -310,6 +313,7 @@ static mem32_t __fastcall _ext_memRead32(u32 mem) Console.WriteLn("DEV9 read32 %8.8lx: %8.8lx", mem & ~0xa4000000, retval); return retval; } + default: break; } MEM_LOG("Unknown Memory read32 from address %8.8x (Status=%8.8x)", mem, cpuRegs.CP0.n.Status.val); @@ -324,6 +328,7 @@ static void __fastcall _ext_memRead64(u32 mem, mem64_t *out) { case 6: // gsm *out = gsRead64(mem); return; + default: break; } MEM_LOG("Unknown Memory read64 from address %8.8x", mem); @@ -340,6 +345,7 @@ static void __fastcall _ext_memRead128(u32 mem, mem128_t *out) case 6: // gsm CopyQWC(out,PS2GS_BASE(mem)); return; + default: break; } MEM_LOG("Unknown Memory read128 from address %8.8x", mem); @@ -358,6 +364,7 @@ static void __fastcall _ext_memWrite8 (u32 mem, mem8_t value) DEV9write8(mem & ~0xa4000000, value); Console.WriteLn("DEV9 write8 %8.8lx: %2.2lx", mem & ~0xa4000000, value); return; + default: break; } MEM_LOG("Unknown Memory write8 to address %x with data %2.2x", mem, value); @@ -379,6 +386,7 @@ static void __fastcall _ext_memWrite16(u32 mem, mem16_t value) return; case 8: // spu2 SPU2write(mem, value); return; + default: break; } MEM_LOG("Unknown Memory write16 to address %x with data %4.4x", mem, value); cpuTlbMissW(mem, cpuRegs.branch); @@ -394,6 +402,7 @@ static void __fastcall _ext_memWrite32(u32 mem, mem32_t value) DEV9write32(mem & ~0xa4000000, value); Console.WriteLn("DEV9 write32 %8.8lx: %8.8lx", mem & ~0xa4000000, value); return; + default: break; } MEM_LOG("Unknown Memory write32 to address %x with data %8.8x", mem, value); cpuTlbMissW(mem, cpuRegs.branch); diff --git a/pcsx2/System/SysThreads.h b/pcsx2/System/SysThreads.h index 853ad4d735..f786a5319f 100644 --- a/pcsx2/System/SysThreads.h +++ b/pcsx2/System/SysThreads.h @@ -236,7 +236,7 @@ public: IEventListener_SysState() {} virtual ~IEventListener_SysState() throw() {} - virtual void DispatchEvent( const SysStateUnlockedParams& status ) + virtual void DispatchEvent( const SysStateUnlockedParams& ) { SysStateAction_OnUnlocked(); } diff --git a/pcsx2/VUmicro.h b/pcsx2/VUmicro.h index 097231ab2c..5ddb7719b5 100644 --- a/pcsx2/VUmicro.h +++ b/pcsx2/VUmicro.h @@ -177,10 +177,10 @@ public: void Step(); void Execute(u32 cycles); - void Clear(u32 addr, u32 size) {} + void Clear(u32 , u32 ) {} uint GetCacheReserve() const { return 0; } - void SetCacheReserve( uint reserveInMegs ) const {} + void SetCacheReserve( uint ) const {} }; class InterpVU1 : public BaseVUmicroCPU @@ -198,11 +198,11 @@ public: void Step(); void Execute(u32 cycles); - void Clear(u32 addr, u32 size) {} + void Clear(u32 , u32 ) {} void ResumeXGkick() {} uint GetCacheReserve() const { return 0; } - void SetCacheReserve( uint reserveInMegs ) const {} + void SetCacheReserve( uint ) const {} }; // -------------------------------------------------------------------------------------- From 76796c76cd65ec41f924f172460928063edaa0f9 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 4 Jul 2014 21:50:18 -0400 Subject: [PATCH 10/13] ZeroGS: Fix a sprintf typo in GSopen. This 1000 millisecond specifier was intended for the AddMessage call. --- plugins/zerogs/dx/GSmain.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/zerogs/dx/GSmain.cpp b/plugins/zerogs/dx/GSmain.cpp index 90031c1c8e..33e03afe34 100644 --- a/plugins/zerogs/dx/GSmain.cpp +++ b/plugins/zerogs/dx/GSmain.cpp @@ -417,8 +417,8 @@ s32 CALLBACK GSopen(void *pDsp, char *Title, int multithread) { } if( conf.aa ) { char strtitle[64]; - sprintf(strtitle, "anti-aliasing - %s", s_aa[conf.aa], 1000); - ZeroGS::AddMessage(strtitle); + sprintf(strtitle, "anti-aliasing - %s", s_aa[conf.aa]); + ZeroGS::AddMessage(strtitle, 1000); } if( conf.options & GSOPTION_WIDESCREEN ) { ZeroGS::AddMessage("16:9 widescreen - on", 1000); From 35979bb5a6bd54ff5335ca00de881e597afaef23 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 5 Jul 2014 05:09:17 -0500 Subject: [PATCH 11/13] Add a CMake compile time option for building a 64bit binary. By default the cmake build will still cross compile a 32bit binary and spout a message about it if not enabled. This doesn't fix the 64bit build issues, just makes it easier for someone to test 64bit builds in the future. Look towards a bright future instead of a dark and gloomy past --- CMakeLists.txt | 32 ++++++++++++++++++++++---------- cmake/BuildParameters.cmake | 6 +++++- cmake/SearchForStuff.cmake | 2 +- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fbb8ec18e5..b1506a164c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,6 @@ +# CMake options +option(64BIT_BUILD "Enable a x86_64 build instead of cross compiling (developer option)" OFF) + # Project Name project(Pcsx2) @@ -40,6 +43,16 @@ if(POLICY CMP0022) cmake_policy(SET CMP0022 OLD) endif() +# Architecture bitness detection +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(_ARCH_64 1) + add_definitions(-D_ARCH_64=1) +else() + set(_ARCH_32 1) + add_definitions(-D_ARCH_32=1) +endif() + + # Variable to check that people use the good file set(TOP_CMAKE_WAS_SOURCED TRUE) @@ -47,17 +60,18 @@ set(TOP_CMAKE_WAS_SOURCED TRUE) # It would avoid compilation failure later. # Note: disable the failure in package mode if(NOT PACKAGE_MODE) - if(CMAKE_SIZEOF_VOID_P MATCHES "8") + if(_ARCH_64 AND !64BIT_BUILD) message(WARNING " PCSX2 does not support a 64-bits environment and has no plan to support a 64-bits architecture in the future. It would need a complete rewrite of the core emulator and a lot of time. You can still run a 32-bits binary if you install all 32-bits libraries (runtime and dev).") - endif(CMAKE_SIZEOF_VOID_P MATCHES "8") + endif() endif(NOT PACKAGE_MODE) -# 64 bits specific configuration -if(CMAKE_SIZEOF_VOID_P MATCHES "8") +# 64 bits cross-compile specific configuration +if(_ARCH_64 AND !64BIT_BUILD) + message("Compiling 32bit build on 64bit architecture") # Do not search library in /usr/lib64 SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF) # Probably useless but it will not harm @@ -67,14 +81,12 @@ if(CMAKE_SIZEOF_VOID_P MATCHES "8") if(EXISTS "/usr/lib32") set(CMAKE_LIBRARY_ARCHITECTURE "../lib32") endif() -endif(CMAKE_SIZEOF_VOID_P MATCHES "8") - -# Debian/ubuntu drop /usr/lib32 and move /usr/lib to /usr/lib/i386-linux-gnu -if(EXISTS "/usr/lib/i386-linux-gnu") - set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu") + # Debian/ubuntu drop /usr/lib32 and move /usr/lib to /usr/lib/i386-linux-gnu + if(EXISTS "/usr/lib/i386-linux-gnu") + set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu") + endif() endif() - # * -fPIC option was removed for multiple reasons. # - Code only supports the x86 architecture. # - code uses the ebx register so it's not compliant with PIC. diff --git a/cmake/BuildParameters.cmake b/cmake/BuildParameters.cmake index babff484c4..2b20c683d9 100644 --- a/cmake/BuildParameters.cmake +++ b/cmake/BuildParameters.cmake @@ -98,7 +98,11 @@ set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") # -Wno-unused-function: warn for function not used in release build set(DEFAULT_WARNINGS "-Wno-attributes -Wstrict-aliasing -Wno-missing-field-initializers -Wno-unused-function") set(HARDEING_OPT "-D_FORTIFY_SOURCE=2 -Wformat -Wformat-security") -set(DEFAULT_GCC_FLAG "-m32 -msse -msse2 -march=i686 -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}") +if(_ARCH_64 AND !64BIT_BUILD) + set(DEFAULT_GCC_FLAG "-m32 -msse -msse2 -march=i686 -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}") +else() + set(DEFAULT_GCC_FLAG "-msse -msse2 -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}") +endif() if(CMAKE_BUILD_TYPE MATCHES "Debug|Devel") set(DEFAULT_GCC_FLAG "-g ${DEFAULT_GCC_FLAG}") endif() diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index b3cfc7580b..253ce1cdec 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -143,7 +143,7 @@ if(wxWidgets_FOUND) if(Linux) # Force the use of 32 bit library configuration on # 64 bits machine with 32 bits library in /usr/lib32 - if(CMAKE_SIZEOF_VOID_P MATCHES "8") + if(_ARCH_64 AND !64BIT_BUILD) ## There is no guarantee that wx-config is a link to a 32 bits library. So you need to force the destinity # Library can go into 3 path major paths (+ multiarch but you will see that later when implementation is done) # 1/ /usr/lib32 (32 bits only) From e8b35326585d8b192d2c72903337fd6717f65a79 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sat, 5 Jul 2014 14:54:56 +0200 Subject: [PATCH 12/13] cmake: clean main file and option Move build configuration from CMakeLists to cmake/BuildParameters.cmake where it belongs Use option syntax for on/off option Complete a bit previous commit to force all 64bits path detections (likely done by cmake) --- CMakeLists.txt | 64 ----------- cmake/BuildParameters.cmake | 206 +++++++++++++++++++----------------- cmake/SearchForStuff.cmake | 15 +++ 3 files changed, 122 insertions(+), 163 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b1506a164c..bc777e2c6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,3 @@ -# CMake options -option(64BIT_BUILD "Enable a x86_64 build instead of cross compiling (developer option)" OFF) - # Project Name project(Pcsx2) @@ -43,57 +40,9 @@ if(POLICY CMP0022) cmake_policy(SET CMP0022 OLD) endif() -# Architecture bitness detection -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(_ARCH_64 1) - add_definitions(-D_ARCH_64=1) -else() - set(_ARCH_32 1) - add_definitions(-D_ARCH_32=1) -endif() - - # Variable to check that people use the good file set(TOP_CMAKE_WAS_SOURCED TRUE) -# Print a clear message that 64bits is not supported -# It would avoid compilation failure later. -# Note: disable the failure in package mode -if(NOT PACKAGE_MODE) - if(_ARCH_64 AND !64BIT_BUILD) - message(WARNING " - PCSX2 does not support a 64-bits environment and has no plan to support a 64-bits architecture in the future. - It would need a complete rewrite of the core emulator and a lot of time. - - You can still run a 32-bits binary if you install all 32-bits libraries (runtime and dev).") - endif() -endif(NOT PACKAGE_MODE) - -# 64 bits cross-compile specific configuration -if(_ARCH_64 AND !64BIT_BUILD) - message("Compiling 32bit build on 64bit architecture") - # Do not search library in /usr/lib64 - SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF) - # Probably useless but it will not harm - SET_PROPERTY(GLOBAL PROPERTY COMPILE_DEFINITIONS "-m32") - - # Force the search on 32-bits path. - if(EXISTS "/usr/lib32") - set(CMAKE_LIBRARY_ARCHITECTURE "../lib32") - endif() - # Debian/ubuntu drop /usr/lib32 and move /usr/lib to /usr/lib/i386-linux-gnu - if(EXISTS "/usr/lib/i386-linux-gnu") - set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu") - endif() -endif() - -# * -fPIC option was removed for multiple reasons. -# - Code only supports the x86 architecture. -# - code uses the ebx register so it's not compliant with PIC. -# - Impacts the performance too much. -# - Only plugins. No package will link to them. -set(CMAKE_POSITION_INDEPENDENT_CODE OFF) - # set module path set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) @@ -115,19 +64,6 @@ include(SelectPcsx2Plugins) # Must be done after SearchForStuff write_svnrev_h() -# add additional project-wide include directories -include_directories(${CMAKE_SOURCE_DIR}/common/include - ${CMAKE_SOURCE_DIR}/common/include/Utilities - ${CMAKE_SOURCE_DIR}/common/include/x86emitter - # File generated by Cmake - ${CMAKE_BINARY_DIR}/common/include - # WORKAROUND Some issue with multiarch on Debian/Ubuntu - /usr/include/i386-linux-gnu - # WORKAROUND Clang integration issue with multiarch on Debian - #/usr/include/i386-linux-gnu/c++ - #/usr/include/i386-linux-gnu/c++/4.8 - ) - # make the translation if(EXISTS "${CMAKE_SOURCE_DIR}/locales") add_subdirectory(locales) diff --git a/cmake/BuildParameters.cmake b/cmake/BuildParameters.cmake index 2b20c683d9..54c6aa75fa 100644 --- a/cmake/BuildParameters.cmake +++ b/cmake/BuildParameters.cmake @@ -1,16 +1,10 @@ -### TODO +### TODO # Hardcode GAMEINDEX_DIR, if default is fine for everybody ### Select the build type # Use Release/Devel/Debug : -DCMAKE_BUILD_TYPE=Release|Devel|Debug # Enable/disable the stripping : -DCMAKE_BUILD_STRIP=TRUE|FALSE # generation .po based on src : -DCMAKE_BUILD_PO=TRUE|FALSE -# Rebuild the ps2hw.dat file : -DREBUILD_SHADER=TRUE -# Build the Replay Loaders : -DBUILD_REPLAY_LOADERS=TRUE|FALSE -# Use GLSL API(else NVIDIA_CG): -DGLSL_API=TRUE|FALSE -# Use EGL (vs GLX) : -DEGL_API=TRUE|FALSE -# Use SDL2 : -DSDL2_API=TRUE|FALSE -# Build all plugins : -DEXTRA_PLUGINS=TRUE|FALSE ### GCC optimization options # control C flags : -DUSER_CMAKE_C_FLAGS="cflags" @@ -18,13 +12,110 @@ # control link flags : -DUSER_CMAKE_LD_FLAGS="ldflags" ### Packaging options -# Installation path : -DPACKAGE_MODE=TRUE(follow FHS)|FALSE(local bin/) # Plugin installation path : -DPLUGIN_DIR="/usr/lib/pcsx2" # GL Shader installation path : -DGLSL_SHADER_DIR="/usr/share/games/pcsx2" # Game DB installation path : -DGAMEINDEX_DIR="/usr/share/games/pcsx2" -# Follow XDG standard : -DXDG_STD=TRUE|FALSE #------------------------------------------------------------------------------- +#------------------------------------------------------------------------------- +# Graphical option +#------------------------------------------------------------------------------- +option(GLSL_API "Replace zzogl CG backend by GLSL (experimental option)") +option(EGL_API "Use EGL on zzogl (experimental/developer option)") +option(GLES_API "Use GLES on GSdx (experimental/developer option)") +option(REBUILD_SHADER "Rebuild glsl/cg shader (developer option)") +option(BUILD_REPLAY_LOADERS "Build GS replayer to ease testing (developer option)") + +#------------------------------------------------------------------------------- +# Path and lib option +#------------------------------------------------------------------------------- +option(PACKAGE_MODE "Use this option to ease packaging of PCSX2 (developer/distribution option)") +option(XDG_STD "Use XDG standard path instead of the standard PCSX2 path") +option(EXTRA_PLUGINS "Build various 'extra' plugins") +# FIXME do a proper detection +set(SDL2_LIBRARY "-lSDL2") +option(SDL2_LIBRARY "Use SDL2 on spu2x and onepad") + +if(PACKAGE_MODE) + if(NOT DEFINED PLUGIN_DIR) + set(PLUGIN_DIR "${CMAKE_INSTALL_PREFIX}/lib/games/pcsx2") + endif(NOT DEFINED PLUGIN_DIR) + + if(NOT DEFINED GAMEINDEX_DIR) + set(GAMEINDEX_DIR "${CMAKE_INSTALL_PREFIX}/share/games/pcsx2") + endif(NOT DEFINED GAMEINDEX_DIR) + + # Compile all source codes with these 2 defines + add_definitions(-DPLUGIN_DIR_COMPILATION=${PLUGIN_DIR} -DGAMEINDEX_DIR_COMPILATION=${GAMEINDEX_DIR}) +endif(PACKAGE_MODE) + +#------------------------------------------------------------------------------- +# Select the architecture +#------------------------------------------------------------------------------- +option(64BIT_BUILD "Enable a x86_64 build instead of cross compiling (developer option)" OFF) + +# Architecture bitness detection +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(_ARCH_64 1) +else() + set(_ARCH_32 1) +endif() + +# Print a clear message that 64bits is not supported +if(_ARCH_64) + message(WARNING " + PCSX2 does not support a 64-bits environment and has no plan to support a 64-bits architecture in the future. + It would need a complete rewrite of the core emulator and a lot of time. + + You can still run a 32-bits binary if you install all 32-bits libraries (runtime and dev).") +endif() + +# 64 bits cross-compile specific configuration +if(_ARCH_64 AND 64BIT_BUILD) + message("Compiling 64bit build on 64bit architecture") + # Search library in /usr/lib64 + SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON) + # Probably useless but it will not harm + SET_PROPERTY(GLOBAL PROPERTY COMPILE_DEFINITIONS "-m64") + + # Force the search on 64-bits path. + if(EXISTS "/usr/lib64") + set(CMAKE_LIBRARY_ARCHITECTURE "../lib64") + endif() + # For Debian/ubuntu multiarch + if(EXISTS "/usr/lib/x86_64-linux-gnu") + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + endif() + + set(ARCH_FLAG "-m64 -msse -msse2 -march=pentium4") + add_definitions(-D_ARCH_64=1) +else() + message("Compiling 32bit build on 32/64bit architecture") + # Do not search library in /usr/lib64 + SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF) + # Probably useless but it will not harm + SET_PROPERTY(GLOBAL PROPERTY COMPILE_DEFINITIONS "-m32") + + # Force the search on 32-bits path. + if(EXISTS "/usr/lib32") + set(CMAKE_LIBRARY_ARCHITECTURE "../lib32") + endif() + # Debian/ubuntu drop /usr/lib32 and move /usr/lib to /usr/lib/i386-linux-gnu + if(EXISTS "/usr/lib/i386-linux-gnu") + set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu") + endif() + + set(ARCH_FLAG "-m32 -msse -msse2 -march=i686") + add_definitions(-D_ARCH_32=1) +endif() + +# * -fPIC option was removed for multiple reasons. +# - Code only supports the x86 architecture. +# - code uses the ebx register so it's not compliant with PIC. +# - Impacts the performance too much. +# - Only plugins. No package will link to them. +set(CMAKE_POSITION_INDEPENDENT_CODE OFF) + #------------------------------------------------------------------------------- # if no build type is set, use Devel as default # Note without the CMAKE_BUILD_TYPE options the value is still defined to "" @@ -35,7 +126,7 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "Debug|Devel|Release") message(STATUS "BuildType set to ${CMAKE_BUILD_TYPE} by default") endif(NOT CMAKE_BUILD_TYPE MATCHES "Debug|Devel|Release") -# Initially stip was disabled on release build but it is not stackstrace friendly! +# Initially strip was disabled on release build but it is not stackstrace friendly! # It only cost several MB so disbable it by default if(NOT DEFINED CMAKE_BUILD_STRIP) set(CMAKE_BUILD_STRIP FALSE) @@ -51,6 +142,7 @@ if(NOT DEFINED CMAKE_BUILD_PO) endif(CMAKE_BUILD_TYPE STREQUAL "Release") endif(NOT DEFINED CMAKE_BUILD_PO) + #------------------------------------------------------------------------------- # Control GCC flags #------------------------------------------------------------------------------- @@ -58,7 +150,7 @@ endif(NOT DEFINED CMAKE_BUILD_PO) ### Here the list of default value for documentation purpose # ${CMAKE_SHARED_LIBRARY_CXX_FLAGS} = "-fPIC" # ${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} = "-rdynamic" -# +# # ${CMAKE_C_FLAGS} = "-g -O2" # ${CMAKE_CXX_FLAGS} = "-g -O2" # Use in debug mode @@ -91,18 +183,13 @@ set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "") #------------------------------------------------------------------------------- # Set some default compiler flags #------------------------------------------------------------------------------- -#set(DEFAULT_WARNINGS "-Wno-write-strings -Wno-format -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-parentheses") # -Wno-attributes: "always_inline function might not be inlinable" <= real spam (thousand of warnings!!!) # -Wstrict-aliasing: to fix one day aliasing issue # -Wno-missing-field-initializers: standard allow to init only the begin of struct/array in static init. Just a silly warning. # -Wno-unused-function: warn for function not used in release build set(DEFAULT_WARNINGS "-Wno-attributes -Wstrict-aliasing -Wno-missing-field-initializers -Wno-unused-function") set(HARDEING_OPT "-D_FORTIFY_SOURCE=2 -Wformat -Wformat-security") -if(_ARCH_64 AND !64BIT_BUILD) - set(DEFAULT_GCC_FLAG "-m32 -msse -msse2 -march=i686 -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}") -else() - set(DEFAULT_GCC_FLAG "-msse -msse2 -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}") -endif() +set(DEFAULT_GCC_FLAG "${ARCH_FLAG} -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}") if(CMAKE_BUILD_TYPE MATCHES "Debug|Devel") set(DEFAULT_GCC_FLAG "-g ${DEFAULT_GCC_FLAG}") endif() @@ -113,6 +200,7 @@ set(DEFAULT_CPP_FLAG "${DEFAULT_GCC_FLAG} -Wno-invalid-offsetof") # Note: string STRIP must be used to remove trailing and leading spaces. # See policy CMP0004 #------------------------------------------------------------------------------- +# TODO: once we completely clean all flags management, this mess could be cleaned ;) ### linker flags if(DEFINED USER_CMAKE_LD_FLAGS) message(STATUS "Pcsx2 is very sensible with gcc flags, so use USER_CMAKE_LD_FLAGS at your own risk !!!") @@ -122,9 +210,9 @@ else(DEFINED USER_CMAKE_LD_FLAGS) endif(DEFINED USER_CMAKE_LD_FLAGS) # ask the linker to strip the binary -if(CMAKE_BUILD_STRIP) +if(CMAKE_BUILD_STRIP) string(STRIP "${USER_CMAKE_LD_FLAGS} -s" USER_CMAKE_LD_FLAGS) -endif(CMAKE_BUILD_STRIP) +endif(CMAKE_BUILD_STRIP) ### c flags @@ -147,83 +235,3 @@ if(DEFINED USER_CMAKE_CXX_FLAGS) endif(DEFINED USER_CMAKE_CXX_FLAGS) # Use some default machine flags string(STRIP "${CMAKE_CXX_FLAGS} ${DEFAULT_CPP_FLAG}" CMAKE_CXX_FLAGS) - -#------------------------------------------------------------------------------- -# Default package option -#------------------------------------------------------------------------------- -if(NOT DEFINED PACKAGE_MODE) - set(PACKAGE_MODE FALSE) -endif(NOT DEFINED PACKAGE_MODE) - -if(PACKAGE_MODE) - if(NOT DEFINED PLUGIN_DIR) - set(PLUGIN_DIR "${CMAKE_INSTALL_PREFIX}/lib/games/pcsx2") - endif(NOT DEFINED PLUGIN_DIR) - - if(NOT DEFINED GAMEINDEX_DIR) - set(GAMEINDEX_DIR "${CMAKE_INSTALL_PREFIX}/share/games/pcsx2") - endif(NOT DEFINED GAMEINDEX_DIR) - - # Compile all source codes with these 3 defines - add_definitions(-DPLUGIN_DIR_COMPILATION=${PLUGIN_DIR} -DGAMEINDEX_DIR_COMPILATION=${GAMEINDEX_DIR}) -endif(PACKAGE_MODE) - -#------------------------------------------------------------------------------- -# Select nvidia cg shader api by default (zzogl only) -#------------------------------------------------------------------------------- -if(NOT DEFINED GLSL_API) - set(GLSL_API FALSE) -endif(NOT DEFINED GLSL_API) - -#------------------------------------------------------------------------------- -# Select GLX API by default (zzogl only) -#------------------------------------------------------------------------------- -if(NOT DEFINED EGL_API) - set(EGL_API FALSE) -else() - message(STATUS "EGL is experimental and not expected to work yet!!!") -endif() - -#------------------------------------------------------------------------------- -# Select opengl api by default (gsdx) -#------------------------------------------------------------------------------- -if(NOT DEFINED GLES_API) - set(GLES_API FALSE) -endif() - -#------------------------------------------------------------------------------- -# Select SDL1 by default (spu2x and onepad) -#------------------------------------------------------------------------------- -# FIXME do a proper detection -set(SDL2_LIBRARY "-lSDL2") -if(NOT DEFINED SDL2_API) - set(SDL2_API FALSE) -endif() - -#------------------------------------------------------------------------------- -# Use the precompiled shader file by default (both zzogl&gsdx) -#------------------------------------------------------------------------------- -if(NOT DEFINED REBUILD_SHADER) - set(REBUILD_SHADER FALSE) -endif(NOT DEFINED REBUILD_SHADER) - -#------------------------------------------------------------------------------- -# Build the replay loaders by default -#------------------------------------------------------------------------------- -if(NOT DEFINED BUILD_REPLAY_LOADERS) - set(BUILD_REPLAY_LOADERS TRUE) -endif(NOT DEFINED BUILD_REPLAY_LOADERS) - -#------------------------------------------------------------------------------- -# Use PCSX2 default path (not XDG) -#------------------------------------------------------------------------------- -if (NOT DEFINED XDG_STD) - set(XDG_STD FALSE) -endif (NOT DEFINED XDG_STD) - -#------------------------------------------------------------------------------- -# Use only main plugin (faster compilation time) -#------------------------------------------------------------------------------- -if (NOT DEFINED EXTRA_PLUGINS) - set(EXTRA_PLUGINS FALSE) -endif() diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index 253ce1cdec..ae6c055511 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -181,3 +181,18 @@ endif() if(ZLIB_FOUND) include_directories(${ZLIB_INCLUDE_DIRS}) endif() + +#---------------------------------------- +# Use project-wide include directories +#---------------------------------------- +include_directories(${CMAKE_SOURCE_DIR}/common/include + ${CMAKE_SOURCE_DIR}/common/include/Utilities + ${CMAKE_SOURCE_DIR}/common/include/x86emitter + # File generated by Cmake + ${CMAKE_BINARY_DIR}/common/include + # WORKAROUND Some issue with multiarch on Debian/Ubuntu + /usr/include/i386-linux-gnu + # WORKAROUND Clang integration issue with multiarch on Debian + #/usr/include/i386-linux-gnu/c++ + #/usr/include/i386-linux-gnu/c++/4.8 + ) From 1dba4aceca2359ffd2abc6b30f53fda81c324808 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sat, 5 Jul 2014 15:08:39 +0200 Subject: [PATCH 13/13] cmake: reduce a bit cmake syntax cluttering --- cmake/BuildParameters.cmake | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/cmake/BuildParameters.cmake b/cmake/BuildParameters.cmake index 54c6aa75fa..29859a1aed 100644 --- a/cmake/BuildParameters.cmake +++ b/cmake/BuildParameters.cmake @@ -78,10 +78,8 @@ if(_ARCH_64 AND 64BIT_BUILD) # Probably useless but it will not harm SET_PROPERTY(GLOBAL PROPERTY COMPILE_DEFINITIONS "-m64") - # Force the search on 64-bits path. - if(EXISTS "/usr/lib64") - set(CMAKE_LIBRARY_ARCHITECTURE "../lib64") - endif() + # Note: /usr/lib64 is already taken care above + # For Debian/ubuntu multiarch if(EXISTS "/usr/lib/x86_64-linux-gnu") set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") @@ -128,19 +126,17 @@ endif(NOT CMAKE_BUILD_TYPE MATCHES "Debug|Devel|Release") # Initially strip was disabled on release build but it is not stackstrace friendly! # It only cost several MB so disbable it by default -if(NOT DEFINED CMAKE_BUILD_STRIP) - set(CMAKE_BUILD_STRIP FALSE) -endif(NOT DEFINED CMAKE_BUILD_STRIP) +option(CMAKE_BUILD_STRIP "Srip binaries to save a couple of MB (developer option)") if(NOT DEFINED CMAKE_BUILD_PO) if(CMAKE_BUILD_TYPE STREQUAL "Release") set(CMAKE_BUILD_PO TRUE) message(STATUS "Enable the building of po files by default in ${CMAKE_BUILD_TYPE} build !!!") - else(CMAKE_BUILD_TYPE STREQUAL "Release") + else() set(CMAKE_BUILD_PO FALSE) message(STATUS "Disable the building of po files by default in ${CMAKE_BUILD_TYPE} build !!!") - endif(CMAKE_BUILD_TYPE STREQUAL "Release") -endif(NOT DEFINED CMAKE_BUILD_PO) + endif() +endif() #------------------------------------------------------------------------------- @@ -193,6 +189,7 @@ set(DEFAULT_GCC_FLAG "${ARCH_FLAG} -pthread ${DEFAULT_WARNINGS} ${HARDEING_OPT}" if(CMAKE_BUILD_TYPE MATCHES "Debug|Devel") set(DEFAULT_GCC_FLAG "-g ${DEFAULT_GCC_FLAG}") endif() +# c++ only flags set(DEFAULT_CPP_FLAG "${DEFAULT_GCC_FLAG} -Wno-invalid-offsetof") #------------------------------------------------------------------------------- @@ -205,14 +202,14 @@ set(DEFAULT_CPP_FLAG "${DEFAULT_GCC_FLAG} -Wno-invalid-offsetof") if(DEFINED USER_CMAKE_LD_FLAGS) message(STATUS "Pcsx2 is very sensible with gcc flags, so use USER_CMAKE_LD_FLAGS at your own risk !!!") string(STRIP "${USER_CMAKE_LD_FLAGS}" USER_CMAKE_LD_FLAGS) -else(DEFINED USER_CMAKE_LD_FLAGS) +else() set(USER_CMAKE_LD_FLAGS "") -endif(DEFINED USER_CMAKE_LD_FLAGS) +endif() # ask the linker to strip the binary if(CMAKE_BUILD_STRIP) string(STRIP "${USER_CMAKE_LD_FLAGS} -s" USER_CMAKE_LD_FLAGS) -endif(CMAKE_BUILD_STRIP) +endif() ### c flags @@ -221,7 +218,7 @@ endif(CMAKE_BUILD_STRIP) if(DEFINED USER_CMAKE_C_FLAGS) message(STATUS "Pcsx2 is very sensible with gcc flags, so use USER_CMAKE_C_FLAGS at your own risk !!!") string(STRIP "${USER_CMAKE_C_FLAGS}" CMAKE_C_FLAGS) -endif(DEFINED USER_CMAKE_C_FLAGS) +endif() # Use some default machine flags string(STRIP "${CMAKE_C_FLAGS} ${DEFAULT_GCC_FLAG}" CMAKE_C_FLAGS) @@ -232,6 +229,6 @@ string(STRIP "${CMAKE_C_FLAGS} ${DEFAULT_GCC_FLAG}" CMAKE_C_FLAGS) if(DEFINED USER_CMAKE_CXX_FLAGS) message(STATUS "Pcsx2 is very sensible with gcc flags, so use USER_CMAKE_CXX_FLAGS at your own risk !!!") string(STRIP "${USER_CMAKE_CXX_FLAGS}" CMAKE_CXX_FLAGS) -endif(DEFINED USER_CMAKE_CXX_FLAGS) +endif() # Use some default machine flags string(STRIP "${CMAKE_CXX_FLAGS} ${DEFAULT_CPP_FLAG}" CMAKE_CXX_FLAGS)