RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.41k stars 1.92k forks source link

Drop 32-bit support #261

Closed iirelu closed 10 years ago

iirelu commented 10 years ago

As mentioned in issue #148, there are a multitude of reasons 32-bit systems shouldn't be supported. Dolphin, an emulator for a much less powerful system than a PS3, recently dropped support 32-bit support as 32-bit processors simply aren't powerful enough.

Another reason to drop 32-bit is that writing two sets of code, one to take advantage of all of x86_64's features, and another to barely work on 32-bit machines, takes a lot of effort for very little value. Dropping support for it early on means a lot less pain in the long run.

Graph from Dolphin: A graph from Dolphin's page on why it's dropping 32-bit support.

(All this was talked about in #148, but I thought it should have its own issue)

archshift commented 10 years ago

I agree. x86_32 is all but obsolete at this point.

ghost commented 10 years ago

I do agree with this. In fact, I actually commented on wololo.net (http://wololo.net/2014/05/21/rpcs3-ps3-emulator-playable-state-game-support-added/) on how we would probably follow Dolphin footsteps. So, yes, 32-bit support will be removed soon.

dbz400 commented 10 years ago

Probably this one can be closed now :)

glaubitz commented 10 years ago

Will it still be possible to build the emulator on other, non-x86_64 architectures like ARM or MIPS? Or does this mean, you're going to use lots of x86_64 inline assembly now?

Many people would probably love to run this emulator on Debian and we support a large variety of architectures in Debian.

iirelu commented 10 years ago

How many emulators have functional ARM versions?

glaubitz commented 10 years ago

PPSSPP has a functional ARM port as well as virtually every other emulator that's been packaged for Debian. ARM CPUs are ramping up in performance as of lately and there are also 64-Bit ARM CPUs on the rise.

iirelu commented 10 years ago

Nitpick: Debian isn't the only linux distro with ARM support, and you don't "package for Debian".

As for the rest, I have no idea if rpcs3 even vaguely supports ARM.

glaubitz commented 10 years ago

Where did I claim that Debian is the only distribution with ARM support? And, yes, I do package for Debian, I'm a Debian Developer.

And why shouldn't the emulator be architecture-agnostic? To my current knowledge, there is only one popular emulator which is limited to one architecture and that is zsnes because it uses i386 inline assembly. Emulators like virtualjaguar, fs-uae, higan, vice, mupen64plus, desmume, mednafen and yabause are all supported on all Debian ports, including MIPS, SPARC, PPC, s390x, ARM and even exotic stuff like Alpha, 68k and hppa.

There is more than just x86 :).

iirelu commented 10 years ago

You package for Linux, not just one distro of it.

Bigpet commented 10 years ago

@glaubitz the answer would be "possibly" and "later". It's open source and people are free to contribute. It's just that our current resources are better spend making it run on one platform before expanding to other platforms.

glaubitz commented 10 years ago

Seriously, iirelu, what's the point of your idiotic discussion? I have been doing Linux development since 1998, I don't need someone like you introducing me to the basics of distribution development.

Jesus, some people on the web. And, YES, I effin' package for Debian. I'm neither using or developing for Arch, Fedora, openSuSE or whatever and that's why I was specifically talking about Debian, especially because Debian supports the most variety of architectures.

glaubitz commented 10 years ago

@BlackLotus I neither mentioned PXSX2 nor Dolphin, did I? And there are ARM machines with much more computing power like the upcoming ARM64 CPUs. You can, in fact, already buy servers from DELL with ARM64 CPUs and companies like Canonical invest lots of ressources into porting efforts.

So, I think the question of portability is absolutely legit and thank you very much @Bigpet for giving me the answer I was looking for!

BlackLotus commented 10 years ago

Glaubitz you even mentioned zsnes

To my current knowledge, there is only one popular emulator which is limited to one architecture and that is zsnes because it uses i386 inline assembly.

There are many popular emulators, like pcsx2, which are limited to one architecture (this is a direct comment to your statement).

And "powerful" really needs to be defined here. Right now there are very few arm boards that can run more demanding emulators and this discussion really seems to be unnecessary because if someone writes arm code, you can port it, but there is just no reason to write arm code right now because it doesn't make sense.If somebody feels it does somebody will write it though.But seeing the pain most emulator developers have with arm development using the gpu, I doubt that it will happen soon.

PS damn now I regret removing my first comment

ameenross commented 10 years ago

@iirelu: Linux != Windows This has to do with config/make, ABI stability etc. Example: http://www.phoronix.com/scan.php?page=news_item&px=MTUyMTE

AlexAltea commented 10 years ago

Please, there is no point on discussing here. :wink: This is neither an issue nor related to #261 and it has been already answered by https://github.com/DHrpcs3/rpcs3/issues/261#issuecomment-45076393 and https://github.com/DHrpcs3/rpcs3/wiki/FAQ#will-rpcs3-be-ported-to-platform-x-will-it-include-feature-y. Things like this should be discussed on the forums. Thanks. :-)

PS: Unless there are remarks about dropping of 32-bit support, please consider this thread as closed.

delroth commented 10 years ago

Dolphin dev here, happy that our numbers are used by other people. My 2 cents:

Make sure you don't get lazy and use the opportunity of having only one system to support now to make your project a horrible x64-centric emulator that won't ever be ported to another architecture (I'm looking at you, PCSX2). We don't know what will be used in 10 years, and it might not be x64.

For Dolphin we dropped x86 support but we still have ARM and "Generic" (aka. no architecture dependent code, interpreter only, should work on any little-endian system) support to avoid getting into that trap. My advice to you would be to setup some automated build for such a "generic" configuration that makes sure you always some kind of compatibility with non-x64 systems.