Editing PS2 Emulation
Jump to navigation
Jump to search
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 | ||
* 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" | ||
* 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 | * 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 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 | * 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 | * 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 | * Destroy All Humans! UP4389-CUSA14899_00-DAH1REMAKEUS0000, JP2880-CUSA19492_00-DAH1REMAKEJP0000, EP4389-CUSA14910_00-DAH1REMAKEEU0000, PS4 7.50 | ||
* Samurai Shodown V Special | |||
* | * Metal Gear Solid Collection Vol 1 | ||
* Metal Gear Solid | * 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 | ||
* | |||
* 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 | ||
= 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 | | 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 | | 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> | | --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> | 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 | | --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) | | --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 | | --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 | | --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 | | --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 871: | Line 865: | ||
| --iop-const-folding || {{Universal}}|| None,Gpr,All || {{string}} || IOP constant folding [https://en.wikipedia.org/wiki/Constant_folding More info] || --iop-const-folding=All | | --iop-const-folding || {{Universal}}|| None,Gpr,All || {{string}} || IOP constant folding [https://en.wikipedia.org/wiki/Constant_folding More info] || --iop-const-folding=All | ||
|- | |- | ||
| --iop-tight-slice-count || {{Exclusive}} || Fastest = 0<br>Default = 8<br>Slowest=65534 || {{ | | --iop-tight-slice-count || {{Exclusive}} || Fastest = 0<br>Default = 8<br>Slowest=65534 || {{4 Bytes}} || 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 || {{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) || IOP native hook, Sony uses it on their official release of Red Dead Revolver. It helps fix timing issues. It runs the specified functionality each time a selected IOP offset is reached. FastForwardClock and AdvanceClock help fix core sync issues. It is believed that AdvanceClock stalls the IOP for a specified amount of cycles, while FastForwardClock behaves similarly. For a mysterious reason, some offsets are ignored by AdvanceClock - it could be that this function only works on instructions 2 cycles ahead of a branch, likely specifically designed to work at both the start or end of a branch (on newer emus, only the end of a branch works). Mfifodrain is still unknown, but only works on modern emus such as Jakv2. || --iop-hook=0x0086ac,FastForwardClock | | --iop-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) || IOP native hook, Sony uses it on their official release of Red Dead Revolver. It helps fix timing issues. It runs the specified functionality each time a selected IOP offset is reached. FastForwardClock and AdvanceClock help fix core sync issues. It is believed that AdvanceClock stalls the IOP for a specified amount of cycles, while FastForwardClock behaves similarly. For a mysterious reason, some offsets are ignored by AdvanceClock - it could be that this function only works on instructions 2 cycles ahead of a branch, likely specifically designed to work at both the start or end of a branch (on newer emus, only the end of a branch works). Mfifodrain is still unknown, but only works on modern emus such as Jakv2. || --iop-hook=0x0086ac,FastForwardClock | ||
Line 908: | Line 902: | ||
| --boot-disc-id || {{Universal}} || 1-5 || {{1 Byte}} || sets boot disc for multi-disc pkg || --boot-disc-id=0 | | --boot-disc-id || {{Universal}} || 1-5 || {{1 Byte}} || sets boot disc for multi-disc pkg || --boot-disc-id=0 | ||
|- | |- | ||
| --switch-disc-reset || {{Exclusive}} || 1 = Enables resetting the game upon disc swap,<br>0 = Disables resetting the game upon disc swap|| {{Binary}} || 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 || {{Exclusive}}|| 1 = Enables resetting the game upon disc swap,<br>0 = Disables resetting the game upon disc swap|| {{Binary}} || 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 || || || | ||
Line 1,023: | Line 1,015: | ||
|- | |- | ||
| {{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,028: | ||
| {{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% --> | | {{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,034: | ||
| {{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}} | | {{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,062: | Line 1,058: | ||
--vu0-opt-flags=0 | --vu0-opt-flags=0 | ||
--vu1-opt-flags=0 | --vu1-opt-flags=0 | ||
--vu-custom-min-max=0 | --vu-custom-min-max=0 | ||
--vu-xgkick-delay=0 | --vu-xgkick-delay=0 | ||
Line 1,275: | Line 1,268: | ||
| || || GS related || | | || || GS related || | ||
|- | |- | ||
| CountFrameOnPS2 || | | 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,276: | ||
|SetDisplayAspectNormal || || emuObj.SetDisplayAspectNormal() || Force display area to 4:3. | |SetDisplayAspectNormal || || emuObj.SetDisplayAspectNormal() || Force display area to 4:3. | ||
|- | |- | ||
|ForceRefreshRate || | |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,692: | ||
| 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 | | 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,724: | ||
| 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. | ||
|- | |- | ||
| | | The default IOP clock speed is 16x faster than it should be. || || || | ||
|- | |- | ||
|} | |} | ||
Line 4,090: | Line 4,083: | ||
end | end | ||
</pre> | </pre> | ||
= 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,094: | ||
* [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/] | ||
{{Reverse Engineering}} | {{Reverse Engineering}} |