Difference between revisions of "PlayStation emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Rendering Quirks)
Line 228: Line 228:
 
==Emulation issues==
 
==Emulation issues==
 
===Rendering Quirks===
 
===Rendering Quirks===
[[File:Cheryl_compared.png|thumb|350px|Left showing native resolution and unblended dithering. Right showing HD and no dithering.]]
+
[[File:Cheryl_compared.png|thumb|left|300px|'''Left''': Native resolution and unblended dithering.<br/>'''Right''': Higher internal resolution and no dithering.]]
[[File:Ps1_jitter.gif|thumb|left|Example of jittering in PS1 games, which is more noticeable when emulating at higher internal resolutions. (Click to play)]]
+
[[File:Ps1_jitter.gif|thumb|Jittering in games can stick out more when using higher internal resolutions. <small>This full-color GIF may require you to view its page to see the animation.</small>]]
The PS1 used some rendering shortcuts to make the most of the hardware available at the time, which cause some quirks that become even more noticeable when rendering with an increased internal resolution.
+
The PlayStation takes shortcuts when rendering as a result of making most of the hardware available, and this can cause some quirks that become even more noticeable when the internal resolution increases.
  
Jittering polygons are caused by low-precision fixed-point (to the native resolution) math. This issue is mostly unnoticeable at native resolutions. [[Mednafen|Mednafen-libretro]] and PGXP attempt to fix this.
+
Polygons can jitter as a result of low-precision fixed-point (to the native resolution) math, but this is mostly unnoticeable at native resolutions. Emulators that have the ability to increase the internal resolution have attempted to fix this.
  
