Difference between pages "PlayStation 3 emulators" and "Distro-agnostic emulator packages for Linux"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Forgot to change the date)
(Tags: Mobile edit, Mobile web edit)
 
(AppImage: RetroArch now has official AppImages)
 
Line 1: Line 1:
{{Infobox console
+
'''Distro-agnostic packages''' are application portability solutions in Linux.
|title = PlayStation 3
 
|logo = PlayStation 2006.png
 
|image = PS3_Original.png
 
|image2 = PS3_slim_models.jpg
 
|imagecaption = '''Top''': Original (2006)<br/>'''Bottom''': Slim (2009) & Super Slim (2012)
 
|developer = [[:Sony]]
 
|type = [[:Category:Home consoles|Home video game console]]
 
|generation = [[:Category:Seventh-generation video game consoles|Seventh generation]]
 
|release = 2006
 
|discontinued = 2017
 
|predecessor = [[PlayStation 2 emulators|PlayStation 2]]
 
|successor = [[PlayStation 4 emulators|PlayStation 4]]
 
|emulated = {{✓}}
 
}}
 
  
The '''PlayStation 3''' (known shorthand as '''PS3''') is a seventh-generation console released by [[wikipedia:Sony|Sony]] in late 2006. The successor to the [[PlayStation 2 emulators|PlayStation 2]], it began development in 2001 when Sony partnered with Toshiba and IBM to create the [[wikipedia:Cell_%28microprocessor%29|Cell Broadband Engine]]. The console was launched a year after the [[Xbox 360 emulators|Xbox 360]], and around the same time as the [[Wii emulators|Wii]]. While it was debatably the most powerful console of the seventh generation, it was also difficult to program for, as its architecture was even more complex than its competitors. It retailed for {{Inflation|USD|599|2006}}.
+
There are thousands of different distributions of Linux, and many of these use different package systems to manage application installation. Some popular ones are .deb format used by Debian, Ubuntu and its variants, and there is also RPM format used by [[Emulation on Fedora|Fedora]], RedHat, and many others.
 +
Packages of the game console and computer emulators exist for popular Linux distros, usually available from the official software repositories of the distribution, but they are usually very old compared to the upstream versions. In addition, these packages are typically made only for one single version of the distribution, and due to dependency problems, these can not be used in other distros.
 +
There are at least three new package formats that are aiming to bring application portability to the Linux ecosystem. Packages using these formats are quite huge in file size due to bundling all dependencies in it, but they can run in any popular Linux distros.
  
The Cell Broadband Engine consists of a 3.2 GHz Power Processing Element (PPE) and seven Synergistic Processing Elements (SPE),<ref group=N>You might see listings of eight SPEs, but that's because there are eight on the die; one of them is disabled to prevent the manufacturer from yielding too many bad units. Another SPE is reserved for the console's operating system.</ref> and the system contains 256 MB of XDR DRAM main memory at 3.2 GHz and 256 MB of GDDR3 video memory at 650 MHz for the Nvidia/SCEI RSX Reality Synthesizer GPU. The GPU ran at 500 MHz and has to communicate forth and back with both RAMs. The complexity of the SPEs bogged down the PlayStation 3 in multi-platform titles, as developers had to go through the process of learning the SPE architecture before they could use it. As a result, several developers decided against using the SPEs, and the consequence is that many multi-platform games ran with lower framerates or worse graphics, compared to running those same games on the PS3's competitors.
+
==Flatpak==
 +
Flatpak (formerly xdg-app) is a distro-agnostic application framework. It is a decentralized system and has no central package repository. Instead, the user must manually add the repository's URL to the system before packages can be installed, like in [[Emulation on Ubuntu|Ubuntu's PPA]].
  
