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 321: | Line 321: | ||
| || || || Speedhacks / Desync Fixes|| || | | || || || Speedhacks / Desync Fixes|| || | ||
|- | |- | ||
| --ee-cycle-scalar || {{Universal}} ||Slowest cycles speed: 5. | | --ee-cycle-scalar || {{Universal}} ||Slowest cycles speed: 5.00<br>Normal cycles speed: 1.000<br>Fastest cycles speed: 0.100 || {{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 (360 => 0) <br>Decelerate cycles (361 => ∞ ) || {{4 Bytes}}||Its effects are mysterious. Possibly configures how many CPU cycles the emulator should run before switching between different tasks or threads. 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 | | --ee-context-switch-cycles || {{Exclusive}} || Accelerate cycles (360 => 0) <br>Decelerate cycles (361 => ∞ ) || {{4 Bytes}}||Its effects are mysterious. Possibly configures how many CPU cycles the emulator should run before switching between different tasks or threads. 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. || --ee-context-switch-cycles=2700? | ||
|- | |- | ||
| --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. It is believed that AdvanceClock stalls the EE for a specified amount of cycles (numbers likely valued akin to eecyclescalar's), while FastForwardClock behaves similarly. They are commonly used on the offset directly succeeding an affected CTC2 instruction. 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. 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 2 cycles ahead at the end of a branch instruction.<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. It is believed that AdvanceClock stalls the EE for a specified amount of cycles (numbers likely valued akin to eecyclescalar's), while FastForwardClock behaves similarly. They are commonly used on the offset directly succeeding an affected CTC2 instruction. 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. 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 2 cycles ahead at the end of a branch instruction.<pre> | ||
Line 744: | Line 744: | ||
==== [https://www.psdevwiki.com/ps2/Graphics_Synthesizer GS] ==== | ==== [https://www.psdevwiki.com/ps2/Graphics_Synthesizer GS] ==== | ||
<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>"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; font-size:small;" | {| cellspacing="0" cellpadding="2" border="1" class="wikitable" style="text-align: center; font-size:small;" | ||
Line 762: | Line 762: | ||
| --gs-use-mipmap || {{Universal}} || Default = 0<br>Values = 0, 1 || {{binary}} || Enables mipmapping support. Can be used to fix graphics. Needs --gs-kernel-cl="mipmap" for full mipmapping support. If upscaling, however, --gs-kernel-cl-up="mipmap2x2" is also needed. It works best on War of the Monsters emulator, as can be seen in the Ratchet series' mipmapping issues responding only to this emu's mipmapping functionality.|| --gs-use-mipmap=1 | | --gs-use-mipmap || {{Universal}} || Default = 0<br>Values = 0, 1 || {{binary}} || Enables mipmapping support. Can be used to fix graphics. Needs --gs-kernel-cl="mipmap" for full mipmapping support. If upscaling, however, --gs-kernel-cl-up="mipmap2x2" is also needed. It works best on War of the Monsters emulator, as can be seen in the Ratchet series' mipmapping issues responding only to this emu's mipmapping functionality.|| --gs-use-mipmap=1 | ||
|- | |- | ||
| --gs-use-deferred-l2h || {{Universal}} || 0, 1 || {{binary}} || Delay option for L2H (local to host, GS to EE) | | --gs-use-deferred-l2h || {{Universal}} || 0, 1 || {{binary}} || Delay option for L2H (local to host, GS to EE). || --gs-use-deferred-l2h=1 | ||
|- | |- | ||
| --gs-use-clut-merge || {{Universal}} || 0, 1 || {{binary}} || Enabling CLUT merging helps improve how the emulator processes textures that use indexed color palettes. It ensures more accurate emulation of the PS2’s color handling. It sometimes restores missing graphical elements, and fix texture flickering (prominently flickering shadows or UI elements). It prevents Spyro's shadow from flickering in Enter the Dragonfly. Enabling it is the accurate, albeit slow option. || --gs-use-clut-merge=1 | | --gs-use-clut-merge || {{Universal}} || 0, 1 || {{binary}} || Enabling CLUT merging helps improve how the emulator processes textures that use indexed color palettes. It ensures more accurate emulation of the PS2’s color handling. It sometimes restores missing graphical elements, and fix texture flickering (prominently flickering shadows or UI elements). It prevents Spyro's shadow from flickering in Enter the Dragonfly. Enabling it is the accurate, albeit slow option. || --gs-use-clut-merge=1 | ||
Line 977: | Line 977: | ||
| --pcr0-delta-hack || {{Exclusive}} || 0<br>Default=1.0<br>400000.0 || {{float}} || A scalar that modifies delta of pcr0 when reading it from MFC0. Some games rely on good performance counters accuracy (Spyro ANB cutscenes), and since emulator don't implement most events, hack it is. || --pcr0-delta-hack=1.0 | | --pcr0-delta-hack || {{Exclusive}} || 0<br>Default=1.0<br>400000.0 || {{float}} || A scalar that modifies delta of pcr0 when reading it from MFC0. Some games rely on good performance counters accuracy (Spyro ANB cutscenes), and since emulator don't implement most events, hack it is. || --pcr0-delta-hack=1.0 | ||
|- | |- | ||
| --jitproc-use-aslr || || || | | --jitproc-use-aslr || || || ||Disables compiler process ASLR, useful for easier debugging, as the compiler process will be always on fixed address. Theoretically useful for mast1c0re, but to change it you need to be already in... || --jitproc-use-aslr=0 | ||
|- | |- | ||
| --verbose-deci2 || {{Exclusive}} || 0, 1 || {{Binary}} || || | | --verbose-deci2 || {{Exclusive}} || 0, 1 || {{Binary}} || || | ||
Line 987: | Line 987: | ||
| --detect-idle-chcr|| {{universal}} || 0, 1 || {{Binary}} || Enabled by default, 0 disables it || --detect-idle-chcr=0 | | --detect-idle-chcr|| {{universal}} || 0, 1 || {{Binary}} || Enabled by default, 0 disables it || --detect-idle-chcr=0 | ||
|- | |- | ||
| --rom || | | --rom || || || location of the bios that's inside of the fpkg || Could allow to use custom bios, though still not working || --rom="PS20220WD20050620.crack" or --rom="/roms/PS20220WD20050620.crack" | ||
|- | |- | ||
| --cop1 || {{universal}} || jit, trans || {{string}} || ? || | | --cop1 || {{universal}} || jit, trans || {{string}} || ? || | ||
Line 2,687: | Line 2,687: | ||
|- | |- | ||
| Unknown IOP issues || Genji - Dawn of the Samurai, Wild Arms 4 || A number of issues can be at play here; IOP's cycle speed, for example, is 2x overclocked, CDVD's read speed and the SIF's speed are unknown.|| | | Unknown IOP issues || Genji - Dawn of the Samurai, Wild Arms 4 || A number of issues can be at play here; IOP's cycle speed, for example, is 2x overclocked, CDVD's read speed and the SIF's speed are unknown.|| | ||
|- | |- | ||
|} | |} | ||
Line 2,717: | Line 2,715: | ||
|- | |- | ||
| Bad timing || Unavailable || Ape Escape 3 || Sudden burst of in-game speed at some random points in the map || Unavailable | | Bad timing || Unavailable || Ape Escape 3 || Sudden burst of in-game speed at some random points in the map || Unavailable | ||
|- | |- | ||
| ? || vu0RoundMode: 2 || Ape Escape 3 || The character's buster malforms when spawning anew || #11386 | | ? || vu0RoundMode: 2 || Ape Escape 3 || The character's buster malforms when spawning anew || #11386 | ||
Line 4,051: | Line 4,047: | ||
* [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://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] | ||
* [https://www.psdevwiki.com/ps3/PS2_Custom_Configs PS3 custom configs] | |||
* [http://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/ A place for research and sharing successful configurations for the emulator] | |||
* [https://www.psdevwiki.com/ps4/Talk:PS2_Classics_Emulator_Compatibility_List Configuration examples] | |||
* [https://www.romhacking.net/utilities/692/ PS2DIS, a very helpful tool for debugging executables] | * [https://www.romhacking.net/utilities/692/ PS2DIS, a very helpful tool for debugging executables] | ||
* [https://forums.pcsx2.net/Thread-Fixing-unplayable-games A thread filled with patches for ps2 games] | * [https://forums.pcsx2.net/Thread-Fixing-unplayable-games A thread filled with patches for ps2 games] |