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 2,414: | Line 2,414: | ||
|- | |- | ||
|} | |} | ||
=Faqs= | |||
<pre>A section dedicated to sharing knowledge about PS2 emulation in PS4</pre> | |||
==CLI== | |||
'''Making a comment inside the CLI''' | |||
<pre> | |||
1.You can make a comment inside a cli by using a Hashtag (#) at the start of the comment | |||
Example: | |||
#Speedup | |||
--vu1-mpg-cycles=1000 | |||
2.Your comments will be fully ignored if they are in the same line as the hashtag | |||
Example: | |||
#This is a comment | |||
Incorrect example: | |||
#This is a comment | |||
This is not a part of the comment and will crash the emu | |||
3. hyphens are the start of a command in CLI (--) | |||
And as for the equals, (=) everything that comes after it is the value that the command will use | |||
On a lua hyphens (--) mean it is a comment, but on the cli it's the start of the command. | |||
4. Commands cannot contain spaces | |||
Example: --ee-cycle-scalar=0.1 | |||
Incorrect example: --ee cycle scalar = 0.1 | |||
</pre> | |||
'''Making a CLI.''' | |||
<pre> | |||
1. You can use any text editor to make a CLI | |||
2. Each command has to be below the previous one and they cannot share the same line. | |||
Correct CLI example: | |||
--vu1-mpg-cycles=1000 | |||
--ee-cycle-scalar=1.1 | |||
Incorrect CLI example: | |||
--vu1-mpg-cycles=1000 --ee-cycle-scalar=1.1 | |||
3. Your commands cannot contain spaces | |||
4. Values start after the (=) sign | |||
5. Commands can possibly contain multiple value entries and some values can be skipped by adding (,,). | |||
Example: --ee-hook=0x0028A578,AdvanceClock,,1000 | |||
Unskipped value example: --ee-hook=0x0028A578,AdvanceClock,0x13a893bd,1000</pre> | |||
==LUA== | |||
'''Making a lua''' | |||
<pre> | |||
When making a lua there is 1 part that is always necessary (Apirequest) | |||
and 2 parts that are almost always necessary (Object) (Object's commands). | |||
By order it goes like this: | |||
1. Apirequest | |||
2. Object calling, gsobj/eeobj/iopobj, etc | |||
3. the object's command | |||
You cannot call an object without first requesting an api, as that will cause a crash. | |||
and you most certainly cannot use an object's command without calling the object first | |||
For instance you cannot use | |||
iopObj.ReadMem32(0x400000) | |||
Without first having this in your lua | |||
local iopObj = getIOPObject() | |||
</pre> | |||
'''Making a comment inside the lua''' | |||
<pre> | |||
You can make a comment in a lua by using two hyphens (--) | |||
Your comments will be ignored by the lua | |||
You can also use --[[ (comment) --]] | |||
All text between --[[ and --]] will be ignored by lua | |||
</pre> | |||
==Commands== | |||
<br>'''(Cycle scalars)''' | |||
<pre> | |||
Cycle scalar commands are basically a scale between overclock and cycle skip (Underclock), we say that to simplify | |||
for anyone making configs, but in the truth it controls cycle speed of that Processor whether it be (IOP) or (SIF) or (EE). | |||
Slowing the cycles can be done by setting it higher than 1.0 (Underclock) (Cycle skip) | |||
Speeding up the cycles can be done by setting it anything lower than 1.0 (Overclock) | |||
So, it's basically a multiplier of the Processor's cycle speed in a way that's connected to the Delta counter. | |||
Sony uses all of them to improve sync, It's recommended to use them for sync also considering that using them can possibly | |||
cause stuttering or input lag with no real benefit. | |||
Except for eecyclescalar. as using it can be very helpful for performance gain | |||
when you slow down the cycles (Anything higher than 1.0). | |||
Some games like (Metal gear solid 3) want a very fast EE cycle speed, | |||
and will refuse to work if it's at the Default speed. | |||
(0.1) is the highest number for overclocking | |||
And (1.0) is the Default clock value. | |||
And (5.0) is the highest value for Underclocking (Cycle skipping) For the (IOP) and (EE) | |||
As for the (SIF) it has no limit for underclocking. | |||
</pre> | |||
'''(vu1/0 mpg cycles)''' | |||
<pre> | |||
This command sets the cycle speed of vu1 or vu0. | |||
0.1 is the fastest cycle speed and the most compatible (Slowest in terms of performance). | |||
100 is the default value set by sony | |||
1000 is the recommended value for performance gain but you can increase it to any value you like. | |||
</pre> | |||
==PS2 emulation related links== | |||
*[https://github.com/Scalerize/PS2-tutorials-archive How to create general patches for PS2 games] | |||
*[https://github.com/Scalerize/Ps2-assembly Knowledge about Assembly instructions in PS2] | |||
*[https://forums.pcsx2.net/Thread-60-fps-codes Thread with 60 fps patches] | |||
*[https://psi-rockin.github.io/ps2tek/ A great website for learning about PS2 hardware] | |||
= PS2 Bios = | = PS2 Bios = |