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 15: Line 15:
* Destroy All Humans! (2005) (not to be confused with the remake EP4389-CUSA14910_00-DAH1REMAKEEU0000) UP4389-CUSA05232_00-SLUS209450000001 or EP4389-CUSA06353_00-SLES531960000001 2016-10-18
* Destroy All Humans! (2005) (not to be confused with the remake EP4389-CUSA14910_00-DAH1REMAKEEU0000) UP4389-CUSA05232_00-SLUS209450000001 or EP4389-CUSA06353_00-SLES531960000001 2016-10-18
* Destroy All Humans! 2 (2006) UP4389-CUSA05233_00-SLUS214390000001 or EP4389-CUSA06355_00-SLES543840000001 2016-11-29
* Destroy All Humans! 2 (2006) UP4389-CUSA05233_00-SLUS214390000001 or EP4389-CUSA06355_00-SLES543840000001 2016-11-29
* Dropship: United Peace Force: announced on 2025-02-12. Enhanced with up-rendering, rewind, quick save, and custom video filters.
* Eternal Ring UP1022-CUSA04654_00-SLUS200150000001 requires PS4 4.70
* Eternal Ring UP1022-CUSA04654_00-SLUS200150000001 requires PS4 4.70
* FantaVision JP9000-CUSA02407_00-SCPS150300000001 or UP9000-CUSA01724_00-SCUS971050000001 or EP9000-CUSA01949_00-SCES500020000001 "2015-12-22"
* FantaVision JP9000-CUSA02407_00-SCPS150300000001 or UP9000-CUSA01724_00-SCUS971050000001 or EP9000-CUSA01949_00-SCES500020000001 "2015-12-22"
Line 27: Line 26:
* Harvest Moon: A Wonderful Life Special Edition UP1014-CUSA06584_00-SLUS211710000001 or EP1014-CUSA06609_00-SLUS211710000001 "2017-03-28"
* Harvest Moon: A Wonderful Life Special Edition UP1014-CUSA06584_00-SLUS211710000001 or EP1014-CUSA06609_00-SLUS211710000001 "2017-03-28"
* Hot Shots® Tennis (Everybody's Tennis) UP9000-CUSA02193_00-SCUS976100000001 or EP9000-CUSA02270_00-SCES545350000001 "2016-09-13"
* Hot Shots® Tennis (Everybody's Tennis) UP9000-CUSA02193_00-SCUS976100000001 or EP9000-CUSA02270_00-SCES545350000001 "2016-09-13"
* Indiana Jones and the Staff of Kings UP1082-CUSA41353_00-SLUS218850000000 (PS5: UP1082-PPSA14388_00-SLUS218850000000 or UP1082-PPSA14388_00-0064394372965033) 2024-11-26 PS4 12.00 or PS5 10.40
* Indigo Prophecy (aka Fahrenheit 2005) UP1642-CUSA04798_00-SLUS211960000001 or EP1628-CUSA05760_00-SLES535390000001 "2016-08-09"
* Indigo Prophecy (aka Fahrenheit 2005) UP1642-CUSA04798_00-SLUS211960000001 or EP1628-CUSA05760_00-SLES535390000001 "2016-08-09"
* 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
Line 63: Line 61:
* Siren (Forbidden Siren) UP9000-CUSA02198_00-SCUS973550000001 or EP9000-CUSA02274_00-SCES519200000001 (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 (Forbidden Siren) UP9000-CUSA02198_00-SCUS973550000001 or EP9000-CUSA02274_00-SCES519200000001 (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"
* 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 or PS5 9.20
* 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 2: Band of Thieves™ (PS5: UP9000-PPSA22287_00-SCUS973160000000) 2024-12-10 PS5 10.01
* Sly 3: Honour Among Thieves™ (PS5: UP9000-PPSA22288_00-SCUS974640000000) 2024-12-10 PS5 10.01
* Star Ocean Till The End Of Time UP0082-CUSA04778_00-SLUS204880000001 or JP0082-CUSA04842_00-SLPM654380000001 or EP0082-CUSA06379_00-SLES820280000001
* Star Ocean Till The End Of Time UP0082-CUSA04778_00-SLUS204880000001 or JP0082-CUSA04842_00-SLPM654380000001 or EP0082-CUSA06379_00-SLES820280000001
* 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 2016-01-15
Line 73: Line 69:
* 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 or EP0576-CUSA04164_00-SLUS215540000001 2018-06-26
* The King of Fighters Collection: The Orochi Saga UP0576-CUSA03753_00-SLUS215540000001 or EP0576-CUSA04164_00-SLUS215540000001 2018-06-26
* The King of Fighters '98 Ultimate Match (not to be confused with the Final Edition) UP0576-CUSA03751_00-SLUS218160000001 or EP0576-CUSA04159_00-SLES552800000001 2018-03-20
* The King of Fighters '98 Ultimate Match UP0576-CUSA03751_00-SLUS218160000001 or EP0576-CUSA04159_00-SLES552800000001
* The King of Fighters 2000 UP0576-CUSA03748_00-SLUS208340000001 or UP4002-CUSA03748_00-SLUS208340000001 or EP0576-CUSA04160_00-SLUS208340000001 "2016-05-03"
* The King of Fighters 2000 UP0576-CUSA03748_00-SLUS208340000001 or UP4002-CUSA03748_00-SLUS208340000001 or EP0576-CUSA04160_00-SLUS208340000001 "2016-05-03"
* The Mark of Kri UP9000-CUSA01729_00-SCUS971400000001 or EP9000-CUSA01945_00-SCES511640000001 "2015-12-05"
* The Mark of Kri UP9000-CUSA01729_00-SCUS971400000001 or EP9000-CUSA01945_00-SCES511640000001 "2015-12-05"
Line 104: Line 100:
* 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 2016-01-15
* 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, not to be confused with the Final Edition) 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 or UP4002-CUSA03748_00-SLUS208340000001 "2016-05-03"
* 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 2018-06-26
Line 112: Line 108:
== PS2 remaster games available on PS4 PS Store ==
== PS2 remaster games available on PS4 PS Store ==


* Destroy All Humans! UP4389-CUSA14899_00-DAH1REMAKEUS0000 or JP2880-CUSA19492_00-DAH1REMAKEJP0000 or EP4389-CUSA14910_00-DAH1REMAKEEU0000, PS4 7.50 2020-07-28
* Destroy All Humans! UP4389-CUSA14899_00-DAH1REMAKEUS0000, JP2880-CUSA19492_00-DAH1REMAKEJP0000, EP4389-CUSA14910_00-DAH1REMAKEEU0000, PS4 7.50
* Destroy All Humans! 2 (in Destroy All Humans! 2 - Reprobed) (PS5: UP4389-PPSA05398_00-DAH2REPRODBEDUS0) 2022-08-30
* Samurai Shodown V Special
* Metal Gear Solid 2: Sons of Liberty (HD Collection version i.e. Metal Gear Solid 2: Substance) (in METAL GEAR SOLID: MASTER COLLECTION Vol.1 PS4 & PS5) 2023-10-24
* Metal Gear Solid Collection Vol 1
* Metal Gear Solid 3: Snake Eater (HD Collection version i.e. Metal Gear Solid 3: Subsistence) (in METAL GEAR SOLID: MASTER COLLECTION Vol.1 PS4 & PS5) 2023-10-24
* Tales of Symphonia Remastered UP0700-CUSA29214_00-TALESOFSYMPHONIA 2023-02-17
* Tales of Symphonia (in 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 2 (in 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
* Tomb Raider: The Angel of Darkness (in Tomb Raider IV-VI Remastered PS4 & PS5) (PS5: UP1032-PPSA18154_00-TOMBRAIDER456225) 2025-02-14
* The King of Fighters '98 Ultimate Match (in The King of Fighters '98 Ultimate Match Final Edition) UP0576-CUSA29364_00-KOF98UMFE00000US or EP0576-CUSA29365_00-KOF98UMFE00000EU 2022-06-21


= Description =
= Description =
Line 151: Line 145:
| 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,'''  
| 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,'''  
|-
|-
| Jak x || Useful for games with COP2 issues. It fixed Superman - Shadow of Apokolips's sps. || || '''Jak,''' '''Jak 2,''' '''Jak 3,'''  
| Jak x || Useful for games with GS issues. It fixed Superman - Shadow of Apokolips's sps. || || '''Jak,''' '''Jak 2,''' '''Jak 3,'''  
|-
|-
| Art of Fighting Anthology || Similar to RECVX. It was successful in fixing "'''Coraline'''." Sometimes called "AOFA" || 2.0 ||
| 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, games requiring '''OPL's mode 2''' tend to have a higher chance of being playable under it. Often referred to as "RECVX" || 1.7 || '''Fatal Fury,''' '''Samurai Showdown,''' '''Redfaction,''' '''AOFA.'''  
| 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, games requiring '''OPL's mode 2''' tend to have a higher chance of being playable under it. 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. ||  ||  
| Fatal Fury Battle Archives: Volume 2 || Similarly to RECVX, it is often used to fix frozen games. ||  ||  
Line 329: Line 323:
|  || || || Speedhacks / Desync Fixes|| ||
|  || || || Speedhacks / Desync Fixes|| ||
|-
|-
| --ee-cycle-scalar  || {{Universal}} ||Slowest cycles speed: 5.0<br>Normal cycles speed: 1.0<br>Fastest cycles speed: 0.1 || {{Float}} || Changes the cycle speed of the EE. It can benefit core sync or performance (lowering the cycle rate may affect FMVS). The default value for most emulators is ~1.0. It is highly sensitive, as any slight change may break or fix the game. || --ee-cycle-scalar=1.0  
| --ee-cycle-scalar  || {{Universal}} ||Slowest cycles speed: 5.0<br>Normal cycles speed: 1.0<br>Fastest cycles speed: 0.1 || {{Float}} || Changes the cycle speed of the EE. It can benefit core sync or performance (lowering the cycle rate may affect FMVS). The default value for most emulators is ~1.0. It is highly sensitive, as any slight change may break or fix the game. (Dividing 100 with the entered value is how to find what EE clock speed percentage % the value is setting. For example, 100/5.00 = 20%) || --ee-cycle-scalar=1.0  
|-
|-
| --ee-context-switch-cycles  || {{Exclusive}} || Accelerate cycles (359 => 0) <br>Decelerate cycles (361 => ∞ ) || {{4 Bytes}}||Its effects are mysterious. Possibly delays EE startup when starting new tasks. Does not work on Jak emulators. Default value is 360. Seems to be useful for Bee Movie, Metal Gear Solid 3, as well as others with IPU issues. It bears no effect on VU timing, but it may alter the core's timing with some DMA channels. || --ee-context-switch-cycles=2700?
| --ee-context-switch-cycles  || {{Exclusive}} || Accelerate cycles (359 => 0) <br>Decelerate cycles (361 => ∞ ) || {{4 Bytes}}||Its effects are mysterious. Possibly delays EE startup when starting new tasks. Does not work on Jak emulators. Default value is 360. Seems to be useful for Bee Movie, Metal Gear Solid 3, as well as others with IPU issues. It bears no effect on VU timing, but it may alter the core's timing with some DMA channels. || --ee-context-switch-cycles=2700?
|-
|-
| --ee-hook  || {{Variable}} || AdvanceClock<br>FastForwardClock<br>MfifoDrain<br>ForceEOB<br>SO3_AudioRequest<br>SO3_AudioWriteBack || style="background:#212d9c; color:#ffffff;|4 Byte hex (offset),string,4 Byte hex (opcode),4 Byte Decimals (advanceclock value)|| Runs the specified functionality each time a selected EE offset is reached. FastForwardClock and AdvanceClock help fix core sync issues, but can be used as a speedhack. AdvanceClock stalls the EE for a specified amount of cycles (in decimals), while FastForwardClock behaves similarly. They are commonly used on CTC2 instructions. FastoForwardClock can be used on any offset. However, some offsets are ignored by AdvanceClock - it could be that this function only works on instructions reached after processing a branch instruction, likely specifically designed to work at both the start or end of a branch instruction (a loop). However, this is only the case for old emulators like King Of Fighters 2000 and War Of The Monsters. Newer ones such as Jak operate differently, where AdvanceClock only works at the end of a branch instruction (when it's false).<pre>
| --ee-hook  || {{Variable}} || AdvanceClock<br>FastForwardClock<br>MfifoDrain || style="background:#212d9c; color:#ffffff;|4 Byte hex (offset),string,4 Byte hex (opcode),4 Byte Decimals (advanceclock value)|| Runs the specified functionality each time a selected EE offset is reached. FastForwardClock and AdvanceClock help fix core sync issues, but can be used as a speedhack. AdvanceClock stalls the EE for a specified amount of cycles (in decimals), while FastForwardClock behaves similarly. They are commonly used on CTC2 instructions. FastoForwardClock can be used on any offset. However, some offsets are ignored by AdvanceClock - it could be that this function only works on instructions reached after processing a branch instruction, likely specifically designed to work at both the start or end of a branch instruction (a loop). However, this is only the case for old emulators like King Of Fighters 2000 and War Of The Monsters. Newer ones such as Jak operate differently, where AdvanceClock only works at the end of a branch instruction (when it's false).<pre>
Advanceclock usage example:
Advanceclock usage example:


Line 340: Line 334:
0x8 beq zero,v1,0x0 <-- Advancelock cannot work here ✗
0x8 beq zero,v1,0x0 <-- Advancelock cannot work here ✗
0xC nop <-- Advancelock cannot work here ✗
0xC nop <-- Advancelock cannot work here ✗
0x10 nop <-- Advancelock can work here on both old and new emulators ✓.</pre> MfifoDrain is still unknown, but only works on modern emus such as Jakv2. However, it seems to somehow negatively impact performance. On Red Dead Revolver, it was used on two LW instructions grabbing data from 0x1000D010 and 0x1000D000. Both instructions were located at the start of a loop. ||--ee-hook=0x0025A9F2,AdvanceClock,,500 <br>--ee-hook=0x0019F0AD,FastForwardClock
0x10 nop <-- Advancelock can work here on both old and new emulators ✓.</pre> Mfifodrain is still unknown, but only works on modern emus such as Jakv2. On Red Dead Revolver, it was used on two LW instructions grabbing data from 0x1000D010 and 0x1000D000. Both instructions were located at the start of a loop. ||--ee-hook=0x0025A9F2,AdvanceClock,,500 <br>--ee-hook=0x0019F0AD,FastForwardClock
|-
|-
|-style="background-color:#D7EF54"
|-style="background-color:#D7EF54"
Line 476: Line 470:
|  || || || Speedhacks || ||
|  || || || Speedhacks || ||
|-
|-
| --cop2-opt-flags || {{Universal}} || 0, 1 ,2 || {{Semi-Binary}} || Optimize flags upon recompilation. 0 is the accurate option, 1 is mostly safe, 2 is unsafe. Setting it to 0 improves FPU accuracy. For example, it fixed gravity issues (falling through the floor) in Ratchet, and Brave - The Search for Spirit Dancer. It is an insignificant speedhack which should always be set to 0. [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --cop2-opt-flags=0
| --cop2-opt-flags || {{Universal}} || 0, 1 ,2 || {{Semi-Binary}} || Optimize flags upon recompilation. 0 is the accurate option, 1 is mostly safe, 2 is unsafe. Setting it to 0 improves FPU accuracy. For example, it fixed Ratchet's gravity issues. It is an insignificant speedhack which should always be set to 0. [https://github.com/PCSX2/pcsx2/blob/58f5a5b915915293b90e7e8f34c33f9c0424d1e8/pcsx2/x86/microVU_Misc.h#L280 More Info] || --cop2-opt-flags=0
|-  
|-  
| --cop2-opt-vf00 || {{Universal}} || 0, 1, 2 || {{Semi-Binary}} || Seems to be a hacky way of optimization through the vf00 register. Set to 1 by default, setting it to 0 fixed Superman Shadow of Apokolips freezing. It is an insignificant speedhack which should always be set to 0. || --cop2-opt-vf00=0
| --cop2-opt-vf00 || {{Universal}} || 0, 1, 2 || {{Semi-Binary}} || Seems to be a hacky way of optimization through the vf00 register. Set to 1 by default, setting it to 0 fixed Superman Shadow of Apokolips freezing. It is an insignificant speedhack which should always be set to 0. || --cop2-opt-vf00=0
Line 606: Line 600:
| --vu1 || {{Universal}} || jit-sync || {{string}}  || Selector between IR/JIT and it modes. Jit-sync works similarly to disabling MTVU. jit, trans, and jit-async are unimplemented functions that do not change anything. || --vu1=jit-sync
| --vu1 || {{Universal}} || jit-sync || {{string}}  || Selector between IR/JIT and it modes. Jit-sync works similarly to disabling MTVU. jit, trans, and jit-async are unimplemented functions that do not change anything. || --vu1=jit-sync
|-
|-
| --vu1-no-clamping || {{Universal}} ||  Enabled = 0<br>Disabled = 1 || {{binary}} || Changes the clamping behavior of the VU1. Setting specific to PS4 emulators, (unimplemented in PCSX2). It's not perfect, as some games such as Midnight Club 3, Shrek The Third, and Surf's Up do not work well with it. The default emulator's value is 1. It may slightly adjust VU1 timing. || --vu1-no-clamping=0
| --vu1-no-clamping || {{Universal}} ||  Enabled = 0<br>Disabled = 1 || {{binary}} || Changes the clamping behavior of the VU1. Setting specific to PS4 emulators, (unimplemented in PCSX2) with 0 resembling PCSX2's extra, and 1 extra + preserve sign. The default emulator's value is 1. It may slightly adjust VU1 timing. || --vu1-no-clamping=0
|-  
|-  
| --vu1-clamp-range || {{Exclusive}} || vu1 memory offset start,end (0x0 - 0x800) ||  style="background:#5c32a8; color:#ffffff;"|Hex combination || Values must not exceed 0x800 ||
| --vu1-clamp-range || {{Exclusive}} || vu1 memory offset start,end (0x0 - 0x800) ||  style="background:#5c32a8; color:#ffffff;"|Hex combination || Values must not exceed 0x800 ||
Line 708: Line 702:
| --vif-ignore-invalid-cmd || {{Exclusive}} || 0, 1 || {{Binary}} || Ignore invalid vif commands. In some cases, setting it to 1 can fix games that freeze while showing the same frame. || --vif-ignore-invalid-cmd=1
| --vif-ignore-invalid-cmd || {{Exclusive}} || 0, 1 || {{Binary}} || Ignore invalid vif commands. In some cases, setting it to 1 can fix games that freeze while showing the same frame. || --vif-ignore-invalid-cmd=1
|-
|-
| --vif-thread-chunk-size || {{Exclusive}} || 0, 1024 || {{2 Bytes}} || Slows down both VIFS the lower it is(?) 1024 is the limit, with 112 being the default value.  ||  --vif-thread-chunk-size=100  
| --vif-thread-chunk-size || {{Exclusive}} || 0, 1024 || {{2 Bytes}} || Slows down both VIFS the lower it is, and speeds them up the higher it is. 1024 is the limit, with 112 being the default value.  ||  --vif-thread-chunk-size=100  
|-
|-
| --detect-idle-vif || {{Universal}} || 0, 1 || {{Binary}} || Enabled by default. Unknown function || --detect-idle-vif=0
| --detect-idle-vif || {{Universal}} || 0, 1 || {{Binary}} || Enabled by default. Unknown function || --detect-idle-vif=0
Line 777: Line 771:
| --gs-flush-ad-xyz || {{Exclusive}} ||  always, safe, safeZwrite, off, 0 || {{string}} || Force a primitive flush when a framebuffer is also an input texture. This fixes some processing effects, but it can sometimes be heavy on the GS in terms of performance. GTA: SA, and Jak 3 use this command. || --gs-flush-ad-xyz=safe
| --gs-flush-ad-xyz || {{Exclusive}} ||  always, safe, safeZwrite, off, 0 || {{string}} || Force a primitive flush when a framebuffer is also an input texture. This fixes some processing effects, but it can sometimes be heavy on the GS in terms of performance. GTA: SA, and Jak 3 use this command. || --gs-flush-ad-xyz=safe
|-
|-
| --gs-force-bilinear || {{Universal}} || 0, 1 || {{binary}} || Forces bilinear filtering, can fix ghosting problems, and corrects positioning between pixels, such as in Pac-Man World Rally. Recommended for most games except the ones using 2D images, as it could incorrectly structure pixels' positions. || --gs-force-bilinear=1
| --gs-force-bilinear || {{Universal}} || 0, 1 || {{binary}} || Forces bilinear filtering, can fix ghosting problems in some cases, and corrects positioning between pixels. Recommended for most games except the ones using 2D images, as it could incorrectly structure pixels' positions. || --gs-force-bilinear=1
|-
|-
|-style="background-color:#D7EF54"
|-style="background-color:#D7EF54"
Line 792: Line 786:
| --gs-progressive || {{Universal}} || 0, 1 || {{binary}} || Enables progressive scan. Can fix graphical glitches/double screen issues.  ||
| --gs-progressive || {{Universal}} || 0, 1 || {{binary}} || Enables progressive scan. Can fix graphical glitches/double screen issues.  ||
|-  
|-  
| --gs-vert-precision || {{Exclusive}} || 8, 16|| {{1 Byte}} || This option allows the user to choose between 8-bit and 16-bit precision for the vertex calculations in 3D graphics rendering. It reduces the likelihood of visual distortions such as jagged edges, improper alignment of, or missing polygons, and model 'warping' when set to 8. The emu expects the values of 8 or 16, any other values are not permitted. It is set at 16 by default. || --gs-vert-precision=8
| --gs-vert-precision || {{Exclusive}} || 8, 16|| {{1 Byte}} || This option allows the user to choose between 8-bit and 16-bit precision for the vertex calculations in 3D graphics rendering. It reduces the likelihood of visual distortions such as jagged edges, improper alignment of polygons, or model "warping." The emu expects the values of 8 or 16, any other values are not permitted. It is set at 16 by default. || --gs-vert-precision=8
|-
|-
| --gs-skip-dirty-flush-on-mipmap || {{Universal}} || 0, 1 || {{binary}} ||  Skip flushing textures marked as dirty from cache when enabled. It does, however, require mipmap to be enabled first. || --gs-skip-dirty-flush-on-mipmap=1
| --gs-skip-dirty-flush-on-mipmap || {{Universal}} || 0, 1 || {{binary}} ||  Skip flushing textures marked as dirty from cache when enabled. It does, however, require mipmap to be enabled first. || --gs-skip-dirty-flush-on-mipmap=1
Line 1,023: Line 1,017:
|-
|-
| {{cellcolors|#0b9fb3|#000000}}vuClampMode: 2 ||{{cellcolors|#03fcb1|#000000}}<br>--vu1-no-clamping=0<br>--vu0-no-clamping=0<br>--cop2-no-clamping=0  || Works similar.
| {{cellcolors|#0b9fb3|#000000}}vuClampMode: 2 ||{{cellcolors|#03fcb1|#000000}}<br>--vu1-no-clamping=0<br>--vu0-no-clamping=0<br>--cop2-no-clamping=0  || Works similar.
|-
| {{cellcolors|#0b9fb3|#000000}}vuClampMode: 3  || {{cellcolors|#03fcb1|#000000}}<br>--vu1-no-clamping=1<br>--vu0-no-clamping=1<br>--cop2-no-clamping=1<br>--vu-to-double=1 || Works similar.
|-
|-
| {{cellcolors|#0b9fb3|#000000}}eeClampMode: 2 || {{cellcolors|#03fcb1|#000000}}--fpu-to-double=0<br>--fpu-no-clamping=0<br> || Works similar.
| {{cellcolors|#0b9fb3|#000000}}eeClampMode: 2 || {{cellcolors|#03fcb1|#000000}}--fpu-to-double=0<br>--fpu-no-clamping=0<br> || Works similar.
|-
| {{cellcolors|#0b9fb3|#000000}}eeClampMode: 3  || {{cellcolors|#03fcb1|#000000}}--fpu-to-double=1<br>--fpu-no-clamping=1<br> || Works similar.
|-
|-
| {{cellcolors|#0b9fb3|#000000}}eeRoundMode: || {{cellcolors|#03fcb1|#000000}}--fpu-accurate-muldiv=1<br>--fpu-accurate-addsub=1 ||
| {{cellcolors|#0b9fb3|#000000}}eeRoundMode: || {{cellcolors|#03fcb1|#000000}}--fpu-accurate-muldiv=1<br>--fpu-accurate-addsub=1 ||
Line 1,032: Line 1,030:
| {{cellcolors|#0b9fb3|#000000}}vu1RoundMode: || {{cellcolors|#03fcb1|#000000}}--vu1-accurate-addsub-range=<br>--vu1-mul0fix-range=||
| {{cellcolors|#0b9fb3|#000000}}vu1RoundMode: || {{cellcolors|#03fcb1|#000000}}--vu1-accurate-addsub-range=<br>--vu1-mul0fix-range=||
|-
|-
| {{cellcolors|#0b9fb3|#000000}}eeCycleRate: || {{cellcolors|#03fcb1|#000000}}--ee-cycle-scalar= || '''"Potential" equivalent values: PCSX2 - PS4''':<br>300% --> Unavailable<br>180% --> 0.2<br>130% -->0.7<br>'''100% --> 1.0'''<br>75% --> 1.333<br>60% --> 1.666<br>50% --> 2
| {{cellcolors|#0b9fb3|#000000}}eeCycleRate: || {{cellcolors|#03fcb1|#000000}}--ee-cycle-scalar= || '''"Potential" equivalent values: PCSX2 - PS4''':<br>300% --> 0.333<br>180% --> 0.555<br>130% -->0.769<br>'''100% --> 1.0'''<br>75% --> 1.333<br>60% --> 1.666<br>50% --> 2
|-
|-
| {{cellcolors|#0b9fb3|#000000}}FpuNegDivHack<br>FpuMulHack || {{cellcolors|#03fcb1|#000000}}--fpu-accurate-muldiv=1 ||  
| {{cellcolors|#0b9fb3|#000000}}FpuNegDivHack<br>FpuMulHack || {{cellcolors|#03fcb1|#000000}}--fpu-accurate-muldiv=1 ||  
Line 1,038: Line 1,036:
| {{cellcolors|#0b9fb3|#000000}}cpuCLUTRender: 1 || {{cellcolors|#03fcb1|#000000}}--gs-uv-shift-pointsampling=1 ||
| {{cellcolors|#0b9fb3|#000000}}cpuCLUTRender: 1 || {{cellcolors|#03fcb1|#000000}}--gs-uv-shift-pointsampling=1 ||
|-
|-
| {{cellcolors|#0b9fb3|#000000}}MTVU: 0 || {{cellcolors|#03fcb1|#000000}}--vu1=jit-sync || Some games will also require --vu1-mpg-cycles= to be between "6000 - 19000"
| {{cellcolors|#0b9fb3|#000000}}MTVUSpeedHack: 0 || {{cellcolors|#03fcb1|#000000}}--vu1=jit-sync || Some games will also require --vu1-mpg-cycles= to be between "6000 - 19000"
|-
|-
| {{cellcolors|#0b9fb3|#000000}}mergeSprite<br>alignSprite || {{cellcolors|#03fcb1|#000000}}--gs-kernel-cl-up="up2x2simple" || Note: works similarly but not the equivalent
| {{cellcolors|#0b9fb3|#000000}}mergeSprite<br>alignSprite || {{cellcolors|#03fcb1|#000000}}--gs-kernel-cl-up="up2x2simple" || Note: works similarly but not the equivalent
Line 1,275: Line 1,273:
|  ||  || GS related ||
|  ||  || GS related ||
|-
|-
| CountFrameOnPS2  || {{exclusive}} || emuObj.CountFrameOnPS2() || updates FRAPS/Actual FPS reading in olympus
| CountFrameOnPS2  || || emuObj.CountFrameOnPS2() || updates FRAPS/Actual FPS reading in olympus
|-
|-
| SetGsTitleFix  || || emuObj.SetGsTitleFix() ||  [[PS2_Emulation#SetGsTitleFix|More info]]
| SetGsTitleFix  || || emuObj.SetGsTitleFix() ||  [[PS2_Emulation#SetGsTitleFix|More info]]
Line 1,283: Line 1,281:
|SetDisplayAspectNormal  || || emuObj.SetDisplayAspectNormal() || Force display area to 4:3.
|SetDisplayAspectNormal  || || emuObj.SetDisplayAspectNormal() || Force display area to 4:3.
|-
|-
|ForceRefreshRate  || {{exclusive}} || emuObj.ForceRefreshRate(<hz>) || emuObj.ForceRefreshRate(50) correct values are 0, 50, 60 where 0 = default.  
|ForceRefreshRate  || || emuObj.ForceRefreshRate(<hz>) || emuObj.ForceRefreshRate(50) correct values are 0, 50, 60 where 0 = default.  
|-
|-
|LoadFsShader  || || emuObj.LoadFsShader(<slot?>, "<path>") || <div align="left"><pre>Shaders must be loaded right after GS has been initialized.  
|LoadFsShader  || || emuObj.LoadFsShader(<slot?>, "<path>") || <div align="left"><pre>Shaders must be loaded right after GS has been initialized.  
Line 2,699: Line 2,697:
| M-Bit support is broken || '''Every game that uses M-Bit'''. Totally Spies! Totally Party, Mike Tyson Heavyweight Boxing, My Street, Crash Twinsanity, Marvel Nemesis, Panzer Elite Action - Fields of Glory, Super Monkey Ball Adventure, most Eko Software games, and many more. [https://github.com/PCSX2/pcsx2/pull/3593] || Lua patches to the EE memory || While emulator respect m-bit, way that VU0 work on it make it broken most of times (check "VU0 is not running in sync with EE core" issue).
| M-Bit support is broken || '''Every game that uses M-Bit'''. Totally Spies! Totally Party, Mike Tyson Heavyweight Boxing, My Street, Crash Twinsanity, Marvel Nemesis, Panzer Elite Action - Fields of Glory, Super Monkey Ball Adventure, most Eko Software games, and many more. [https://github.com/PCSX2/pcsx2/pull/3593] || Lua patches to the EE memory || While emulator respect m-bit, way that VU0 work on it make it broken most of times (check "VU0 is not running in sync with EE core" issue).
|-
|-
| Multitap doesn't support all games || Urban reign, Digimon Rumble Arena 2, Digimon World 4, others || Lua patches || Emulator expect PS4 to be able to use 8 controllers (well, who doesn't? Even PS1 can do it...). That cause all kind of mess with controller detection when game expect multitap in second port.
| Multitap doesn't support all games || Urban reign, Digimon Rumble Arena 2, others || Lua patches || Emulator expect PS4 to be able to use 8 controllers (well, who doesn't? Even PS1 can do it...). That cause all kind of mess with controller detection when game expect multitap in second port.
|-
|-
| DMA writes when busy signal is engaged || Ratchet and Clank games, Metal gear solid 2, others || None yet || AKA eetiminghack
| DMA writes when busy signal is engaged || Ratchet and Clank games, Metal gear solid 2, others || None yet || AKA eetiminghack
Line 2,731: Line 2,729:
| IOP-CDVD desync || Genji - Dawn of the Samurai, Wild Arms 4, Wild Arms 5, Official Releases such as War of the Monsters and Kinetica, unofficial releases such as every Ratchet game, God of War, as well as others.  || LUA patches as seen in official releases. Setting iopcyclescalar to 0.38 yielded the best results, but still wrong. ||  The least significant effect would be a restarting music track. The most significant would be a game freezing at a single image with looping audio.
| IOP-CDVD desync || Genji - Dawn of the Samurai, Wild Arms 4, Wild Arms 5, Official Releases such as War of the Monsters and Kinetica, unofficial releases such as every Ratchet game, God of War, as well as others.  || LUA patches as seen in official releases. Setting iopcyclescalar to 0.38 yielded the best results, but still wrong. ||  The least significant effect would be a restarting music track. The most significant would be a game freezing at a single image with looping audio.
|-
|-
| IPU runs slower than the EE, causing a freeze or a crash on an FMV || Bee Movie, Tomb Raider Angel of Darkness || ||
| The default IOP clock speed is 16x faster than it should be. || || ||
|-
|-
|}
|}
Line 4,090: Line 4,088:
end
end
</pre>
</pre>
= Digital Manuals =
See [[PS2 Classics Manuals]].


= 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://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]
Line 4,104: Line 4,099:
* [https://github.com/Zcor3x/Playstation-2-Classics-PS4 Most base emulators for PS2 Classics released on PS4 by Zcor3x]
* [https://github.com/Zcor3x/Playstation-2-Classics-PS4 Most base emulators for PS2 Classics released on PS4 by Zcor3x]
* [https://blog.eu.playstation.com/2018/05/01/12-ps2-classics-hit-ps-now-this-month-heres-why-should-play-them/]
* [https://blog.eu.playstation.com/2018/05/01/12-ps2-classics-hit-ps-now-this-month-heres-why-should-play-them/]
* [https://www.psx-place.com/threads/few-notes-about-ps2-emulator-on-ps4.14907/ Remarks by kozarovv to wikify]


{{Reverse Engineering}}
{{Reverse Engineering}}
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)