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 159: | Line 159: | ||
| The King of Fighters 2000 || Seemingly one of the most GIF-accurate emus, it '''prevents Koei Tecmo games (Dynasty Warriors 5: Empires and Samurai Warriors 2) 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''' | | The King of Fighters 2000 || Seemingly one of the most GIF-accurate emus, it '''prevents Koei Tecmo games (Dynasty Warriors 5: Empires and Samurai Warriors 2) 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'''', and | | Destroy All Humans! || Fixed '''Tenchu: Fatal Shadows'''' from crashing, and Bratz The Movie from freezing. || 0.1 || | ||
|- | |- | ||
| Destroy All Humans! 2 || || 0.7 || | | Destroy All Humans! 2 || || 0.7 || | ||
Line 301: | Line 301: | ||
| --mute-streaming-audio || all,none,main,bgm || || --mute-streaming-audio=all | | --mute-streaming-audio || all,none,main,bgm || || --mute-streaming-audio=all | ||
|- | |- | ||
|-style="background-color:#D7EF54" | |||
| || Controllers || || | |||
|- | |||
| --ds4-deadzone-adjust || || || | |||
|- | |||
| --ds4-diagonal-adjust || || || | |||
|- | |||
| --host-pad-loses-focus || || || --host-pad-loses-focus=1 | |||
|- | |||
| --host-gamepads || 0, 1 || || --host-gamepads=1 | |||
|- | |||
| --pad-record || 0, 1 || Enables logging pad info in emulog || | |||
|- | |||
| --pad-analog-to-digital || 0, 1 || Eternel ring emu uses the value 0 || --pad-analog-to-digital=0 | |||
|- | |||
| --mtap1 || Disabled, Always, ByHost || Multitap switch. The values are correct but the multitap only works in certain games. || --mtap1=always | |||
|- | |||
| --mtap2 || Disabled, Always, ByHost || Multitap switch. Some games require multitap to be selected only on second port (1, 2-a, 2-b, 2-c layout). To achieve that, we need to disable the first mtap. In some cases, the emulator can be flawed in how it handles multi-tap when it involves "--mtap2". All functions for 2A, 2B, 2C, 2D must be redirected to ports on multi-tap 1 by using memory patches. || --mtap2=always | |||
|} | |} | ||
Line 521: | Line 539: | ||
| || || || Graphical fixes || || | | || || || Graphical fixes || || | ||
|- | |- | ||
| --vu-xgkick-delay || {{Universal}} || | | --vu-xgkick-delay || {{Universal}} || Limit is between (0 => 31) || {{1 Byte}}|| Delay xgkick instruction execution. PCSX2 uses 6 cycles, PS3 uses 2-8 cycles depending on the game. A game with missing graphics will require a low value such as 0, while one that crashes might require a high value such as 7.|| --vu-xgkick-delay=8 | ||
|- | |- | ||
| --vu-custom-min-max || {{Universal}} || 0, 1 || {{binary}} || Custom Max/Mini logic for denormals. Disabled on pcsx2 by default but enabled by default on a couple of emus such as jakv2. Disabling it could potentially restore missing graphics, as it tends to adjust VU timing.|| --vu-custom-min-max=0 | | --vu-custom-min-max || {{Universal}} || 0, 1 || {{binary}} || Custom Max/Mini logic for denormals. Disabled on pcsx2 by default but enabled by default on a couple of emus such as jakv2. Disabling it could potentially restore missing graphics, as it tends to adjust VU timing.|| --vu-custom-min-max=0 | ||
Line 605: | Line 623: | ||
| --vu1-mul0fix-range || {{Exclusive}} || vu1 memory offset start,end (0x0 - 0x800) || style="background:#5c32a8; color:#ffffff;"|Hex combination || Allows the VU1 to accurately multiply by 0 in the specified memory range by using software floats rather than hardware floats. || --vu1-mul0fix-range=0x0,0x800 | | --vu1-mul0fix-range || {{Exclusive}} || vu1 memory offset start,end (0x0 - 0x800) || style="background:#5c32a8; color:#ffffff;"|Hex combination || Allows the VU1 to accurately multiply by 0 in the specified memory range by using software floats rather than hardware floats. || --vu1-mul0fix-range=0x0,0x800 | ||
|- | |- | ||
| --vu1-injection || {{Universal}} || 0, 1 || {{binary}} || | | --vu1-injection || {{Universal}} || 0, 1 || {{binary}} || unknown || --vu1-injection=1 | ||
|- | |- | ||
| --vu1-native-patch || {{Exclusive}} || 0, 1 || {{binary}} || 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 || {{Exclusive}} || 0, 1 || {{binary}} || Use native patches from recompiler, not compatible with Jak emus. Sony uses it for their official release of Primal || --vu1-native-patch=1 | ||
Line 670: | Line 688: | ||
| || || Other || || || | | || || Other || || || | ||
|- | |- | ||
| --vu0-injection || {{Exclusive}} || 0, 1 || {{binary}} || | | --vu0-injection || {{Exclusive}} || 0, 1 || {{binary}} || Unknown usage. || --vu0-injection=1 | ||
|- | |- | ||
| --vu0-inst-q || {{Universal}} || 0, 1 || {{binary}} || instant Q, no stalling on WAITQ, or instances of Q || --vu0-inst-q=1 | | --vu0-inst-q || {{Universal}} || 0, 1 || {{binary}} || instant Q, no stalling on WAITQ, or instances of Q || --vu0-inst-q=1 | ||
Line 707: | Line 725: | ||
| --vif1-ignore-cmd-ints || {{Exclusive}} || 0, 1 || {{Binary}} || Set to 1 to ignore command interrupt bit. ([https://psi-rockin.github.io/ps2tek/#vifcommands info] , explanation of int bit is right before command list). Can in some cases fix games that freeze while showing the same frame if set to 1. Games likes "Men in Black II - Alien Escape" and "Test Drive Unlimited" Will always need it. || --vif1-ignore-cmd-ints=1 | | --vif1-ignore-cmd-ints || {{Exclusive}} || 0, 1 || {{Binary}} || Set to 1 to ignore command interrupt bit. ([https://psi-rockin.github.io/ps2tek/#vifcommands info] , explanation of int bit is right before command list). Can in some cases fix games that freeze while showing the same frame if set to 1. Games likes "Men in Black II - Alien Escape" and "Test Drive Unlimited" Will always need it. || --vif1-ignore-cmd-ints=1 | ||
|- | |- | ||
| --vif1-instant-xfer || {{Universal}} || 1 = Instant VIF1<br>0 = Delayed VIF1 || {{Binary}} || Changes VIF1 timing. 0 slows its timing and is the compatible option for most games, while 1 speeds up its timing, and being more compatible with a small fraction of games. It can be used to fix graphical glitches or potentially prevent games from freezing | | --vif1-instant-xfer || {{Universal}} || 1 = Instant VIF1<br>0 = Delayed VIF1 || {{Binary}} || Changes VIF1 timing. 0 slows its timing and is the compatible option for most games, while 1 speeds up its timing, and being more compatible with a small fraction of games. It can be used to fix graphical glitches or potentially prevent games from freezing. || --vif1-instant-xfer=0 | ||
|} | |} | ||
Line 719: | Line 737: | ||
| || || || || SIF1 (IOP) || | | || || || || SIF1 (IOP) || | ||
|- | |- | ||
| --iop-sif1-cycle-scalar || {{Exclusive}} || Accelerate SIF cycles: (0.99 => 0.1) | | --iop-sif1-cycle-scalar || {{Exclusive}} || Accelerate SIF cycles: (0.99 => 0.1)<br>Decelerate SIF cycles: (1.1 => ∞ )|| {{Float}}|| Controls the speed at which the IOP receives from the EE || --iop-sif1-cycle-scalar=0.1 | ||
|- | |- | ||
| --ee-sif1-cycle-scalar || {{Exclusive}} ||Accelerate SIF cycles: (0.99 => 0.1) | | --ee-sif1-cycle-scalar || {{Exclusive}} ||Accelerate SIF cycles: (0.99 => 0.1)<br>Decelerate SIF cycles: (1.1 => ∞ )|| {{Float}}|| Controls the speed at which the EE sends to the IOP || --ee-sif1-cycle-scalar=0.1 | ||
|-style="background-color:#99ddff" | |-style="background-color:#99ddff" | ||
| || || || || SIF0 (EE) || | | || || || || SIF0 (EE) || | ||
|- | |- | ||
| --iop-sif0-cycle-scalar || {{Exclusive}} || Accelerate SIF cycles: (0.99 => 0.1) | | --iop-sif0-cycle-scalar || {{Exclusive}} || Accelerate SIF cycles: (0.99 => 0.1)<br>Decelerate SIF cycles: (1.1 => ∞ )|| {{Float}}|| Controls the speed at which the IOP sends to the EE || --iop-sif0-cycle-scalar=0.1 | ||
|- | |- | ||
| --ee-sif0-cycle-scalar || {{Exclusive}} || Accelerate SIF cycles: (0.99 => 0.1) | | --ee-sif0-cycle-scalar || {{Exclusive}} || Accelerate SIF cycles: (0.99 => 0.1)<br>Decelerate SIF cycles: (1.1 => ∞ )|| {{Float}}|| Controls the speed at which the EE receives from the IOP || --ee-sif0-cycle-scalar=0.1 | ||
|- | |- | ||
|} | |} | ||
Line 768: | Line 786: | ||
| --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 in some cases | | --gs-force-bilinear || {{Universal}} || 0, 1 || {{binary}} || Forces bilinear filtering, can fix ghosting problems in some cases. Not recommended for games that use 2D images, as it could possibly break games that rely on nearest filtering.|| --gs-force-bilinear=1 | ||
|- | |- | ||
|-style="background-color:#D7EF54" | |-style="background-color:#D7EF54" | ||
Line 805: | Line 823: | ||
| --gs-fieldswap-delay || {{Universal}} || Default = 0<br>Highest = 254 || {{1 Byte}} || Wait longer than usual to change field. In essence, it blurs/sharpens image. || | | --gs-fieldswap-delay || {{Universal}} || Default = 0<br>Highest = 254 || {{1 Byte}} || Wait longer than usual to change field. In essence, it blurs/sharpens image. || | ||
|- | |- | ||
| --gs-uv-shift-pointsampling || {{Exclusive}} || 0, 1 || {{binary}} || | | --gs-uv-shift-pointsampling || {{Exclusive}} || 0, 1 || {{binary}} || Can be used on games like manhunt that have issues with [https://github.com/PCSX2/pcsx2/issues/257#issuecomment-1140338680 UV light rendering] || --gs-uv-shift-pointsampling=1 | ||
|- | |- | ||
| --gs-render-tile-threshold || {{Exclusive}} || Lowest = 0<br>Default = 4294967295 || {{4 Bytes}} || Unknown. Used by Psychonauts|| --gs-render-tile-threshold=300000 | | --gs-render-tile-threshold || {{Exclusive}} || Lowest = 0<br>Default = 4294967295 || {{4 Bytes}} || Unknown. Used by Psychonauts|| --gs-render-tile-threshold=300000 | ||
Line 811: | Line 829: | ||
| --threaded-gs || {{Universal}} || 0, 1 || {{binary}} || Multi-threaded-gs ? || --threaded-gs=1 | | --threaded-gs || {{Universal}} || 0, 1 || {{binary}} || Multi-threaded-gs ? || --threaded-gs=1 | ||
|- | |- | ||
| --gs-aspect-ratio || {{Universal}} || aspect/float (default=0.81) || {{float}} || | | --gs-aspect-ratio || {{Universal}} || aspect/float (default=0.81) || {{float}} || || --gs-aspect-ratio=0.65 | ||
|- | |- | ||
| --gs-frontend-opt-mode || {{Exclusive}} || 0, 1, 2 || {{Semi-Binary}} || GS optimization mode? Unknown effect. Used on the Jak series. || --gs-frontend-opt-mode=1 | | --gs-frontend-opt-mode || {{Exclusive}} || 0, 1, 2 || {{Semi-Binary}} || GS optimization mode? Unknown effect. Used on the Jak series. || --gs-frontend-opt-mode=1 | ||
Line 848: | Line 866: | ||
|} | |} | ||
==== 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> | ||
Line 881: | Line 898: | ||
| --detect-idle-iop || {{Universal}} || 0, 1 || {{binary}}|| Enabled by default. || --detect-idle-iop=0 | | --detect-idle-iop || {{Universal}} || 0, 1 || {{binary}}|| Enabled by default. || --detect-idle-iop=0 | ||
|- | |- | ||
| --iop-jit-disasm || {{Universal}} || | | --iop-jit-disasm || {{Universal}} || || || || | ||
|- | |- | ||
| --iop-evt-check-full || {{Universal}} || 0, 1 ?|| {{binary}} || || | | --iop-evt-check-full || {{Universal}} || 0, 1 ?|| {{binary}} || || | ||
Line 887: | Line 904: | ||
|} | |} | ||
====CDVD==== | |||
<pre>The emulated CDVD settings. These commands help games with timing issues.</pre> | <pre>The emulated CDVD settings. These commands help games with timing issues.</pre> | ||
Line 899: | Line 916: | ||
| --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, | | --switch-disc-reset || {{Exclusive}}|| 1 = Enables resetting the game upon disc swap, 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 908: | Line 925: | ||
|- | |- | ||
| --verbose-cdvd-reads || {{Universal}} || 0, 1 || {{Binary}} || Significantly helps games with CDVD timing issues when set to 1. || --verbose-cdvd-reads=0 | | --verbose-cdvd-reads || {{Universal}} || 0, 1 || {{Binary}} || Significantly helps games with CDVD timing issues when set to 1. || --verbose-cdvd-reads=0 | ||
|- | |- | ||
|} | |} | ||
Line 983: | Line 945: | ||
| --verbose-cpu-cycles || {{Exclusive}} || 0, 1 || {{Binary}} || || | | --verbose-cpu-cycles || {{Exclusive}} || 0, 1 || {{Binary}} || || | ||
|- | |- | ||
| --detect-idle-intc || | | --detect-idle-intc || ||0, 1|| || Enabled by default, 0 disables it || --detect-idle-intc=0 | ||
|- | |- | ||
| --detect-idle-chcr|| | | --detect-idle-chcr|| || 0, 1|| || Enabled by default, 0 disables it || --detect-idle-chcr=0 | ||
|- | |- | ||
| --rom || {{universal}} || || 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" | | --rom || {{universal}} || || 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" | ||
|- | |- | ||
| --cop2 || || jit, trans || || ? || | |||
| --cop2 || | |||
|- | |- | ||
| --vu0 || | | --vu0 || || jit, trans || || ? || | ||
|- | |- | ||
| --r30 || | | --r30 || || jit, trans || ? || || | ||
|- | |- | ||
|} | |} |