Editing PS2 Emulation

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 4: Line 4:


* Ace Combat 5: The Unsung War. Available as a "PS2 Classics" as part of the "Pre-Order-Bonus" for "Ace Combat 7: Skies Unknown" (PS4) only (not available separately).
* Ace Combat 5: The Unsung War. Available as a "PS2 Classics" as part of the "Pre-Order-Bonus" for "Ace Combat 7: Skies Unknown" (PS4) only (not available separately).
* ADK DAMASHII™ UP0576-CUSA03783_00-SLPS259060000001 "2017-02-24"
* ADK DAMASHII™ UP0576-CUSA03783_00-SLPS259060000001
* Arc the Lad: Twilight of the Spirits UP9000-CUSA02205_00-SCUS972310000001 "2016-01-12"
* Arc the Lad: Twilight of the Spirits
* Art of Fighting Anthology UP0576-CUSA03754_00-SLUS214870000001
* Art of Fighting Anthology
* Ape Escape 2 UP9000-CUSA02194_00-SCES508850000001 or EP9000-CUSA02269_00-SCES508850000001 2016-08-02
* Ape Escape 2
* Blood Omen: Legacy of Kain UP8489-CUSA49771_00-SLUS000270000000 (PS5: UP8489-PPSA24270_00-0499283180274839) 2024-11-19 PS4 12.00
* Blood Omen: Legacy of Kain UP8489-CUSA49771_00-SLUS000270000000 (PS5: UP8489-PPSA24270_00-0499283180274839) 2024-11-19 PS4 12.00
* Blood Omen 2: Legacy of Kain UP8489-CUSA49769_00-SLUS200240000000 (PS5: UP8489-PPSA24268_00-0200966777747783) 2024-11-19 PS4 12.00
* Blood Omen 2: Legacy of Kain UP8489-CUSA49769_00-SLUS200240000000 (PS5: UP8489-PPSA24268_00-0200966777747783) 2024-11-19 PS4 12.00
* Bully (Canis Canem Edit) UP1004-CUSA03507_00-SLUS212690000001 "2016-03-22"
* Bully (Canis Canem Edit)
* Dark Chronicle (Dark Cloud 2) UP9000-CUSA02037_00-SCUS972130000001 "2016-01-19"
* Dark Chronicle (Dark Cloud 2) UP9000-CUSA02037_00-SCUS972130000001
* Dark Cloud UP9000-CUSA01728_00-SCUS971110000001 "2015-12-05"
* Dark Cloud
* Destroy All Humans! (2005) (not to be confused with the remake EP4389-CUSA14910_00-DAH1REMAKEEU0000) UP4389-CUSA05232_00-SLUS209450000001 2016-10-18
* Destroy All Humans! (2005) (not to be confused with the remake EP4389-CUSA14910_00-DAH1REMAKEEU0000) UP4389-CUSA05232_00-SLUS209450000001 2016-10-18
* Destroy All Humans! 2 (2006) UP4389-CUSA05233_00-SLUS214390000001 2016-11-29
* Destroy All Humans! 2 (2006) UP4389-CUSA05233_00-SLUS214390000001 2016-11-29
* Eternal Ring UP1022-CUSA04654_00-SLUS200150000001
* Eternal Ring UP1022-CUSA04654_00-SLUS200150000001
* FantaVision "2015-12-22"
* FantaVision
* Fatal Fury Battle Archives Vol. 2 UP0576-CUSA03750_00-SLUS217230000001 "2017-03-27"
* Fatal Fury Battle Archives Vol. 2
* Forbidden Siren EP9000-CUSA02274_00-SCES519200000001 patch 1.01 requires PS4 3.10
* Forbidden Siren EP9000-CUSA02274_00-SCES519200000001 patch 1.01 requires PS4 3.10
* Fu'un Super Combo UP0576-CUSA03784_00-SLPS257810000001 "2016-12-20"
* Fu'un Super Combo UP0576-CUSA03784_00-SLPS257810000001
* Ghosthunter (English, Japanese) UP9000-CUSA47996_00-SLUS209930000000 (PS5: UP9000-PPSA21974_00-SLUS209930000000) 2024-06-18
* Ghosthunter (English, Japanese) UP9000-CUSA47996_00-SLUS209930000000 (PS5: UP9000-PPSA21974_00-SLUS209930000000) 2024-06-18
* Grand Theft Auto III UP1004-CUSA03508_00-SLUS200620000001 "2015-12-05"
* GTA III  
* Grand Theft Auto: Vice City UP1004-CUSA03509_00-SLUS205520000001 "2015-12-05"
* GTA Vice City
* Grand Theft Auto: San Andreas UP1004-CUSA03506_00-SLUS209460000001 or EP1004-CUSA03541_00-SLES525410000001 PS4 3.11 "2015-12-05"
* GTA San Andreas
* Harvest Moon: Save the Homeland UP1014-CUSA06585_00-SLUS202510000001
* Harvest Moon: Save the Homeland
* Harvest Moon: A Wonderful Life Special Edition UP1014-CUSA06584_00-SLUS211710000001 "2017-03-28"
* Harvest Moon: A Wonderful Life Special Edition
* Hot Shots® Tennis (Everybody's Tennis) UP9000-CUSA02193_00-SCUS976100000001 "2016-09-13"
* Hot Shots® Tennis (Everybody's Tennis) UP9000-CUSA02193_00-SCUS976100000001
* Indigo Prophecy (aka Fahrenheit 2005) UP1642-CUSA04798_00-SLUS211960000001 or EP1628-CUSA05760_00-SLES535390000001 "2016-08-09"
* Indigo Prophecy
* Jak and Daxter: The Precursor Legacy HP9000-CUSA08427_00-SCPS560030000001 patch 1.01 requires PS4 4.73
* Jak and Daxter: The Precursor Legacy HP9000-CUSA08427_00-SCPS560030000001 patch 1.01 requires PS4 4.73
* Jak and Daxter: The Precursor Legacy™ UP9000-CUSA02522_00-SCUS971240000001 patch 1.01 requires PS4 4.73
* Jak and Daxter: The Precursor Legacy™ UP9000-CUSA02522_00-SCUS971240000001 patch 1.01 requires PS4 4.73
Line 43: Line 43:
* Jak™ X EP9000-CUSA07992_00-SCUS974290000001 patch 1.02 requires PS4 5.01
* Jak™ X EP9000-CUSA07992_00-SCUS974290000001 patch 1.02 requires PS4 5.01
* Jak X: Combat Racing UP9000-CUSA07842_00-JPPS400000000001 2018-03-15
* Jak X: Combat Racing UP9000-CUSA07842_00-JPPS400000000001 2018-03-15
* Kinetica UP9000-CUSA01725_00-SCUS971320000001 "2016-05-17"
* Kinetica UP9000-CUSA01725_00-SCUS971320000001
* Manhunt UP1004-CUSA03512_00-SLUS208270000001 "2016-03-22"
* Manhunt
* Max Payne UP1004-CUSA03513_00-SLUS202300000001 "2016-04-22"
* Max Payne
* Metal Slug Anthology UP0576-CUSA03749_00-SLUS215500000001 "2016-07-05"
* Metal Slug Anthology
* Mister Mosquito UP9000-CUSA48755_00-SLUS203750000000 (PS5: UP9000-PPSA22948_00-SLUS203750000000) 2024-09-17 patch 1.02 requires PS4 11.52 or PS5 9.60
* Mister Mosquito UP9000-CUSA48755_00-SLUS203750000000 (PS5: UP9000-PPSA22948_00-SLUS203750000000) 2024-09-17 patch 1.02 requires PS4 11.52 or PS5 9.60
* Okage: Shadow King UP9000-CUSA02199_00-SCUS971290000001, requires PS4 FW version 3.15, although it was compiled with PS4 SDK version 3.008.000, latest patch requires PS4 FW 4.05 "2016-03-22"
* Okage: Shadow King UP9000-CUSA02199_00-SCUS971290000001, requires PS4 FW version 3.15, although it was compiled with PS4 SDK version 3.008.000, latest patch requires PS4 FW 4.05
* PaRappa The Rapper 2™ UP9000-CUSA01555_00-SCUS971670000001 2015-12-15
* PaRappa The Rapper 2™ UP9000-CUSA01555_00-SCUS971670000001 2015-12-15
* Primal UP9000-CUSA02035_00-SCUS971420000001 "2016-05-31"
* Primal
* Psychonauts UP2154-CUSA03881_00-SLUS211200000001 or EP2154-CUSA04150_00-SLES538300000001 "2016-06-07"
* Psychonauts
* Puzzle Quest: Challenge of the Warlords UP0367-CUSA03571_00-SLUS216920000001 "2016-02-24"
* Puzzle Quest: Challenge of the Warlords
* Red Dead Revolver UP1004-CUSA03517_00-SLUS205000000001 "2016-10-11"
* Red Dead Revolver
* Red Faction UP4389-CUSA06402_00-SLUS200730000001 "2016-12-06"
* Red Faction
* Red Faction II UP4389-CUSA06405_00-SLUS204420000001
* Red Faction II
* Resident Evil Code: Veronica X UP0102-CUSA07104_00-SLUS201840000001
* Resident Evil Code: Veronica X
* Rise of the Kasai UP9000-CUSA01730_00-SCUS974160000001 "2016-03-08"
* Rise of the Kasai
* Rogue Galaxy UP9000-CUSA02195_00-SCUS974900000001 "2015-12-05"
* Rogue Galaxy
* Samurai Shodown VI UP0576-CUSA03787_00-SLUS216290000001 "2016-11-22"
* Samurai Shodown VI
* Siren UP9000-CUSA02198_00-SCUS973550000001 (PS5: UP9000-PPSA22947_00-SCUS973550000000) PS4 patch 1.02 requires PS4 3.00 and 2024-10-15 PS5 patch 1.00 requires PS5 9.40 "2016-06-14"
* Siren UP9000-CUSA02198_00-SCUS973550000001 (PS5: UP9000-PPSA22947_00-SCUS973550000000) PS4 patch 1.02 requires PS4 3.00 and 2024-10-15 PS5 patch 1.00 requires PS5 9.40
* SkyGunner UP9000-CUSA49210_00-SLUS203840000000 (PS5: UP9000-PPSA23535_00-SLUS203840000000) 2024-09-17 patch 1.03 requires PS4 11.52 or PS5 9.60
* SkyGunner UP9000-CUSA49210_00-SLUS203840000000 (PS5: UP9000-PPSA23535_00-SLUS203840000000) 2024-09-17 patch 1.03 requires PS4 11.52 or PS5 9.60
* Sly Raccoon (2002), Sly Cooper and the Thievius Raccoonus UP9000-CUSA47431_00-SCUS971980000000 (PS5: UP9000-PPSA21300_00-SCUS971980000000) 2024-06-11 PS4 11.50
* Sly Raccoon (2002), Sly Cooper and the Thievius Raccoonus UP9000-CUSA47431_00-SCUS971980000000 (PS5: UP9000-PPSA21300_00-SCUS971980000000) 2024-06-11 PS4 11.50
* Star Ocean Till The End Of Time UP0082-CUSA04778_00-SLUS204880000001
* Star Ocean Till The End Of Time
* Star Wars Bounty Hunter UP1082-CUSA03472_00-SLUS204200000001 or EP1006-CUSA03493_00-SLES508310000001 2016-01-15
* Star Wars Bounty Hunter UP1082-CUSA03472_00-SLUS204200000001 or EP1006-CUSA03493_00-SLES508310000001
* Star Wars Racer Revenge UP1082-CUSA03474_00-SLUS202680000001 2016-01-15
* Star Wars Racer Revenge UP1082-CUSA03474_00-SLUS202680000001
* STAR WARS: Jedi Starfighter UP1082-CUSA03473_00-SLUS202930000001 or EP1006-CUSA03494_00-SLES503710000001 2016-01-15
* STAR WARS: Jedi Starfighter UP1082-CUSA03473_00-SLUS202930000001 or EP1006-CUSA03494_00-SLES503710000001 2016-01-15
* STAR WARS The Clone Wars UP1082-CUSA48010_00-SLUS205100000000 (PS5: UP1082-PPSA21985_00-SLUS205100000000 or UP1082-PPSA21985_00-0384550355606536) 2024-06-11 PS4 11.50
* STAR WARS The Clone Wars UP1082-CUSA48010_00-SLUS205100000000 (PS5: UP1082-PPSA21985_00-SLUS205100000000 or UP1082-PPSA21985_00-0384550355606536) 2024-06-11 PS4 11.50
* Summoner PS2 Emulation (2000) UP4389-CUSA48889_00-SLUS200740000000 (PS5: UP4389-PPSA23124_00-SLUS200740000000 or UP4389-PPSA23124_00-EMUPS2SUMMONER00) 2024-07-16 PS4 patch 1.01 requires PS4 11.50, PS5 patch 1.02 requires PS5 9.40
* Summoner PS2 Emulation (2000) UP4389-CUSA48889_00-SLUS200740000000 (PS5: UP4389-PPSA23124_00-SLUS200740000000 or UP4389-PPSA23124_00-EMUPS2SUMMONER00) 2024-07-16 PS4 patch 1.01 requires PS4 11.50, PS5 patch 1.02 requires PS5 9.40
* The King of Fighters Collection: The Orochi Saga UP0576-CUSA03753_00-SLUS215540000001 2018-06-26
* The King of Fighters Collection: The Orochi Saga
* The King of Fighters '98 Ultimate Match UP0576-CUSA03751_00-SLUS218160000001
* The King of Fighters '98 Ultimate Match
* The King of Fighters 2000 UP0576-CUSA03748_00-SLUS208340000001 or UP4002-CUSA03748_00-SLUS208340000001 "2016-05-03"
* The King of Fighters 2000
* The Mark of Kri UP9000-CUSA01729_00-SCUS971400000001 "2015-12-05"
* The Mark of Kri
* The Warriors UP1004-CUSA03515_00-SLUS212150000001 "2016-07-05"
* The Warriors
* TimeSplitters EP4062-CUSA49387_00-SLUS200900000000 (for PS5: EP4062-PPSA23799_00-SLUS200900000000 or EP4062-PPSA23799_00-TIMESPLITTERSONE) 2024-08-20 PS4 patch 1.01 requires PS4 11.52, PS5 patch 1.00 requires PS5 9.40
* TimeSplitters EP4062-CUSA49387_00-SLUS200900000000 (for PS5: EP4062-PPSA23799_00-SLUS200900000000 or EP4062-PPSA23799_00-TIMESPLITTERSONE) 2024-08-20 PS4 patch 1.01 requires PS4 11.52, PS5 patch 1.00 requires PS5 9.40
* TimeSplitters 2 EP4062-CUSA49392_00-SLUS203140000000 (for PS5: EP4062-PPSA23801_00-SLUS203140000000 or EP4062-PPSA23801_00-TIMESPLITTERSTWO) 2024-08-20 PS4 patch 1.01 requires PS4 11.52, PS5 patch 1.00 requires PS5 9.40
* TimeSplitters 2 EP4062-CUSA49392_00-SLUS203140000000 (for PS5: EP4062-PPSA23801_00-SLUS203140000000 or EP4062-PPSA23801_00-TIMESPLITTERSTWO) 2024-08-20 PS4 patch 1.01 requires PS4 11.52, PS5 patch 1.00 requires PS5 9.40
* TimeSplitters: Future Perfect EP4062-CUSA49435_00-SLUS211480000000 (for PS5: EP4062-PPSA23847_00-SLUS211480000000 or EP4062-PPSA23847_00-TIMESPLITTERS3FP) 2024-08-20 PS4 patch 1.01 requires PS4 11.52, PS5 patch 1.00 requires PS5 9.40
* TimeSplitters: Future Perfect EP4062-CUSA49435_00-SLUS211480000000 (for PS5: EP4062-PPSA23847_00-SLUS211480000000 or EP4062-PPSA23847_00-TIMESPLITTERS3FP) 2024-08-20 PS4 patch 1.01 requires PS4 11.52, PS5 patch 1.00 requires PS5 9.40
* Tomb Raider: Legend UP8489-CUSA48389_00-SLUS212030000000 (PS5: UP8489-PPSA22453_00-SLUS212030000000 or UP8489-PPSA22453_00-0217126708396262) 2024-06-11 PS4 11.50
* Tomb Raider: Legend UP8489-CUSA48389_00-SLUS212030000000 (PS5: UP8489-PPSA22453_00-SLUS212030000000 or UP8489-PPSA22453_00-0217126708396262) 2024-06-11 PS4 11.50
* Twisted Metal: Black UP9000-CUSA02036_00-SCUS971010000001 "2015-12-05"
* Twisted Metal: Black
* War of the Monsters™ UP9000-CUSA01554_00-SCUS971970000001 2015-12-05
* War of the Monsters™ UP9000-CUSA01554_00-SCUS971970000001 2015-12-05
* Wild Arms™ 3 UP9000-CUSA02197_00-SCUS972030000001 2016-05-17
* Wild Arms™ 3 UP9000-CUSA02197_00-SCUS972030000001 2016-05-17
Line 84: Line 84:
== PS2 games available on PS4 Bluray Disc ==
== PS2 games available on PS4 Bluray Disc ==


* ADK DAMASHII™ (by Limited Run #315) UP0576-CUSA03783_00-SLPS259060000001 "2017-02-24"
* ADK DAMASHII™ (by Limited Run #315) UP0576-CUSA03783_00-SLPS259060000001
* Art of Fighting Anthology (by Limited Run #375) UP0576-CUSA03754_00-SLUS214870000001
* Art of Fighting Anthology (by Limited Run #375) UP0576-CUSA03754_00-SLUS214870000001
* Destroy All Humans! (2005) (PS2 Classic by Limited Run #370, not to be confused with the remake EP4389-CUSA14910_00-DAH1REMAKEEU0000) UP4389-CUSA05232_00-SLUS209450000001 2016-10-18
* Destroy All Humans! (2005) (PS2 Classic by Limited Run #370, not to be confused with the remake EP4389-CUSA14910_00-DAH1REMAKEEU0000) UP4389-CUSA05232_00-SLUS209450000001 2016-10-18
* Fatal Fury Battle Archives Vol. 2 (by Limited Run #371) UP0576-CUSA03750_00-SLUS217230000001
* Fatal Fury Battle Archives Vol. 2 (by Limited Run #371) UP0576-CUSA03750_00-SLUS217230000001
* Fu'un Super Combo UP0576-CUSA03784_00-SLPS257810000001
* Fu'un Super Combo UP0576-CUSA03784_00-SLPS257810000001
* Indigo Prophecy™ (aka Fahrenheit 2005, by Limited Run #331) UP1642-CUSA04798_00-SLUS211960000001 or EP1628-CUSA05760_00-SLES535390000001 "2016-08-09"
* Indigo Prophecy™ (aka Fahrenheit 2005, by Limited Run #331) UP1642-CUSA04798_00-SLUS211960000001
* Jak and Daxter: The Precursor Legacy™ (US version, by Limited Run #184) UP9000-CUSA02522_00-SCUS971240000001
* Jak and Daxter: The Precursor Legacy™ (US version, by Limited Run #184) UP9000-CUSA02522_00-SCUS971240000001
* Jak X Combat Racing™® (US version, by Limited Run #292) UP9000-CUSA07842_00-SCUS974290000001
* Jak X Combat Racing™® (US version, by Limited Run #292) UP9000-CUSA07842_00-SCUS974290000001
* Jak II (US version, by Limited Run #212) UP9000-CUSA07840_00-SCUS972650000001
* Jak II (US version, by Limited Run #212) UP9000-CUSA07840_00-SCUS972650000001
* Jak 3 (US version, by Limited Run #258) UP9000-CUSA07841_00-SCUS973300000001
* Jak 3 (US version, by Limited Run #258) UP9000-CUSA07841_00-SCUS973300000001
* METAL SLUG ANTHOLOGY™ (US version by Limited Run #364) UP0576-CUSA03749_00-SLUS215500000001 "2016-07-05"
* METAL SLUG ANTHOLOGY™ (US version by Limited Run #364) UP0576-CUSA03749_00-SLUS215500000001
* METAL SLUG ANTHOLOGY™ (EU version by SNK) EP0576-CUSA04156_00-SLES546770000001
* METAL SLUG ANTHOLOGY™ (EU version by SNK) EP0576-CUSA04156_00-SLES546770000001
* Psychonauts UP2154-CUSA03881_00-SLUS211200000001 or EP2154-CUSA04150_00-SLES538300000001 "2016-06-07"
* Psychonauts UP2154-CUSA03881
* Red Faction (by Limited Run #281) UP4389-CUSA06402_00-SLUS200730000001 "2016-12-06"
* Red Faction (by Limited Run #281) UP4389-CUSA06402_00-SLUS200730000001
* Samurai Shodown VI (by Limited Run #329) UP0576-CUSA03787_00-SLUS216290000001 or EP0576-CUSA04158_00-SLES552920000001
* Samurai Shodown VI (by Limited Run #329) UP0576-CUSA03787_00-SLUS216290000001 or EP0576-CUSA04158_00-SLES552920000001
* STAR WARS™ BOUNTY HUNTER™ (US version, by Limited Run #273) UP1082-CUSA03472_00-SLUS204200000001 2016-01-15
* STAR WARS™ BOUNTY HUNTER™ (US version, by Limited Run #273) UP1082-CUSA03472_00-SLUS204200000001
* Star Wars Racer Revenge UP1082-CUSA03474_00-SLUS202680000001, requires PS4 FW version ?3.15?, although it was compiled with SDK version 3.008.000
* Star Wars Racer Revenge UP1082-CUSA03474_00-SLUS202680000001, requires PS4 FW version ?3.15, although it was compiled with SDK version 3.008.000?
* The King of Fighters '98 Ultimate Match (by Limited Run #344) UP0576-CUSA03751_00-SLUS218160000001
* The King of Fighters '98 Ultimate Match (by Limited Run #344) UP0576-CUSA03751_00-SLUS218160000001
* The King of Fighters 2000 (by Limited Run #386) UP0576-CUSA03748_00-SLUS208340000001 or UP4002-CUSA03748_00-SLUS208340000001 "2016-05-03"
* The King of Fighters 2000 (by Limited Run #386) UP0576-CUSA03748_00-SLUS208340000001
* The King of Fighters™ Collection: the Orochi Saga (by Limited Run #393) UP0576-CUSA03753_00-SLUS215540000001 2018-06-26
* The King of Fighters™ Collection: the Orochi Saga (by Limited Run #393) UP0576-CUSA03753_00-SLUS215540000001


These PS2onPS4 games can be bought online directly via Limited Run Games for brand new or for example on Ebay for second hand or like new.
These PS2onPS4 games can be bought online directly via Limited Run Games for brand new or for example on Ebay for second hand or like new.
Line 114: Line 114:
* Tales of Symphonia Remastered UP0700-CUSA29214_00-TALESOFSYMPHONIA 2023-02-17
* Tales of Symphonia Remastered UP0700-CUSA29214_00-TALESOFSYMPHONIA 2023-02-17
* Legacy of Kain™ Soul Reaver 1&2 Remastered PS4 & PS5 (PS5: UP1032-PPSA18153_00-SOULREAVER120824) 2024-12-10
* Legacy of Kain™ Soul Reaver 1&2 Remastered PS4 & PS5 (PS5: UP1032-PPSA18153_00-SOULREAVER120824) 2024-12-10
* Tomb Raider: The Angel of Darkness (in Tomb Raider IV-VI Remastered PS4 & PS5) (PS5: UP1032-PPSA18154_00-TOMBRAIDER456225) 2025-02-14


= Description =
= Description =
Line 124: Line 123:
The PS2 emulators are programmed to be accurate for the games they were designed to emulate. In turn, this makes accurate emulation challenging, as emulators include per-title patches and different default settings. The PlayStation 2 hardware is a complex system to emulate; any small change in configuration can make or break a game. Currently, the most commonly used emulator is "Jakv2" from Jak games, as it is the most compatible one out there. When game crashes are concerned in an emulated PS2 game, then the Resident Evil Code: Veronica X's emulator is typically used, whereas for VU accuracy it is Rogue Galaxy's.
The PS2 emulators are programmed to be accurate for the games they were designed to emulate. In turn, this makes accurate emulation challenging, as emulators include per-title patches and different default settings. The PlayStation 2 hardware is a complex system to emulate; any small change in configuration can make or break a game. Currently, the most commonly used emulator is "Jakv2" from Jak games, as it is the most compatible one out there. When game crashes are concerned in an emulated PS2 game, then the Resident Evil Code: Veronica X's emulator is typically used, whereas for VU accuracy it is Rogue Galaxy's.


The PS2 BIOS is included in the game's pkg file. It is the same PS2 BIOS as used in the ps2_netemu software in PS3 Operating System. The lack of encryption mechanism for PS2 game disc image files is also huge. This time, it is a plain ISO file, but the emulator still supports LIMG sector that allows the usage of non-2048 sector size discs. Moreover, memory cards are also unencrypted, but the emulator checks the CRC of some of the regions to ensure that the memory card was not modified. The PS2 emulator on PS4 also supports Lua scripting by a "Lua Bridge", which is a powerful interface that may prove exceptionally handy in fixing games.
The PS2 BIOS is included in the game's pkg file. It is the same PS2 BIOS as used in the ps2_netemu in PS3 Operating System. The lack of encryption mechanism for PS2 game disc image files is also huge. This time, it is a plain ISO file, but the emulator still supports LIMG sector that allows the usage of non-2048 sector size discs. Moreover, memory cards are also unencrypted, but the emulator checks the CRC of some of the regions to ensure that the memory card was not modified. The PS2 emulator on PS4 also supports LUA scripting by a "Lua Bridge", which is a powerful interface that may prove exceptionally handy in fixing games.


This is first time that Sony has ever cared about floats in its emulators. Compared to the PS3 CPU, x86-64 is doing a worse job in mimicking FPU and VU floats calculation behavior. This is resolved by clamping, accurate math used per memory offset, and/or converting floats to double precision. The emulator uses OpenCL for GS, and likely other components as well.
This is first time that Sony has ever cared about floats in its emulators. Compared to the PS3 CPU, x86-64 is doing a worse job in mimicking FPU and VU floats calculation behavior. This is resolved by clamping, accurate math used per memory offset, and/or converting floats to double precision. The emulator uses OpenCL for GS, and likely other components as well.


= Emulators =
= Emulator Configuration =
The emulator can be configured through 4 files.
 
== Files ==


Every PS2 emulator is programmed differently. Sometimes choosing the right emulator is the only way to fix a game. Emulators are not provided pre-installed in the PS4 OS, but instead they have to be unpacked from an official PS2 CLASSICS PKG file signed by Sony. This list includes the typical usage of those emulators.
* '''config-emu-ps4.txt''' - Stores paths, basic video/audio settings in official packages. But unofficially can be also used for advanced settings for global effect in multi disc .pkg with all commands originally used in cli.conf file.
* '''XXXX-YYYYY_cli.conf''' - Stores per disc advanced settings. GS, VU, EE, IOP, FPU, COP2 emulation settings, are here. Also hacks, and hooks.
* '''XXXX-YYYYY_config.lua''' - Used for per disc advanced scripts. Patching EE/IOP memory, Conditional hooks.
* '''disc-swap-cli.conf''' - Stores info of multi disc games.
 
== Commands ==
The rest of the CLI and LUA commands can all be found inside of any emulator's '''Eboot.bin''' file.
=== config-emu-ps4.txt commands ===


{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Emulator name !! Typical usage - Info !! API Version !! Similar emulators
! Command !! Values !! Notes !! Usage
|-style="background-color:#D7EF54"
|-style="background-color:#7698FF"
|  || 2018 || ||
|  || Misc || ||
|-
|-
| The King of Fighters '98: Ultimate Match || The only known emulator where '''Mojin-ribbon''' is playable. Commonly known as "KOF98". || 2.0 ||
| --config-local-lua ||   ||   || --config-local-lua=""
|-
|-
|-style="background-color:#D7EF54"
| --lopnor-config || 0,1 || Enables limited PS3's PS2 config support || --lopnor-config=1
|  || 2017 || ||
|-
|-
| Jak and Daxter: The Precursor Legacy || Good compatibility with most PS2 games. It has a very high api version which means more Lua commands are supported. In addition, Jak emulators are one of the few that can use the '''--gs-adaptive-frameskip=1''' command. It is often referred to as "Jak v2"|| 2.2 || '''JakX,''' '''Jak 2,''' '''Jak 3,'''
| --load-tooling-lua ||  ||   || --load-tooling-lua=0
|-
|-
| Art of Fighting Anthology || Similar to RECVX. It was successful in fixing "'''Coraline'''." Sometimes called "AOFA" || 2.0 ||
| --max-console-spam || || ||  
|-
|-
| Resident Evil - Code: Veronica || Fixes games like '''Jackie chan Adventures, SpongeBob SquarePants: Creature From the Krust Krab, Pac-man World 3, Yu-Gi-Oh: Capsule monsters, SpongeBob's Atlantis SquarePantis''' freezing at a black/splash screen. Additionally, it fixes many games requiring '''OPL's mode 2'''. Often referred to as "RECVX" || 1.7 || '''Fatal Fury,''' '''Redfaction,''' '''AOFA.'''
| --path-snaps || dir/folder ||  Path to savestates folder || --path-snaps="/tmp/snapshots"
|-
|-
| Fatal Fury Battle Archives: Volume 2 || Similarly to RECVX, it is often used to fix frozen games. || ||  
| --path-recordings || dir/folder ||   || --path-recordings="/tmp/recordings"
|-style="background-color:#D7EF54"
|  || 2016 || ||
|-
|-
| Red Faction || It is prominently used to fix VU1 sensitive games. It was used to fix '''Tony Hawk games''' suddenly crashing, as well as MTVU sensitive games such as '''Star Wars Battlefront II'''.|| 1.6 || '''Max payne'''
| --path-memcards || dir/folder ||   ||
|-
|-
| Forbidden Siren || The only emulator to fix '''Ice age 2''' being stuck at splash screen. It also fixed '''Gran turismo 4''' running abysmally slow. || 0.1 ||
| --path-vmc || dir/folder ||   || --path-vmc="/tmp/vmc"
|-
|-
| The King of Fighters 2000 || Seemingly one of the most VU-accurate emus, fixing sps in games such as '''Crash Twinsanity''', '''Rayman 3''', '''Crazy Frog Racer'''. It also '''prevents Koei tecmo games from suddenly freezing when battle starts. Moreover, it is likely the only emulator where '''Batman Begins''' does not crash.''' Often referred to as "KOF2000"|| 1.2 || '''Roguev1''', '''KOF98''', '''Okage'''
| --emulog-file || 0, 1 ||  Creates a log file with information that is rarely useful || --emulog-file=1
|-
|-
| Destroy All Humans! || Fixed '''Tenchu: Fatal Shadows'''' crashing. || 0.1 ||  
| --path-emulog || dir/folder || Sets the directory of the emulog file. Requires --emulog-file=1 command  || --path-emulog="/tmp/recordings"
|-
|-
| Destroy All Humans! 2 || || 0.7 ||  
| --path-manual || dir/folder ||   ||
|-
|-
| Rise of the Kasai || It fixed most of the '''Harry Potter''' games. Often referred to as "rotk". || 0.2 ||
| --path-patches || dir/folder || Path to patches folder || --path-patches="/app0/patches"
|-
|-
|-style="background-color:#D7EF54"
| --path-trophydata || dir/folder ||   || --path-trophydata="/app0/trophy_data"
| || 2015 || ||
|-
|-
| War of the Monsters v1 || Subjectively the best emulator to use. Used as PS2CLASSICSGUI's default emulator, it is the best one around for accurate GS emulation, as some graphical issues on the Ratchet series and Tekken 5 can only be fixed by it. Another interesting case is GTA SA's lack of need for auto flush on it, and being natively performant. Additionally, its VU0 timing is much better than Jakv2's, making it one of the best emulators on the PS4. || 0.1 || '''Rogue v1 and v2, Arc the Lad, Star Wars Jedi Starfighter'''
| --path-featuredata || dir/folder || Path to folder with XXXX-YYYYY_features.lua file || --path-featuredata="/app0/feature_data"
|-
|-
| GTA III || Fixed the PAL version of '''Genji: Dawn of the Samurai'''. || 0.6 ||
| --path-postproc || dir/folder || Post-processing (shaders?) ||
|-
|-
| PaRappa The Rapper 2 || The only emulator to boot '''Spyro: A Hero's Tail'''. || 0.1 ||
| --path-toolingscript || dir/folder ||   || --path-toolingscript="/app0/patches"
|-
|-
| Star Wars Racer Revenge || Seemingly the closest emulator to the PS3's. Useful for debugging games as it also shows useful information such as pagefault. || 0.4 ||
| --snapshot-name ||  ||  ||  
|}
 
= Emulator Configuration =
 
The PS2 emulator can be configured through 4 files.
 
== Files ==
 
* '''config-emu-ps4.txt''' - Stores paths, basic video/audio settings in official packages. But unofficially can be also used for advanced settings for global effect in multi disc .pkg with all commands originally used in cli.conf file.
* '''XXXX-YYYYY_cli.conf''' - Stores per disc advanced settings. GS, VU, EE, IOP, FPU, COP2 emulation settings, are here. Also hacks, and hooks.
* '''XXXX-YYYYY_config.lua''' - Used for per disc advanced scripts. Patching EE/IOP memory, Conditional hooks.
* '''disc-swap-cli.conf''' - Stores info of multi disc games.
 
== Commands ==
 
The rest of the CLI and Lua commands can all be found inside of any PS2 emulator's '''EBOOT.BIN''' file.
 
=== config-emu-ps4.txt commands ===
 
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage
|-style="background-color:#7698FF"
|| Misc ||  ||
|-
|-
| --config-local-lua ||   ||   || --config-local-lua=""
| --snapshot-datafile || || ||  
|-
|-
| --lopnor-config || 0,1 ||  Enables limited PS3's PS2 config support || --lopnor-config=1
| --snapshot-restore || ||  ||  
|-
|-
| --load-tooling-lua ||   ||  || --load-tooling-lua=0
| --snapshot-save || frameId(?) ||  ||
|-
|-
| --max-console-spam ||  ||  ||  
| --snapshot-mcd-files ||  ||  ||  
|-
|-
| --path-snaps || dir/folder || Path to savestates folder || --path-snaps="/tmp/snapshots"
| --snapshot-repeat || repeat_count ||   ||
|-
|-
| --path-recordings || dir/folder ||  || --path-recordings="/tmp/recordings"
| --snapshot-modulo ||  ||  ||  
|-
| --path-memcards || dir/folder ||  ||
|-
| --path-vmc || dir/folder ||  || --path-vmc="/tmp/vmc"
|-
| --emulog-file || 0, 1 ||  Creates a log file with information that is rarely useful || --emulog-file=1
|-
| --path-emulog || dir/folder || Sets the directory of the emulog file. Requires --emulog-file=1 command  || --path-emulog="/tmp/recordings"
|-
| --path-manual || dir/folder ||  ||
|-
| --path-patches || dir/folder || Path to patches folder || --path-patches="/app0/patches"
|-
| --path-trophydata || dir/folder ||  || --path-trophydata="/app0/trophy_data"
|-
| --path-featuredata || dir/folder || Path to folder with XXXX-YYYYY_features.lua file || --path-featuredata="/app0/feature_data"
|-
| --path-postproc || dir/folder || Post-processing (shaders?) ||
|-
| --path-toolingscript || dir/folder ||  || --path-toolingscript="/app0/patches"
|-
| --snapshot-name ||  ||  ||
|-
| --snapshot-datafile ||  ||  ||
|-
| --snapshot-restore ||  ||  ||
|-
| --snapshot-save || frameId(?) ||  ||
|-
| --snapshot-mcd-files ||  ||  ||
|-
| --snapshot-repeat || repeat_count ||  ||
|-
| --snapshot-modulo ||  ||  ||  
|-
|-
| --host-keyboard || slot [0-7] ||  || --host-keyboard=4
| --host-keyboard || slot [0-7] ||  || --host-keyboard=4
Line 252: Line 200:
| --host-display-mode || normal,full,4:3,16:9  || Set display mode || --host-display-mode=full
| --host-display-mode || normal,full,4:3,16:9  || Set display mode || --host-display-mode=full
|-
|-
| --host-graph || fps || Debug option that requires an unleaked debug ps2 bios || --host-graph=fps
| --host-graph || fps || Debug option that requires an unleaked debug ps2 bios || --host-graph=fps
|-
|-
| --host-osd || verbose, minimal ||  || --host-osd=0
| --host-osd || verbose, minimal ||  || --host-osd=0
|-
|-
| --host-vsync || 0, 1 || Enable or disable vsync || --host-vsync=1
| --host-vsync || 0, 1 || Enable or disable vsync || --host-vsync=1
|-
|-
| --host-trophy-support ||  ||  ||
| --host-trophy-support ||  ||  ||
|-
|-
| --rtc-epoch || unix_time (seconds since epoch) ||  || --rtc-epoch=1523776362
| --rtc-epoch || unix_time (seconds since epoch) ||  || --rtc-epoch=1523776362
|-
|-
| --framelimiter || 0, 1 || Enable or disable Frame limiting || --framelimiter=1
| --framelimiter || 0, 1 || Enable or disable Frame limiting || --framelimiter=1
|-
|-
| --framelimit-fps || FPS/float || framelimiter || --framelimit-fps=0.8
| --framelimit-fps || FPS/float || framelimiter || --framelimit-fps=0.8
|-
|-
| --framelimit-scalar || scalar/float || || --framelimit-scalar=3.2
| --framelimit-scalar || scalar/float || || --framelimit-scalar=3.2
|-
|-
| --framelimit-mode || slowest,slower,slow,normal,fast,fastest,turbo || A Standalone framelimiter || --framelimit-mode=fast
| --framelimit-mode || slowest,slower,slow,normal,fast,fastest,turbo || A Standalone framelimiter || --framelimit-mode=fast
Line 325: Line 273:
All commands are pre-made. Creating new CLI commands is impossible.
All commands are pre-made. Creating new CLI commands is impossible.
The values of the commands are also pre-defined by Sony and/or have a set of possible values or ranges.
The values of the commands are also pre-defined by Sony and/or have a set of possible values or ranges.
Some CLI commands have no effect, as they were added to the eboot.bin without being programmed. Some useful commands were removed or added in or from different emu revisions, or their effects were changed. In some PS2 emulators, CLI configurations can be found in the ram at SceLibcHeap[0]-3-881004000.</pre>
Some CLI commands have no effect, as they were added to the eboot.bin without being programmed. Some useful commands were removed or added in or from different emu revisions, or their effects were changed. In some emulators, CLI configurations can be found in the ram at SceLibcHeap[0]-3-881004000.</pre>
 
====EmotionEngine (MIPS-IV)====
==== EmotionEngine (MIPS-IV) ====
=====[https://www.psdevwiki.com/ps2/Emotion_Engine EE]=====
 
===== [https://www.psdevwiki.com/ps2/Emotion_Engine EE] =====
 
<pre>Commands for the emulated Emotion Engine. These commands may improve performance, prevent crashes, or provide better core sync.</pre>
<pre>Commands for the emulated Emotion Engine. These commands may improve performance, prevent crashes, or provide better core sync.</pre>
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage
! Command !! Values !! Notes !! Usage
Line 577: Line 521:


<pre>VU1 is the Graphics Synthesizer’s alternate processing unit. Commands here typically improve performance, prevent crashes, and fix SPS (graphical glitches).</pre>
<pre>VU1 is the Graphics Synthesizer’s alternate processing unit. Commands here typically improve performance, prevent crashes, and fix SPS (graphical glitches).</pre>
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage  
! Command !! Values !! Notes !! Usage  
Line 618: Line 561:
| --vu1-injection || 0, 1 || unknown || --vu1-injection=1
| --vu1-injection || 0, 1 || unknown || --vu1-injection=1
|-
|-
| --vu1-native-patch || 0, 1 || Use native patches from recompiler, not compatible with Jak emus. Sony uses it for their official release of Primal || --vu1-native-patch=1
| --vu1-native-patch || 0, 1 || Use native patches from recompiler, not compatible with jak emus. Sony uses it for their official release of Primal|| --vu1-native-patch=1
|-
|-
|-style="background-color:#FEA15C"
|-style="background-color:#FEA15C"
Line 639: Line 582:
|}
|}


===== VU0 =====
=====VU0=====
 
<pre>VU0 is the Emotion Engine’s alternate processing unit. It is sometimes referred to as "micro-mode". Commands here prevent crashes, and fix SPS (graphical glitches).</pre>
<pre>VU0 is the Emotion Engine’s alternate processing unit. It is sometimes referred to as "micro-mode". Commands here prevent crashes, and fix SPS (graphical glitches).</pre>
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage  
! Command !! Values !! Notes !! Usage  
Line 660: Line 601:
| --vu0-const-prop || 0, 1 || Constant propagation, can Be used as speedhack for VU0 hungry games when set to 1 [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] || --vu0-const-prop=1
| --vu0-const-prop || 0, 1 || Constant propagation, can Be used as speedhack for VU0 hungry games when set to 1 [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L312 More info] || --vu0-const-prop=1
|-  
|-  
| --vu0-opt-vf00 || 0, 1, 2 || Optimization for the vf00 register. || --vu0-opt-vf00=1
| --vu0-opt-vf00 || 0, 1, 2 || Optimization for the vf00 register. || --vu0-opt-vf00=1
|-  
|-  
| --vu0-opt-flags || 0, 1, 2 || Optimize flags upon recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --vu0-opt-flags=1
| --vu0-opt-flags || 0, 1, 2 || Optimize flags upon recompilation (1 is safe, 2 update sticky, and mac flag on every status flag update) [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --vu0-opt-flags=1
|-  
|-  
| --vu0-jr-cache-policy || newprog, sameprog, auto, new, same || PCSX2 uses newprog as the default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu0-jr-cache-policy=sameprog
| --vu0-jr-cache-policy || newprog, sameprog, auto, new, same || PCSX2 uses newprog as the default setting [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L319 Info] || --vu0-jr-cache-policy=sameprog
Line 674: Line 615:
| --vu0-no-clamping || 0,1 || Changes the clamping behavior of the VU0. Setting specific to ps4 emulators, unimplemented in pcsx2. The default emulator's value is 1. || --vu0-no-clamping=0
| --vu0-no-clamping || 0,1 || Changes the clamping behavior of the VU0. Setting specific to ps4 emulators, unimplemented in pcsx2. The default emulator's value is 1. || --vu0-no-clamping=0
|-  
|-  
| --vu0-accurate-addsub-range || offset (0x0 - 0x1FF) ||Allows the VU0 to accurately Add/Subtract in the specified ee memory range by using software floats rather than hardware floats. ||  
| --vu0-accurate-addsub-range || offset (0x0 - 0x1FF) ||Allows the VU0 to accurately Add/Subtract in the specified ee memory range by using software floats rather than hardware floats.||  
|-
|-
| --vu0-mul0fix-range || vu0 memory offset start,end (0x0 - 0x1FF) || Allows the VU0 to accurately Multiply by 0 in the specified ee memory range by using software floats rather than hardware floats ||
| --vu0-mul0fix-range || vu0 memory offset start,end (0x0 - 0x1FF) || Allows the VU0 to accurately Multiply by 0 in the specified ee memory range by using software floats rather than hardware floats ||
Line 683: Line 624:
| --vu0-injection || 0, 1 || Unknown usage. || --vu0-injection=1
| --vu0-injection || 0, 1 || Unknown usage. || --vu0-injection=1
|-
|-
| --vu0-inst-q || 0, 1  || instant Q, no stalling on WAITQ, or instances of Q  || --vu0-inst-q=1
| --vu0-inst-q || 0, 1  || instant Q, no stalling on WAITQ, or instances of Q  || --vu0-inst-q=1
|-  
|-  
| --vu0-inst-p || 0, 1 || instant P, no stalling on WAITP, or instances of P|| --vu0-inst-p=1
| --vu0-inst-p || 0, 1 || instant P, no stalling on WAITP, or instances of P|| --vu0-inst-p=1
|-  
|-  
| --vu0-use-rcp || 0, 1 || Use SSE/AVX RCP. Speedhack. Not sure why it is even available for VU0. Disabled by default || --vu0-use-rcp=1
| --vu0-use-rcp || 0, 1 || Use SSE/AVX RCP. Speedhack. Not sure why it is even available for VU0. Disabled by default || --vu0-use-rcp=1
|-  
|-  
| --vu0-use-rsqrt || 0, 1 || Use SSE/AVX rsqrt instead of doing sqrt and then div. Speedhack, rather unsafe to use on VU0. || --vu0-use-rsqrt=1
| --vu0-use-rsqrt || 0, 1 || Use SSE/AVX rsqrt instead of doing sqrt and then div. Speedhack, rather unsafe to use on VU0. || --vu0-use-rsqrt=1
|-  
|-  
| --vu0-clamp-operands || 0, 1 || Clamp operands before mathematical operation. || --vu0-clamp-operands=1
| --vu0-clamp-operands || 0, 1 || Clamp operands before mathematical operation. || --vu0-clamp-operands=1
|-  
|-  
| --vu0-clamp-results || 0, 1 || Clamp result after mathematical operation. || --vu0-clamp-results=1
| --vu0-clamp-results || 0, 1 || Clamp result after mathematical operation. || --vu0-clamp-results=1
|-  
|-  
|}
|}


==== DMA Channels ====
====DMA Channels====
 
=====VIF=====
===== VIF =====
<pre>The VIF decompresses vector data, uploads microprograms to the VUs, and sends graphical data to the GIF. Its commands
 
are often used to fix freezing.</pre>
<pre>The VIF decompresses vector data, uploads microprograms to the VUs, and sends graphical data to the GIF. Its commands are often used to fix freezing.</pre>
 
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage
! Command !! Values !! Notes !! Usage
Line 721: Line 660:
|}
|}


===== SIF =====
=====SIF=====
 
<pre>The SIF is how the EE and IOP communicate with each other. SIF has some mailbox hardware registers that the CPUs can use to pass values to each other, which happens during SIF initialization. However, once both sides have booted, they use the SIF0 (IOP->EE) and SIF1 (EE->IOP) DMA channels to communicate. Despite common belief, these commands have no effect on performance, and are rarely ever useful.</pre>
<pre>The SIF is how the EE and IOP communicate with each other. SIF has some mailbox hardware registers that the CPUs can use to pass values to each other, which happens during SIF initialization. However, once both sides have booted, they use the SIF0 (IOP->EE) and SIF1 (EE->IOP) DMA channels to communicate. Despite common belief, these commands have no effect on performance, and are rarely ever useful.</pre>
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage  
! Command !! Values !! Notes !! Usage  
Line 742: Line 679:
|}
|}


==== [https://www.psdevwiki.com/ps2/Graphics_Synthesizer GS] ====
====[https://www.psdevwiki.com/ps2/Graphics_Synthesizer GS]====
 
<pre>"GS" stands for Graphics Synthesizer. It's the PlayStation®2's co-processor that's responsible for rendering the graphics (but is also used by some games for additional calculations and other purposes)</pre>
<pre>"GS" stands for Graphics Synthesizer. It is the PlayStation®2's co-processor that is responsible for rendering the graphics (but is also used by some games for additional calculations and other purposes)</pre>
 
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage  
! Command !! Values !! Notes !! Usage  
Line 848: Line 783:
|}
|}


==== IOP ====
====IOP====
 
<pre>The emulated I/O Processor (IOP) settings. Commands here are rarely useful, as very few games will require them. The IOP controls the emulated DEV9, SPU2, USB, Memory cards, CDVD, Firewire, along with other input/output devices</pre>
<pre>The emulated I/O Processor (IOP) settings. Commands here are rarely useful, as very few games will require them. The IOP controls the emulated DEV9, SPU2, USB, Memory cards, CDVD, Firewire, along with other input/output devices</pre>
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Command !! Values !! Notes !! Usage  
! Command !! Values !! Notes !! Usage  
Line 863: Line 796:
| --iop-tight-slice-count || 0, 2000 || Seems to slow down the iop the higher the value. Can be used to fix CDVD timing issues. || --iop-tight-slice-count=12
| --iop-tight-slice-count || 0, 2000 || Seems to slow down the iop the higher the value. Can be used to fix CDVD timing issues. || --iop-tight-slice-count=12
|-
|-
| --iop-hook || AdvanceClock<br>FastForwardClock<br>Mfifodrain || IOP native hook, Sony uses it on their official release of Red Dead Revolver. It helps fix timing issues || --iop-hook=0x0086ac,FastForwardClock
| --iop-hook || AdvanceClock<br>FastForwardClock<br>Mfifodrain || IOP native hook, Sony uses it on their official release of Red dead revolver. It helps fix timing issues || --iop-hook=0x0086ac,FastForwardClock
|-
|-
| --iop-block-validation || IsC, ShortHash, Hash || Way of validating that block been modified, and require recompilation. Other Possible values include PageProt, None, PageProtection || --iop-block-validation=IsC
| --iop-block-validation || IsC, ShortHash, Hash || Way of validating that block been modified, and require recompilation. Other Possible values include PageProt, None, PageProtection || --iop-block-validation=IsC
Line 898: Line 831:
| --boot-disc-id || 1-5  ||  sets boot disc for multi-disc pkg || --boot-disc-id=0
| --boot-disc-id || 1-5  ||  sets boot disc for multi-disc pkg || --boot-disc-id=0
|-
|-
| --switch-disc-reset ||  1 = Enables resetting the game upon disc swap, 0 = Disables resetting the game upon disc swap||  0 Can be used to prevent resetting the game when switching multiple discs. Useful for games like Samurai Warriors 2 that include an import data feature. Sadly this command isn't supported by many emulators, but jakv2 is confirmed to support it || --switch-disc-reset=1
| --switch-disc-reset ||  1 = Enables resetting the game upon disc swap, 0 = Disables resetting the game upon disc swap||  0 Can be used to prevent resetting the game when switching multiple discs. Useful for games like Samurai warriors 2 that include an import data feature. Sadly this command isn't supported by many emulators, but jakv2 is confirmed to support it || --switch-disc-reset=1
|-style="background-color:#46a4e8"
|-style="background-color:#46a4e8"
|  || Timing || ||
|  || Timing || ||
|-
|-
| --cdvd-sector-read-cycles || 0.1 = Fastest, 80000 = Slowest|| Set DVD reading speed. Higher values are slower, lower values are faster. Kinetica uses 40000, Psychonauts 4000, Red Dead Revolver 5000, Rise of Kasai 31000. Some games require moderate speed, too slow or too fast could cause audio problems.|| --cdvd-sector-read-cycles=0.1
| --cdvd-sector-read-cycles || 0.1 = Fastest, 80000 = Slowest|| Set DVD reading speed. Higher values are slower, lower values are faster. Kinetica uses 40000, Psychonauts 4000, Red dead revolver 5000, Rise of kasai 31000. Some games require moderate speed, too slow or too fast could cause audio problems.|| --cdvd-sector-read-cycles=0.1
|-
|-
| --cdvd-sector-seek-cycles || 0.1 = Fastest, 80000 = Slowest || Set the speed at which the emulated CDVD spins. Higher values are slower,  
| --cdvd-sector-seek-cycles || 0.1 = Fastest, 80000 = Slowest || Set the speed at which the emulated CDVD spins. Higher values are slower,  
Line 978: Line 911:
| {{cellcolors|#0b9fb3|#000000}}cpuSpriteRenderBW: 4 || {{cellcolors|#03fcb1|#000000}}--gs-opt-frbuff-switch=1 || Note: works similarly but not the equivalent
| {{cellcolors|#0b9fb3|#000000}}cpuSpriteRenderBW: 4 || {{cellcolors|#03fcb1|#000000}}--gs-opt-frbuff-switch=1 || Note: works similarly but not the equivalent
|-
|-
| {{cellcolors|#0b9fb3|#000000}}mipmap || {{cellcolors|#03fcb1|#000000}}--gs-use-mipmap=1<br>--gs-kernel-cl="mipmap" || Note: Works best on War of the Monsters emulator
| {{cellcolors|#0b9fb3|#000000}}mipmap || {{cellcolors|#03fcb1|#000000}}--gs-use-mipmap=1<br>--gs-kernel-cl="mipmap" || Note: Works best on War of the Monsters emu
|-
|-
| {{cellcolors|#0b9fb3|#000000}}autoFlush || {{cellcolors|#03fcb1|#000000}}--gs-flush-ad-xyz=safe || Possible values include always, safe, off, 0
| {{cellcolors|#0b9fb3|#000000}}autoFlush || {{cellcolors|#03fcb1|#000000}}--gs-flush-ad-xyz=safe || Possible values include always, safe, off, 0
|-
|-
| {{cellcolors|#0b9fb3|#000000}}VIF1StallHack || {{cellcolors|#03fcb1|#000000}}--vif1-instant-xfer=0 || If that does not work, the Lua command eeObj.SchedulerDelayEvent("vif1.dma", 0x9000) might assist.
| {{cellcolors|#0b9fb3|#000000}}VIF1StallHack || {{cellcolors|#03fcb1|#000000}}--vif1-instant-xfer=0 || If that doesn't work, the lua command eeObj.SchedulerDelayEvent("vif1.dma", 0x9000) might assist.
|-
|-
| {{cellcolors|#0b9fb3|#000000}}wildArmsHack || {{cellcolors|#03fcb1|#000000}}--gs-kernel-cl-up="DarkCloud2" ||
| {{cellcolors|#0b9fb3|#000000}}wildArmsHack || {{cellcolors|#03fcb1|#000000}}--gs-kernel-cl-up="DarkCloud2" ||
Line 989: Line 922:
|}
|}


=== XXXX-YYYYY_config.lua ===
=== Emulators ===


It is the most powerful configuration on the emulator as it allows for direct patching of EE/IOP/VU memory, hooks registers, hook DMA. Almost everything can be done here.  
Every PS2 emulator is programmed differently. Sometimes choosing the right emulator is the only way to fix a game. Emulators are not provided pre-installed in the PS4 OS, but instead they have to be unpacked from an official PS2 CLASSICS PKG file signed by Sony. This list includes the typical usage of those emulators.


If needed, it can hook registers by using register names from alias files. Alias files (ee-cpr0-alias.lua, ee-gpr-alias.lua, ee-hwaddr.lua) are stored in lua_include folder, and can be included to config by using require ("alias file name").  
{| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center;"
! Emulator name !! Typical usage - Info !! API Version !! Similar emulators
|-style="background-color:#D7EF54"
|  || 2018 || ||
|-
| The King of Fighters '98: Ultimate Match || The only known emulator where '''Mojin-ribbon''' is playable. Commonly known as "KOF98"|| 2.0 ||
|-
|-style="background-color:#D7EF54"
|  || 2017 || ||
|-
| Jak and Daxter: The Precursor Legacy || Good compatibility with most ps2 games. It has a very high api version which means more LUA commands are supported. In addition, Jak emus are one of the few emus that can use the '''--gs-adaptive-frameskip=1''' command. It is often referred to as "Jak v2"|| 2.2 || '''JakX,''' '''Jak 2,''' '''Jak 3,'''
|-
| Art of Fighting Anthology || Similar to RECVX. It was successful in fixing "'''Coraline'''." Sometimes called "AOFA" || 2.0 ||
|-
| Resident Evil - Code: Veronica || Fixes games like '''Jackie chan Adventures, SpongeBob SquarePants: Creature From the Krust Krab, Pac-man World 3, Yu-Gi-Oh: Capsule monsters, SpongeBob's Atlantis SquarePantis''' freezing at a black/splash screen. Additionally, it fixes many games requiring '''OPL's mode 2'''. Often referred to as "RECVX" || 1.7 || '''Fatal Fury,''' '''Redfaction,''' '''AOFA.'''
|-
| Fatal Fury Battle Archives: Volume 2 || Similarly to RECVX, it is often used to fix frozen games. ||  ||
|-style="background-color:#D7EF54"
|  || 2016 || ||
|-
| Red Faction || It is prominently used to fix VU1 sensitive games. It was used to fix '''Tony Hawk games''' suddenly crashing, as well as MTVU sensitive games such as '''Star Wars Battlefront II'''.|| 1.6 || '''Max payne'''
|-
| Forbidden Siren || The only emulator to fix '''Ice age 2''' being stuck at splash screen. It also fixed '''Gran turismo 4''' running abysmally slow. || 0.1 ||
|-
| King of Fighters 2000 || Seemingly one of the most VU-accurate emus, fixing sps in games such as '''Crash Twinsanity''', '''Rayman 3''', '''Crazy Frog Racer'''. It also '''prevents Koei tecmo games from suddenly freezing when battle starts. Moreover, it is likely the only emulator where '''Batman Begins''' does not crash.''' Often referred to as "KOF2000"|| 1.2 || '''Roguev1''', '''KOF98''', '''Okage'''
|-
| Destroy All Humans! || Fixed '''Tenchu: Fatal Shadows'''' crashing. || 0.1 ||
|-
| Destroy All Humans! 2 ||  || 0.7 ||
|-
| Rise of the Kasai || It fixed most of the '''Harry Potter''' games. Often referred to as "rotk". || 0.2 ||
|-
|-style="background-color:#D7EF54"
|  || 2015 || ||
|-
|War of the monsters v1 || Subjectively the best emulator to use. Used as PS2CLASSICSGUI's default emulator, it is the best one around for accurate gs emulation, as some graphical issues on the Ratchet series and Tekken 5 can only be fixed by it. Another interesting case is GTA SA's lack of need for auto flush on it, and being natively performant. Additionally, its VU0 timing is much better than Jakv2's, making it one of the best emulators on the PS4. || 0.1 || '''Rogue v1 and v2, Arc the Lad, Star Wars Jedi Starfighter'''
|-
| GTA III || Fixed the PAL version of '''Genji: Dawn of the Samurai'''. || 0.6 ||
|-
| PaRappa The Rapper 2 || The only emulator to boot '''Spyro: A Hero's Tail'''. || 0.1 ||
|-
| Star Wars Racer Revenge || Seemingly the closest emulator to the PS3's. Useful for debugging games as it also shows useful information such as pagefault. || 0.4 ||
|-
|}


'''Known functions: '''Require cleanup.
=== XXXX-YYYYY_config.lua ===
 
<br>It is the most powerful configuration on the emulator, it allows for direct patching of EE/IOP/VU memory, hooks registers, hook dma. Almost Everything can be done here.
<br>If needed it can hook registers by using register names from alias files. Alias files (ee-cpr0-alias.lua, ee-gpr-alias.lua, ee-hwaddr.lua) are stored in lua_include folder, and can be included to config by using require ("alias file name").
<br>'''Known functions:  
'''
Require cleanup.


==== ApiRequest ====
==== ApiRequest ====
Line 3,971: Line 3,953:
= Links =
= Links =


* [https://archive.org/details/sony-playstation-2-manuals-scea Archive of official manuals of PS2 Classic for PS4 games hosted on Amazon AWS (2022-09-21)]
* [https://pastebin.com/Y3mpv5QE List of official manuals of PS2 Classic for PS4 games hosted on Amazon AWS (2020-04-12)]
* [https://psi-rockin.github.io/ps2tek/ PS2 Hardware Documentation]
* [https://psi-rockin.github.io/ps2tek/ PS2 Hardware Documentation]
* [https://pastebin.com/yf802Up3 Graphics Synthetizer title fix guide]
* [https://pastebin.com/yf802Up3 Graphics Synthetizer title fix guide]
Please note that all contributions to PS4 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS4 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)