The PS1 hardware didn't have a [https://en.wikipedia.org/wiki/Z-buffering z-buffer]. The lack of a z-buffer causes things like polygons popping over others. Tekken character limbs are a good example to see that. It's theoretically possible to implement z-buffer in PS1 emulators/GPU plugins.<ref>[https://translate.google.com/translate?sl=ru&tl=en&u=http://forum.emu-russia.net/viewtopic.php?p=17237 gpuBladeSoft discussion]</ref>
+
There is no [https://en.wikipedia.org/wiki/Z-buffering z-buffer] in the hardware. This can cause things like polygons to pop over others; the limbs on Tekken characters are a good example of this. It is theoretically possible to implement this, but it wouldn't be accurate to the hardware.<ref>[https://translate.google.com/translate?sl=ru&tl=en&u=http://forum.emu-russia.net/viewtopic.php?p=17237 gpuBladeSoft discussion]</ref>
  
No texture perspective correction causes distortion to textures at certain viewing angles, notably at the bottom near the camera. Along with low-precision math, this is a major factor in the apparent jitteryness of PS1 games. Perspective-correct texture mapping has recently been added to PCSX-R in the PGXP fork.
+
When textures don't have perspective correction applied to them, certain viewing angles can make them distorted, more so when an object is near the edge of the camera up close. This has been solved in at least one emulator.
  
On real hardware, many PS1 games displayed dithering to varying degrees due to a low color depth. This dithering would blend on most TVs to make new colors and smooth gradients. Most hardware-rendered plugins use 32-bit color depth, which removes dithering, while software-rendered plugins and emulators tend to retain it. While higher color depth can be considered an enhancement, since it results in less noise and smooth gradients, some think of dithering as seen on real hardware as added shading and texture, especially on untextured polygons. A few software-rendered emulators, such as PCSX-reARMed and [[Mednafen|Mednafen-libretro]], are capable of increasing internal resolution while still retaining dithering, which keeps the shading/texturing aspect while making it more subtle by making the dithering artifacts smaller.
+
Many PlayStation games dither to varying degrees due to having a low color depth. On most TVs, this dithering would blend in order to make new colors and smooth gradients. Plugin-based emulators usually have graphical plugins that use a 32-bit color depth, which removes dithering, while software-rendered plugins and emulators tend to retain it. While higher color depth can be considered an enhancement, since it results in less noise and smooth gradients, some think of dithering as seen on real hardware as added shading and texture, especially on untextured polygons. The emulators that use software rendering and can increase the internal resolution are capable of retaining dithering for the shading and texturing aspect, and it's made more subtle by shrinking the artifacts.
 +
 
 +
===Less-notable games using special peripherals===
 +
ZXE-D: Legend of Plasmalite requires the use of a special peripheral to play the game. It is a robot that has connectable parts and plugs into the memory card slot, which is then replicated in the game. No emulator has ever focused on it, probably due to a number of reasons:
 +
 
 +
*It's not a common game.
 +
*No third-party controller and memory card connector has gotten support by emulators the same way that Nintendo's official GameCube controller adapter has.
 +
*To emulate this purely in software means it has to be reverse engineered, which can take a bit of time.
  
 
===CD format===
 
===CD format===

Revision as of 13:40, 22 July 2017

The Sony PlayStation

The PlayStation (frequently referred to in shorthand as the PS1 or PSX) is a 5th generation console produced by Sony Computer Entertainment in 1994. It was a commercial success in part to being relatively easy to program for compared to others at the time, and because its CD based media was cheaper than the competition.

Emulators

PC
Name Operating System(s) Latest Version Plugins Libretro Core Increased IR Rendering Accuracy Recommended
Mednafen Multi-platform 1.32.1 ✓*** High
PCSX-R PGXP Multi-platform PGXP build Plugin dependent
PCSX-R Multi-platform (Windows,
OS X)
Plugin dependent
ePSXe Multi-platform 2.0.5 Plugin dependent
XEBRA Windows 17/03/2017 Build High
pSX Windows, Linux 1.13 Mid
NO$PSX Windows 1.9 Mid
PSXACT Windows [1] High ✗ (WIP)
PCSX2 Windows, Linux, OS X Git Mid
Console
Name Operating System(s) Latest Version Plugins Libretro Core Increased IR Rendering Accuracy Recommended
WiiSX Wii, GameCube 2.1 beta Low
POPS PSP/PS2/Vita 6.60/r13/2.60 Mid-High
Mobile
Name Operating System(s) Latest Version Plugins Libretro Core Increased IR Rendering Accuracy Recommended
Mednafen* Multi-platform 1.32.1 High
PCSX-ReARMed* iOS, Android r22 Mid
ePSXe** Android 2.0.7 Mid
FPse** Android 0.11.187 Mid
XEBRA Android 25/03/2017 High

*Only available on mobile as a libretro core (e.g. RetroArch), mednafen needs a high-end phone/tablet to run at full speed.

**Payware, recommended that you use patched versions.

***Exclusive to the libretro fork. Increases system requirements significantly.

Comparisons

PC

  • Mednafen PSX is an emulator focused on accuracy. It is extremely compatible, outdoing even Sony's official PSone emulator in accuracy tests. Do note if you find an exception, though. It requires a very specific BIOS for each region. The minimum system requirement is a Core 2 Duo at 2 GHz clock.
    Mednafen itself is command line only and has no GUI. You can still drag-and-drop the cue files on the executable to load games, and stdout.txt will log errors if a crash happens. There are external GUI launchers available.
    Both RetroArch and BizHawk have cores based on this emulator. They're easier to use than the standalone emulator thanks to their GUIs. The RetroArch fork of Mednafen PSX (known as Beetle PSX, or mednafen-psx, or mednafen-hw-psx) has several experimental modifications and enhancements not present in the standalone version, including a widescreen hack, CPU overclocking for smoother framerates, and increasing the internal resolution up to 8x. Increasing the resolution carries a heavy performance cost, however, since graphics are rendered in software (though an alternate core with hardware rendering exists). PGXP was also ported to the RA cores.
  • PCSX-R is an open source plugin-based emulator. The main reason to use this over mednafen is that it can render at higher resolutions without being unplayably slow.
    • PGXP is a fork of PCSX-R that aims to remove some of the limitations of the PS1 by adding texture correction, reducing polygon wobble, and reducing polygon culling. It also adds CPU overclocking, and makes a hack in PCSX-R toggleable.
  • ePSXe is a fairly standard plugin-based emulator like PCSX-R. Accuracy is typically about the same between the two, however due to being closed source and constantly lagging behind PCSX-R in features, PCSX-R is generally recommended over it. Since version 1.8.0, ePSXe has been available on Android as a paid app, but it is not recommended.
  • PCSX-ReARMed is essentially the ARM version of PCSX-R, sharing a similar core, but optimized for portable handheld devices. Its biggest draw is its NEON software renderer, which is both fast and accurate, and has the ability to render at a higher resolution without resorting to HLE plugins.
  • XEBRA has very high compatibility. Games that require subchannel data are not supported, but most other games run flawlessly. Obtuse user interface as the developer is Japanese, so be prepared.
  • NO$PSX is a well-rounded emulator by the same author of NO$GBA. There are two versions of the emulator; standard users will want to use the cut-down gaming version. It offers decent compatibility with very low spec requirements – the programmer's philosophy is to deliver a working application out of the box. As of today, it's still being developed. PocketStation is emulated through NO$GBA.
  • PSXfin is a simple emulator with simple usage. It has a lot of compatibility issues[1]. It requires a BIOS for use, but compatibility with each one is inconsistent. Development has been halted and it remains closed source. It's really only useful for very old toasters.
  • PCSX2 is primarily a PlayStation 2 emulator. Recently, backwards compatibility with PS1 games has been implemented, and PS1 games can now be played in PCSX2 the way they would be in a PS2 console, and the internal resolution can be increased as well. However, backwards compatibility in the original PS2 hardware didn't cover all games in the PS1 library, and these limitations extend to PCSX2's emulation.

For even further in-depth analysis of each emulator on a technical level, check out PS1 Tests.

It's generally recommended to use Mednafen or PCSX-R. Many use Mednafen for its accuracy at native resolution, and PCSX-R for 3D games (that don't use prerendered backgrounds) because of support for plugins which allow for better graphics quality than original hardware. Unfortunately the best plugins for increasing internal resolution and shader support (Pete OpenGL2 v2.9 and Edgbla gpuBladesoft v1.42a) are closed source and haven't been updated for years.

Consoles

  • POPS (short for PlayStation On PSP System) is the name of the program for the PSP made by Sony for their PSone Classics releases. It utilizes EBOOTs, a form of binary file for PSP, instead of bin/cue/etc, which can be made using a converter if desired. Compatibility is very high due to it being made by Sony and the PSP containing a CPU that is very similar to the one found in the PlayStation. This makes it so it isn't purely an emulator, although it does emulate the PS1s GPU. It includes support for multi-disc games (within the one EBOOT). Only native PS1 resolution is supported, with games being stretched as the user wishes to fit the screen. POPS is also available on the PlayStation 2, although compatibility is not as high.
  • PS2PSXe is another PS1 emulator for the PS2. However, this one is unofficial. Compatibility is very low. It is generally recommended to disc swap for the PS2, which in turn will utilize the built-in PS1 hardware available in every PS2. Double swapping (using the same method as a real PS1) is required for PS2s with model numbers SCPH-100xx - SCPH-390xx.
  • PlayStation 3 has a built-in software emulator with high compatibility, as it is used for PSone Classics releases on the system as well as actual PS1 discs.
  • WiiSX is a port of PCSX to the Wii. Compatibility is fairly low due to the weak power of the Wii. This plus the lack of updates to the emulator makes it generally not worth using.

Emulation issues

Rendering Quirks

Left: Native resolution and unblended dithering.
Right: Higher internal resolution and no dithering.
Jittering in games can stick out more when using higher internal resolutions. This full-color GIF may require you to view its page to see the animation.

The PlayStation takes shortcuts when rendering as a result of making most of the hardware available, and this can cause some quirks that become even more noticeable when the internal resolution increases.

Polygons can jitter as a result of low-precision fixed-point (to the native resolution) math, but this is mostly unnoticeable at native resolutions. Emulators that have the ability to increase the internal resolution have attempted to fix this.

There is no z-buffer in the hardware. This can cause things like polygons to pop over others; the limbs on Tekken characters are a good example of this. It is theoretically possible to implement this, but it wouldn't be accurate to the hardware.[2]

When textures don't have perspective correction applied to them, certain viewing angles can make them distorted, more so when an object is near the edge of the camera up close. This has been solved in at least one emulator.

Many PlayStation games dither to varying degrees due to having a low color depth. On most TVs, this dithering would blend in order to make new colors and smooth gradients. Plugin-based emulators usually have graphical plugins that use a 32-bit color depth, which removes dithering, while software-rendered plugins and emulators tend to retain it. While higher color depth can be considered an enhancement, since it results in less noise and smooth gradients, some think of dithering as seen on real hardware as added shading and texture, especially on untextured polygons. The emulators that use software rendering and can increase the internal resolution are capable of retaining dithering for the shading and texturing aspect, and it's made more subtle by shrinking the artifacts.

Less-notable games using special peripherals

ZXE-D: Legend of Plasmalite requires the use of a special peripheral to play the game. It is a robot that has connectable parts and plugs into the memory card slot, which is then replicated in the game. No emulator has ever focused on it, probably due to a number of reasons:

  • It's not a common game.
  • No third-party controller and memory card connector has gotten support by emulators the same way that Nintendo's official GameCube controller adapter has.
  • To emulate this purely in software means it has to be reverse engineered, which can take a bit of time.

CD format

PSX games use the CD-ROM XA (eXtended Architecture) format which is based on CDi and allows developers to use both CD-ROM and CD-DA (audio) tracks on the same disc.

Certain image formats and CD dumping methods don't support this format correctly and end up with the CD-DA tracks missing or corrupted, hence no audio. The ISO format in particular only stores the content of a CD-ROM filesystem and cannot store CD-DA tracks at all so it's generally a very bad idea to use ISO for PSX games (even though it should work for games which are single track).

Resources

  • PlayStation DataCenter - Tons of PS1 related things. Emulator files like plugins, game manuals, game configurations, and many tutorials are just some of things you'll find here.
  • ReDump PS1 USA set.

References