The number of units sold worldwide were about the same as the Xbox 360. The PlayStation 3 initially included a feature called OtherOS,<ref group=N>Which allowed the console to run many distributions of Linux and BSD in a separate partition as long as they supported PowerPC.</ref> but once it was removed shortly after the PS3 Slim model was released citing "security concerns", fail0verflow had a jailbreak detailed in 2010, giving way for [[PS3 Modding|modders to downgrade firmware on a specific version]] and install a custom firmware, something Sony would patch in newer updates until an exploit was released for 4.82. Emulation only started gaining traction in the late 2010s, as [[RPCS3]] had made strides in improving its largely HLE-based emulation. It has since become the emulator of choice.
+
[https://flathub.org/ Flathub], probably the biggest Flatpak repository, has several emulators.
  
==Emulators==
+
To install emulators from Flathub, add the location of Flathub repository to your system:
{| class="wikitable" style="text-align:center;"
+
 
 +
<code>$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo</code>
 +
 
 +
List of available application package names can be obtained by the following command:
 +
 
 +
<code>$ flatpak remote-ls flathub</code>
 +
 
 +
Use the following command to install the emulator from Flathub:
 +
 
 +
<code>$ flatpak install flathub ''Package Name''</code>
 +
 
 +
Available emulators and its package name is listed below.
 +
{| class="wikitable" width="100%"
 
|-
 
|-
! scope="col"|Name
+
! scope="col"|Emulator/Project
! scope="col"|Platform(s)
+
! scope="col"|Package Name
! scope="col"|Latest Release Version
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
 
|-
 
|-
! colspan="6"|PC / x86
+
|[[RetroArch]]<ref group=N>[https://www.libretro.com/index.php/retroarch-with-flatpak/ Official Flatpak Announcement of RetroArch]</ref>
 +
|[https://flathub.org/apps/details/org.libretro.RetroArch org.libretro.RetroArch]
 
|-
 
|-
 
|[[RPCS3]]
 
|[[RPCS3]]
|align=left|{{Icon|Windows|Linux|FreeBSD}}
+
|[https://flathub.org/apps/details/net.rpcs3.RPCS3 net.rpcs3.RPCS3]
|[https://github.com/RPCS3/rpcs3/releases {{RPCS3Ver}}]<ref group=N>The developers are currently treating version increments as milestones, not as stables.</ref>
+
|-
|{{✓}}
+
|[[DuckStation]]
|{{✓}}
+
|[https://flathub.org/apps/details/org.duckstation.DuckStation org.duckstation.DuckStation]
|{{✓}}
+
|-
 +
|[[m64p]]
 +
|[https://flathub.org/apps/details/io.github.m64p.m64p io.github.m64p.m64p]
 +
|-
 +
|[[Yuzu]]
 +
|[https://flathub.org/apps/details/org.yuzu_emu.yuzu org.yuzu_emu.yuzu]
 +
|-
 +
|[[melonDS]]
 +
|[https://flathub.org/apps/details/net.kuribo64.melonDS net.kuribo64.melonDS]
 
|-
 
|-
|[[Nucleus]]
+
|[[Dolphin]]
|align=left|{{Icon|Windows|Linux}}
+
|[https://flathub.org/apps/details/org.DolphinEmu.dolphin-emu org.DolphinEmu.dolphin-emu]
|[https://github.com/AlexAltea/nucleus/releases git]
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
|Short Waves
+
|[[DOSBox]]
|align=left|{{Icon|Windows}}
+
|[https://flathub.org/apps/details/com.dosbox.DOSBox com.dosbox.DOSBox]
|[http://wololo.net/downloads/index.php/download/8128 0.0.2]
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
|PS3F
+
|FS-UAE
|align=left|{{Icon|Windows}}
+
|[https://flathub.org/apps/details/net.fsuae.FS-UAE net.fsuae.FS-UAE]
|[https://web.archive.org/web/20161029044210/http://www.geocities.jp/mj3kj8o5/ps3f/index.html 0.1]
+
|-
|{{✗}}
+
|[[mGBA]]
|{{✗}}
+
|[https://flathub.org/apps/details/io.mgba.mGBA io.mgba.mGBA]
|{{✗}}
+
|-
 +
|[[Nestopia]]
 +
|[https://flathub.org/apps/details/ca._0ldsk00l.Nestopia ca._0ldsk00l.Nestopia]
 +
|-
 +
|[[PCSX2]]
 +
|[https://flathub.org/apps/details/net.pcsx2.PCSX2 net.pcsx2.PCSX2]
 +
|-
 +
|[[Citra]]
 +
|[https://flathub.org/apps/details/org.citra_emu.citra flatpak.citra-emu.org]
 +
|-
 +
|[[PPSSPP]]
 +
|[https://flathub.org/apps/details/org.ppsspp.PPSSPP org.ppsspp.PPSSPP]
 +
|-
 +
|[[Snes9x]]
 +
|[https://flathub.org/apps/details/com.snes9x.Snes9x com.snes9x.Snes9x]
 +
|-
 +
|[[VICE]]
 +
|[https://flathub.org/apps/details/net.sf.VICE net.sf.VICE]
 +
|-
 +
|[[FUSE]]
 +
|[https://flathub.org/apps/details/net.sf.fuse_emulator net.sf.fuse_emulator]
 +
|-
 +
|[[ScummVM]]
 +
|[https://flathub.org/apps/details/org.scummvm.ScummVM org.scummvm.ScummVM]
 
|}
 
|}
 +
<references group=N />
  
===Comparisons===
+
==Snappy==
;[[RPCS3]]:An open-source emulator for 64-bit Windows, GNU/Linux and BSD. While it isn't anywhere near as compatible as [[Dolphin]] is for [[GameCube emulators|GameCube]] or Wii, it has still made immense progress compared to its early days where development was slow and seemed like it wasn't really going anywhere. As of September 2021, 2035 titles (63.14%) are playable, 993 titles (30.81%) boot in-game, 189 titles (5.86%) display the intros and 6 titles (0.19%) are loadable.<ref name="Compatibility Page">https://rpcs3.net/compatibility</ref>
+
Snappy, also called 'snaps' or just 'snap', is a distro-agnostic application framework made by Canonical, the Ubuntu devs. Unlike other formats, it is a centralized system and has the official repository to download the packages from.
;[[Nucleus]]:A one-man project aiming for LLE, some AOT emulation, and portability. Made by AlexAltea, lead coder of PlayStation 4 emulator, [[Orbital]].
+
List of all packages can be viewed from [https://uappexplorer.com/snaps?type=application uApp Explorer] (Lists all latest packages but often flooded with "Hello World" apps) and [https://snapcraft.io/store Snapcraft] (Apps are listed by categories).
;Short Waves:Made by InoriRus. It could run a few complex tests that RPCS3 couldn't at the time it released, but it hasn't been updated since.
 
;PS3F:Made by Shima, the creator of [[SSF]]. More information can be found [https://web.archive.org/web/20161029044210/http://www.geocities.jp/mj3kj8o5/ps3f/index.html here].
 
  
==Emulation issues==
+
Snappy has the following emulators:
PlayStation consoles have always been notorious for system complexity. Sony's gamble of their technology being emulator-unfriendly makes them developer-unfriendly as well, and the system's weaker performance in cross-platform games proves it. Even if done properly, an LLE approach would be performance suicide as some things just have to be abstracted enough to get high framerates in games. The situation is so bad that Sony seems to be incredibly hesitant to introduce an emulator on the PlayStation 4, simply because they wouldn't be able to justify the potentially high cost of development to investors.<ref>[https://youtu.be/6WkpaJkB2M8 Why PS4 Doesn't Have Backwards Compatibility and Xbox One Does] (Mystic. Aug 21, 2018.)</ref>
+
*[https://snapcraft.io/retroarch RetroArch] ([https://www.libretro.com/index.php/retroarch-snap-packages-now-available/ Official Announcement])
 +
*[[Hatari]] [https://snapcraft.io/hatari-emulator]
 +
*[[DOSBox]] [https://snapcraft.io/dosbox-jz]
 +
*FS-UAE [https://snapcraft.io/fsuae]
 +
*Atari800 [https://snapcraft.io/atari800-jz]
 +
*[[VICE]] [https://snapcraft.io/vice-jz]
 +
*[[ScummVM]] [https://snapcraft.io/scummvm]
 +
*Virtual Jaguar [https://snapcraft.io/virtualjaguar-jz]
 +
*[[MAME]] [https://snapcraft.io/mame]
 +
*[[Citra]] [https://snapcraft.io/search?q=Citra]
 +
*[[Yuzu]] [https://snapcraft.io/yuzu]
 +
*[[Dolphin]] [https://snapcraft.io/dolphin-emulator]
 +
*[[RPCS3]] [https://snapcraft.io/rpcs3-emu]
 +
*[[PPSSPP]] [https://snapcraft.io/ppsspp-emu]
  
There are two major bottlenecks at play:
+
==AppImage==
* '''Cell.''' It consists of two architectures that developers have to program for; PowerPC, and... whatever the SPEs really are. Add to that the fact that there are SIX that could be in use by a game, and you have a great formula for high system requirements. The RPCS3 developers technically cheat by using ahead-of-time recompilation using LLVM, but because the emulator constantly improves, that can be easily excused.
+
AppImage is a package format that allows software distribution without a superuser permission. Unlike the other two, AppImage does not have a system to find, download, install and uninstall the packages. Instead, it works like Microsoft Windows .exe files with no DLL requirements.
* '''[[wikipedia:RSX_Reality_Synthesizer|RSX Reality Synthesizer]].''' The [[Xbox emulators|Xbox]] also went unemulated for a long time, simply because of how many components were just undocumented. The same thing applies here; the graphics card is Nvidia GeForce 7800 GTX-based, which means it's not well-documented and developers have to figure out how it displays graphics and graphical effects. Without access to Nvidia's resources, which would normally be included with an SDK, this would be very difficult.
+
The user must give the 'executable' permission to the AppImage package (chmod +x ./appname.AppImage) but this is the only requirement.
:Something of note is that this GPU was also managed by two different memory units with very disparate frequency speeds; 1) 256 MB of GDDR3 RAM clocked at 650 MHz with an effective transmission rate of 1.4 GHz, and 2) up to 224 MB of the 3.2 GHz XDR main memory via the CPU (480 MB max).
 
  
In short: expect game-breaking issues of one kind or another in the vast majority of titles at this point in time.
+
Unfortunately, emulator adaption is quite poor compared to the other two systems. [[RPCS3]] and [[yuzu]] are the most notable emulators to officially adopt this format.
  
==PlayStation Move==
+
List of AppImage packages can be found in [https://appimage.github.io/apps/ AppImageHub].
  
The [[wikipedia:PlayStation_Move|PlayStation Move]] is a controller similar to a Wiimote, shaped to be held into hand and play with motion detection. It is detected by the [[wikipedia:PlayStation_Eye|PSEye]], the successor of the PS2's [[PlayStation_2_emulators#EyeToy|EyeToy]].
+
Emulators available in AppImage:
The PSEye is usable on PC as it benefits from [https://github.com/cboulay/PSMoveService/wiki/PSEye-Software-Setup-(Windows) unofficial drivers] made by the community. It is not yet implemented in a PS3 emulator.
 
[[RPCS3]] had some [https://github.com/RPCS3/rpcs3/commit/504e3112ddc440f1d4eb4f236d4d39ab0f016513 first steps implemented] for PSMove use but the controllers aren't working yet.
 
 
 
The author of this preliminary implementation, [https://github.com/VelocityRa velocityra], is a dedicated developer for [[RPCS3]] and [[Vita3K]].
 
His own branch of the PSMove has advanced further, as the PSEye and PSMove controllers are already physically supported using the PSMoveAPI.
 
A pretty old compatibility list can be found [https://workflowy.com/s/move-compatibility/6TV4dP3JcvHwhyUC here]. Some YouTube videos are also showing the work-in-progress functionality working.<ref>[https://www.youtube.com/watch?v=rrmb_2ULbKo RPCS3 - PSMove WIP VK] (April 03, 2018)</ref> The author unfortunately stopped working on this implementation years ago.
 
 
 
==Notes==
 
<references group=N />
 
  
==References==
+
* [[RPCS3]]
<references />
+
* [[yuzu]]
 +
* [https://github.com/probonopd/qemu-ppc QEMU_PowerPC] (A PowerPC emulator)
 +
* [[RetroArch]] [http://buildbot.libretro.com/stable/1.9.10/linux/x86_64/]
 +
* [[PCSX2]] [https://github.com/ferion11/PCSX2_Appimage]
 +
* [[Dolphin]] [https://www.appimagehub.com/p/1567651]
 +
* [[mGBA]] [https://www.appimagehub.com/p/1567223]
 +
* [[Gambatte]] [https://www.appimagehub.com/p/1566704]
 +
* [[DuckStation]] [https://www.appimagehub.com/p/1460142]
 +
* [[Project64]] [https://www.appimagehub.com/p/1411238]
 +
* [[PPSSPP]] [https://www.appimagehub.com/p/1411234]
 +
* [[DeSmuME]] [https://www.appimagehub.com/p/1411229]
  
[[Category:Consoles]]
+
[[Category:FAQs]]
[[Category:Home consoles]]
 
[[Category:Sony consoles]]
 
[[Category:Seventh-generation video game consoles]]
 
[[Category:PlayStation 3 emulators|*]]
 

Revision as of 06:33, 3 October 2021

Distro-agnostic packages are application portability solutions in Linux.

There are thousands of different distributions of Linux, and many of these use different package systems to manage application installation. Some popular ones are .deb format used by Debian, Ubuntu and its variants, and there is also RPM format used by Fedora, RedHat, and many others. Packages of the game console and computer emulators exist for popular Linux distros, usually available from the official software repositories of the distribution, but they are usually very old compared to the upstream versions. In addition, these packages are typically made only for one single version of the distribution, and due to dependency problems, these can not be used in other distros. There are at least three new package formats that are aiming to bring application portability to the Linux ecosystem. Packages using these formats are quite huge in file size due to bundling all dependencies in it, but they can run in any popular Linux distros.

Flatpak

Flatpak (formerly xdg-app) is a distro-agnostic application framework. It is a decentralized system and has no central package repository. Instead, the user must manually add the repository's URL to the system before packages can be installed, like in Ubuntu's PPA.

Flathub, probably the biggest Flatpak repository, has several emulators.

To install emulators from Flathub, add the location of Flathub repository to your system:

$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

List of available application package names can be obtained by the following command:

$ flatpak remote-ls flathub

Use the following command to install the emulator from Flathub:

$ flatpak install flathub Package Name

Available emulators and its package name is listed below.

Emulator/Project Package Name
RetroArch[N 1] org.libretro.RetroArch
RPCS3 net.rpcs3.RPCS3
DuckStation org.duckstation.DuckStation
m64p io.github.m64p.m64p
Yuzu org.yuzu_emu.yuzu
melonDS net.kuribo64.melonDS
Dolphin org.DolphinEmu.dolphin-emu
DOSBox com.dosbox.DOSBox
FS-UAE net.fsuae.FS-UAE
mGBA io.mgba.mGBA
Nestopia ca._0ldsk00l.Nestopia
PCSX2 net.pcsx2.PCSX2
Citra flatpak.citra-emu.org
PPSSPP org.ppsspp.PPSSPP
Snes9x com.snes9x.Snes9x
VICE net.sf.VICE
FUSE net.sf.fuse_emulator
ScummVM org.scummvm.ScummVM

Snappy

Snappy, also called 'snaps' or just 'snap', is a distro-agnostic application framework made by Canonical, the Ubuntu devs. Unlike other formats, it is a centralized system and has the official repository to download the packages from. List of all packages can be viewed from uApp Explorer (Lists all latest packages but often flooded with "Hello World" apps) and Snapcraft (Apps are listed by categories).

Snappy has the following emulators:

AppImage

AppImage is a package format that allows software distribution without a superuser permission. Unlike the other two, AppImage does not have a system to find, download, install and uninstall the packages. Instead, it works like Microsoft Windows .exe files with no DLL requirements. The user must give the 'executable' permission to the AppImage package (chmod +x ./appname.AppImage) but this is the only requirement.

Unfortunately, emulator adaption is quite poor compared to the other two systems. RPCS3 and yuzu are the most notable emulators to officially adopt this format.

List of AppImage packages can be found in AppImageHub.

Emulators available in AppImage: