Help:Using different versions of RPCS3: Difference between revisions

Help page
(Added write-up for regression testing)
m (Remove whitespace)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
In this guide, we'll go over which are the best RPCS3 builds (versions) to use and where to find them. RPCS3 is an open-source project, hosted on GitHub, that follows a rolling release system. This means that every time a new pull request is merged on GitHub with an improvement or fix, a new build for RPCS3 is generated and given a unique identifier number. Over the course of the many years of the emulator's development, there are now over 1,800 builds of RPCS3! So with so many builds available, it's natural that users have a few questions about it. Let's look at the most common ones below:
In this guide, we'll go over which are the best RPCS3 builds (versions) to use and where to find them. RPCS3 is an open-source project, hosted on GitHub, that follows a rolling release system. This means that every time a new pull request is merged on GitHub with an improvement or fix, a new build for RPCS3 is generated and given a unique identifier number. Over the course of the many years of the emulator's development, there are now over 13,000 builds of RPCS3! With so many builds available, it's natural that users have a few questions about them. Let's look at the most common ones below:


==Which is the best build of RPCS3?==
==Which is the best build of RPCS3?==
For the majority of users, using the latest master build is the best course of action. Using the latest master ensures that users take advantage of the latest improvements and bug-fixes made by the developers. It also allows for the best compatibility as the latest versions will be optimised for new hardware revisions and operating system updates as well.
For the majority of users, the latest master build is the best to use for everything. Using the latest master ensures users are taking advantage of the latest improvements and bug-fixes offered by the developers. It also allows for the best compatibility as the latest versions will be optimized for new hardware revisions and operating system updates.


The only exception to the above statement would be in the scenario where a game regression is present i.e. the game previously worked on the emulator but no longer works on the latest master due to a bug that has been introduced down the line.
The only exception to the above statement would be when a regression is present i.e. the game previously worked on the emulator but no longer works due to a bug that was introduced later.


==How to update my version of RPCS3 to the latest master build?==
==How to update my version of RPCS3 to the latest master build?==
To update your current version of RPCS3 installed on your computer to the latest version:
To update your current version of RPCS3 installed on your computer to the latest version:


# download the latest master version from the [https://rpcs3.net/download RPCS3 website]
# Download the latest master version from the [https://rpcs3.net/download RPCS3 website]
# extract ''all'' files from the archive to your current RPCS3 install folder
# Extract ''all'' files from the archive to your current RPCS3 install folder
# when asked, confirm that you want to overwrite and replace all files
# When prompted, confirm that you want to overwrite and replace all files
'''Don't worry''' all your settings, installed games, and save data will not be touched
'''Don't worry''' all your settings, installed games, and save data will not be touched


Line 17: Line 17:
In certain rare occasions, newer builds may have game regressions or bugs that were not present in older builds. Or you may simply wish to test an older version of the emulator. In such cases, you need to downgrade your current RPCS3 installation in the following manner:
In certain rare occasions, newer builds may have game regressions or bugs that were not present in older builds. Or you may simply wish to test an older version of the emulator. In such cases, you need to downgrade your current RPCS3 installation in the following manner:


# download the build you intend to from the [[#Where to find older builds?|build archive]]
# Download the build you intend to from the [https://rpcs3.net/compatibility?b build archive]
# extract <code><nowiki>rpcs3.exe</nowiki></code> only, then rename it to <code><nowiki>rpcs3.<version>.exe</nowiki></code> or to anything you prefer
# Extract only the <code><nowiki>rpcs3.exe</nowiki></code>, then rename it to <code><nowiki>rpcs3.<version>.exe</nowiki></code> or to anything except for rpcs3.exe
# put this exe into your current RPCS3 install folder
# Place this exe into your current RPCS3 install folder
This way you will be able to use older versions of RPCS3 in the existing installation folder and easily run the games already present. If you see a QT-related error message, copy all folders present inside <code><nowiki>qt\plugins\</nowiki></code> to the main RPCS3 folder.
This method allows you to use older versions of RPCS3 from  within your pre-exsisting RPCS3 folder allowing your games, firmware, saves, etc to be used without reinstallation. If you see a QT-related error message, copy all folders present inside <code><nowiki>qt\plugins\</nowiki></code> to your main RPCS3 folder.


==How to download builds from a pull request on GitHub?==
==How to download builds from a pull request on GitHub?==
If you wish to try the changes made in a pull request before it is merged into the master builds, you can do using the method mentioned below. Please note that this method only works for Windows builds:
If you wish to try the changes made in a pull request before they are merged into the master build, you can do this using the method mentioned below:


# Go to the specific [https://github.com/RPCS3/rpcs3/pulls pull request's page]
* Go to the specific [https://github.com/RPCS3/rpcs3/pulls pull request's page]
# Click on the '''Commits''' tab
* Scroll to the Checks message
# Click on the ✅ at the bottom (always click on the bottom-most green check mark)
* Click on '''Show all checks''' link next to the ✅ green check
# Click on the '''details''' link next to the AppVeyor build
* Click on '''Details''' link next to your OS. (image example Windows)
# In the AppVeyor site linked, click on the '''Artifacts''' tab and download the file with the Deployment Name '''rpcs3'''. It is the largest file in the artifact list.
* Click on '''View more details on Cirrus CI''' link
* In the Cirrus site, click on '''Artifact''' under the heading ''Artifacts''
* Download Artifact
 
<gallery widths=400px heights=200px>
File:Download_builds_from_a_pull_request_(1).png|Scroll to the Checks message
File:Download_builds_from_a_pull_request_(2).png|Click on "show all checks"
File:Download_builds_from_a_pull_request_(3).png|In the Cirrus site, click on "Artifacts"
</gallery>


==Where to find older builds?==
==Where to find older builds?==
Most recent RPCS3 builds can be found at our website's [https://rpcs3.net/compatibility?b build history] page (you can find a link to it in the '''Download''' tab). While this archive lists all the master builds to ever be created, it does not host all the builds. See below for the oldest version available for download on our website:  
Most recent RPCS3 builds can be found at our website's [https://rpcs3.net/compatibility?b build history] page (you can find a link to it in the '''Download''' tab). While this archive lists all the master builds to ever be created, it does not host all the builds. See below for the oldest version available for download on our website:
 
: {| class="wikitable"
: {| class="wikitable"
! Operating System !! Version !! Date
! Operating System !! Version !! Date
Line 40: Line 49:
| Linux || 0.0.5-7644 || 2018-12-31
| Linux || 0.0.5-7644 || 2018-12-31
|}
|}
For Windows builds that older that above mentioned dates, please visit RPCS3's [https://nkmk.ch/rpcs3/archive/ external build archive].


==How to find the build that caused a regression?==
==How to find the build that caused a regression?==
Often games regress due to changes made to the emulator but are uncovered much later by testers. In such cases, it is necessary to find the exact build that caused the regression to effectively debug and fix the issue. However, having to test over a 100 older builds to find the correct build can be a monumental task. Lucky for us, this is not necessary and easier methods are available.
Often games regress due to changes made to the emulator but are uncovered much later by testers. In such cases, it is necessary to find the exact build that caused the regression to effectively debug and fix the issue. However, having to test over 100 older builds to find the correct build can be a monumental task. Lucky for us, this is not necessary and easier methods are available.


For users familiar with [https://git-scm.com/ Git] and willing to compile local versions of RPCS3, '''git bisect''' can be used to easily identify the offending commit. However, all other users can also follow a similar approach by using the builds available at our [[#Where to find older builds?|build archive]].
For users familiar with [https://git-scm.com/ Git] and willing to compile local versions of RPCS3, '''git bisect''' can be used to easily identify the offending commit. However, all other users can also follow a similar approach by using the builds available at our [[#Where to find older builds?|build archive]].

Latest revision as of 23:25, 29 January 2023

In this guide, we'll go over which are the best RPCS3 builds (versions) to use and where to find them. RPCS3 is an open-source project, hosted on GitHub, that follows a rolling release system. This means that every time a new pull request is merged on GitHub with an improvement or fix, a new build for RPCS3 is generated and given a unique identifier number. Over the course of the many years of the emulator's development, there are now over 13,000 builds of RPCS3! With so many builds available, it's natural that users have a few questions about them. Let's look at the most common ones below:

Which is the best build of RPCS3?

For the majority of users, the latest master build is the best to use for everything. Using the latest master ensures users are taking advantage of the latest improvements and bug-fixes offered by the developers. It also allows for the best compatibility as the latest versions will be optimized for new hardware revisions and operating system updates.

The only exception to the above statement would be when a regression is present i.e. the game previously worked on the emulator but no longer works due to a bug that was introduced later.

How to update my version of RPCS3 to the latest master build?

To update your current version of RPCS3 installed on your computer to the latest version:

  1. Download the latest master version from the RPCS3 website
  2. Extract all files from the archive to your current RPCS3 install folder
  3. When prompted, confirm that you want to overwrite and replace all files

Don't worry all your settings, installed games, and save data will not be touched

How to downgrade my version of RPCS3 to the an older build?

In certain rare occasions, newer builds may have game regressions or bugs that were not present in older builds. Or you may simply wish to test an older version of the emulator. In such cases, you need to downgrade your current RPCS3 installation in the following manner:

  1. Download the build you intend to from the build archive
  2. Extract only the rpcs3.exe, then rename it to rpcs3.<version>.exe or to anything except for rpcs3.exe
  3. Place this exe into your current RPCS3 install folder

This method allows you to use older versions of RPCS3 from within your pre-exsisting RPCS3 folder allowing your games, firmware, saves, etc to be used without reinstallation. If you see a QT-related error message, copy all folders present inside qt\plugins\ to your main RPCS3 folder.

How to download builds from a pull request on GitHub?

If you wish to try the changes made in a pull request before they are merged into the master build, you can do this using the method mentioned below:

  • Go to the specific pull request's page
  • Scroll to the Checks message
  • Click on Show all checks link next to the ✅ green check
  • Click on Details link next to your OS. (image example Windows)
  • Click on View more details on Cirrus CI link
  • In the Cirrus site, click on Artifact under the heading Artifacts
  • Download Artifact

Where to find older builds?

Most recent RPCS3 builds can be found at our website's build history page (you can find a link to it in the Download tab). While this archive lists all the master builds to ever be created, it does not host all the builds. See below for the oldest version available for download on our website:

Operating System Version Date
Windows 0.0.5-6906 2018-06-08
Linux 0.0.5-7644 2018-12-31

How to find the build that caused a regression?

Often games regress due to changes made to the emulator but are uncovered much later by testers. In such cases, it is necessary to find the exact build that caused the regression to effectively debug and fix the issue. However, having to test over 100 older builds to find the correct build can be a monumental task. Lucky for us, this is not necessary and easier methods are available.

For users familiar with Git and willing to compile local versions of RPCS3, git bisect can be used to easily identify the offending commit. However, all other users can also follow a similar approach by using the builds available at our build archive.

  1. Find a build that has the regression (generally latest master build) and name it bad
  2. Find an older build where the regression does not exist and name it good
  3. Find a build released in between the good and bad build (for example, if the good build is from January and the bad build is from July, find a build that was made released in April)
  4. Test this build to see if the regression is present:
    If the regression is present, name this new build as bad
    If the regression is NOT present, name this new build as good
  5. Repeat Step 3 and 4 with the new build until you narrow it down to the build where the regression first appeared

Using this method, users can easily skip avoid testing every build in favor of testing builds at specific intervals between the original builds.