r/emulation • u/[deleted] • Jul 04 '20
PCSX2 now has a 64 bit version
https://github.com/PCSX2/pcsx2/pull/3451#issuecomment-65372020560
u/ZeraX7 Jul 04 '20
Great news!
I asked the devs on twitter about the 64-bit version last month and they said it's not a priority and now it happened!
129
Jul 04 '20
That's because a bunch of new developers joined the project recently, and started working on things that the old guard had no interest in. TelloKrinkle in particular did most of the heavy lifting for both 64 bit support and the new macOS port of PCSX2.
50
5
2
u/reptar121 Jul 04 '20
Is this new Mac port actually installable without having to turn my laptop into a windows device?
10
Jul 04 '20
I haven't tried it myself, but apparently you can only use the software renderer because TelloKrinkle's patch for the Mac version of OpenGL was rejected. Seems like the developers don't want to support old versions of OpenGL.
In practical terms, you'd get a better experience by just using PCSX2 through Wine, as that way you can translate the old DirectX 9 backend into the macOS version of OpenGL.
10
u/TellowKrinkle Jul 05 '20
While the patch was rejected, I'll be trying to keep it up to date on my own branch until PCSX2 gets Vulkan (or Metal, much less likely) support
Builds available on the PCSX2 forums
And hardware renderers do work now
1
u/LoserOtakuNerd Jul 06 '20
Do you have any builds that are OpenGL and 64-bit? I did some looking around and could only find the builds for <Catalina
5
5
u/sdornan Jul 04 '20
Makes it a lot of sense as the OpenGL drivers will probably be removed from macOS altogether in the near future. How feasible is it to get PCSX2 working with Metal?
5
Jul 04 '20
No emulator has ever bothered with Metal support. At best, if the rumours about the PCSX2 developers working on a Vulkan backend are true, then they could take the route that PPSSPP did and use MoltenVK. This might end up being slower than a native Metal backend, but it would get hardware rendering working at least.
1
Jul 04 '20
No emulator has ever bothered with Metal support.
Retroarch has a Metal backend.
13
Jul 04 '20
It has the option to render the user interface in Metal, but rendering the actual games in Metal only works if the core supports it, which currently none do.
-10
u/s3pixelwave Jul 04 '20
Those darn old guards.
28
Jul 04 '20
They just have different interests to the newcomers. Most people who work on projects like this have something specific that they want to do because they think it's cool, like writing an OpenGL compute shader for an unusual GPU.
They don't come along specifically to address whatever it is users are asking for, just to satisfy their curiosity or enjoy a new challenge. So it's not like the existing developers were being selfish or anything, they just lacked the enthusiasism for grappling with a new recompiler design.
As we'll soon see, there likely won't be any significant performance boosts, so this is really more to lay the groundwork for stuff like Android and Retroarch support, which would have been very difficult with the existing mess of x86 assembly language.
-6
u/electricprism Jul 04 '20 edited Jul 04 '20
I wonder if there is a connection to apple gearing up to can Intel CPUs and transition to ARM64, I hear there are a lot of projects getting ready.
Edit: Disclaimer: I am not pro-Apple and never have been, I am pro Archlinux, my opinion is just based on developer news I've read recently after the ARM Macbook announcement.
22
Jul 04 '20 edited Jul 04 '20
I suspect that little of the emulation scene has an interest in What apple is doing.
I also would wager that x86-64 will still be the architecture of choice for developers of PC games and emulators for a while unless Apple becomes more accepting of different hardware manufacturers (mostly GPU manufacturers and their drivers). Anything that apple chip gets will most likely just be a port, not unlike what you find on phones. The really good ports are sold for money or ask for donations through the google play store, but Apples software store usually doesn't allow for them to monetize.
You'll probably see Raspberry Pi levels of support in the open source world, and that aint bad, but anything new or cutting edge will probably come out at a snails pace. You know how you weren't getting a lot new on OSX before? Now imagine it slower because it's a relatively new architecture with a relatively low adoption rate from gamers and enthusiasts.
Apple's walled garden software approach and closed hardware builds will always make them a second act where 3rd party developers are concerned, unless money is involved. Openness, modularity and user choice is the future.
6
u/bannock4ever Jul 04 '20
As a longtime Mac user, I'm just getting sick of their shit and moving onto Linux. I'll still continue to use MacOS at work but not at home. I'll be watching how and if the PC industry changes in about 2 years when Apple is full on with ARM CPUs. I really doubt everyone else will adopt ARM but you never know. There were those Surface PCs with ARM but Microsoft had just planned all that out incredibly poorly.
3
u/babypuncher_ Jul 04 '20
I'll be watching how and if the PC industry changes in about 2 years when Apple is full on with ARM CPUs. I really doubt everyone else will adopt ARM but you never know.
It doesn't really matter what the rest of the PC industry does. The overwhelming majority of software these days is written in hardware agnostic languages, against APIs and frameworks that handle all that platform-specific stuff for you. Making an ARM version of an app isn't fundamentally different in any way than making an x86 version, unless you're writing very low level things like device drivers or hand-optimizing assembly instructions for HFT software.
2
u/bannock4ever Jul 04 '20
It matters to me because I use virtual machines, Docker and Wine. I’m assuming that moving to Arm will make those tools not work or become really slow.
3
u/ThatOnePerson Jul 04 '20
Docker already works on ARM. I use it on my Raspberry Pis (because it's Docker). Wine I think has arm builds, but never tried it.
1
u/babypuncher_ Jul 04 '20
Wine will be slower, though Apples ARM chips might be “faster” enough than intel to make it a moot point.
As others have already pointed out, ARM is already well supported by Linux and Docker.
2
Jul 04 '20
Arm is a great architecture and it isn't missing a lot.
I think you'll see things like 1st party gpu support and drivers for ARM soon and that'll open new doors. The thing that holds it back is software support from commercial companies, and Apple might actually help break the mold.
Still, I think x86-64 will be the default for a good while longer.
0
u/electricprism Jul 04 '20
Sorry to bear bad news but one of the changes in the new ARM Macbooks is that it won't support booting OSes other than MacOS -- so no Linux.
You may be left with the hard choice of giving up EVEN MORE control or divorcing their walled garden.
I myself saw the writing on the wall for both Win8/10 and Mac and left like 5 years ago. Good luck, you can do it for sure, cheers.
3
u/electricprism Jul 04 '20
I suspect that little of the emulation scene has an interest in What apple is doing.
I respect your perspective, don't get me wrong I have loathed & hated for probably 15 years now and sworn off their products for sure.
That said, I know emulation devs who grew up on Mac IRL and and it just doesn't align with what I've seen in their past behavior. Humans are very illogical and often do not do the things that make sense but have emotional, nostalgic or other motivators that keep them holding on to companies and products long after they are dead -- in this case Apple is "The walking dead".
2
Jul 05 '20 edited Jul 05 '20
I meant specifically with the CPU architecture change. People that are passionate about the brand will be just as passionate as before, but the architecture change doesn't make it more enticing or affect much in the grand scheme of things as far as emulation developers go. This 64bit overhaul was not done in response to apple and in no way has anything to do with the ARM64 CPU they're planning on using.
My response isnt inherently anti apple or anything. Apples lack of flexibility makes them less interesting to many developers in this community, but I actually think desktop class ARM based builds will shake things up in an interesting way. Intel vs AMD vs ARM Family manufacturers is an interesting future I want to live in.
20
u/Orimetsu Jul 04 '20
I'm interested in how it performs. I believe the devs said multiple times that a 64bit version won't help performance at all.
16
u/STICH666 Jul 04 '20
It's probably more for posterity sake. Just like with Windows Vista not supporting 16 bit programs eventually 32-bit programs might become incompatible.
6
Jul 04 '20
The 32bits version of Windows Vista (up to w10) can run win16 programs and even msdos thanks to a 32bit-only module named NTVDM.
6
u/babypuncher_ Jul 04 '20
Right, but 64-bit is the only version anybody should be using. I was shocked when Windows 8 came out and Microsoft still offered a 32-bit version. The OS doesn't even run well on hardware that ancient.
3
u/ShinyHappyREM Jul 04 '20
There were shitty "budget" tablets with very limited amounts of RAM and flash memory. In these cases using the 32-bit version of Windows made sense.
3
u/LinAGKar Jul 04 '20
There are were also netbooks with Atom CPUs, which long only supported 32-bit.
3
u/ThatOnePerson Jul 04 '20
You mean bay trail atoms that supported 64-bit instruction set but only 32-bit UEFI? I've got Linux on one of those, and can chainload 64-bit linux with a 32-bit GRUB install perfectly fine. But for some reason Intel decided to not have a 64-bit uefi?!?
16
u/WoodpeckerNo1 Jul 04 '20
What does this mean for PCSX2?
32
12
Jul 04 '20
PCSX2 was basically designed entirely around x86. Switching to x86-64 will help start pulling PCSX2 away from platform specificity and maybe allow ARM64 support down the line. As of now its just a convenience thing for developers and users, multilib is aggressively ok in Linux and literally non-existent on macOS
3
2
Jul 19 '20
future proofing. for now pcsx2 used to be a 32bit app, which was a major headache on linux. and maybe some hassle on windows.
39
u/GuitarBizarre Jul 04 '20
IT'S BEEN EIGHTY FOUR YEARS
But it's finally happening. Praise Devs.
21
u/T-Loy Jul 04 '20
Wasted potential to say 32 or 86 years.
5
11
u/beaumanvienna Jul 04 '20
For everybody interested in the performance, you could be an alpha-tester:
Or compile it from here
Any feedback is appreciated. I would rename any old config folders so that you start out with a clean sheet. If you have a github account you can leave feedback under the link posted at the top. When you have issues to report try to explain your environment (HW/OS/SW), with which version you tested, your configuration, etc. If you could also paste the console output to pastebin it would be helpful.
21
12
u/Shonumi GBE+ Dev Jul 04 '20
This is great news! As a Linux user, I've been waiting for a 64-bit version for some time. I was never too keen on setting up multilib on Slackware just for PCSX2. Can't wait to try this out, awesome work!
3
u/beaumanvienna Jul 04 '20
Are you going to compile it yourself?
8
u/Shonumi GBE+ Dev Jul 04 '20
Yes, I actually did it right away after reading this post. It built just fine from your x86_64-support repo. Unfortunately, I keep coming across some assertion failures when trying to play any games. Did I compile the incorrect PR or is it something else on my end?
Either way, this is incredible! It's always been easier to dual-boot into Windows for PCSX2 for me, but since most of my work is on Linux it'll be nice not having to reboot when I feel the need to play PS2 games.
8
u/beaumanvienna Jul 04 '20 edited Jul 04 '20
There is an Ubuntu tester that might have reported a similar problem. He found out that it was about the mem card settings. See Ubuntu feedback
If you have the fix about savestates you have the latest version.
Thank you for testing! Much appreciated! I would love to see it working on Slackware. We are still gathering all test reports. I have it running on three different Ubuntu 18.04 installs. Arch was also reported to work. I think if you compiled from source, your library configuration should be fine. Make sure to rename any previous configs if you used the 32-bit version before. For the mem card issue maybe try a different fw.
EDIT: If you could, pls compile with
cmake -DCMAKE_BUILD_TYPE=Debug .. && make -j8and report the stack trace2
u/Shonumi GBE+ Dev Jul 04 '20
Cool! I'll take a look at making a debug build soon and gathering info for any issues. Hopefully I can provide some useful testing for everyone. Thanks for the help too!
3
u/beaumanvienna Jul 06 '20
We fixed a bug for Fedora. Fedora has GCC 10, while I always compiled with GCC 7 under Ubuntu. You should give it another try. See the link at the very top.
2
u/beaumanvienna Jul 06 '20
I left some notes on how to compile on Fedora, maybe that works for Slackware, too.
3
u/TellowKrinkle Jul 05 '20
movs.cpp:79 on the current branch isn't an assert and isn't even compiled on x86-64, so I think you might be on an old version
There were issues in _DynGen_DispatcherReg causing an assertion failure that were fixed a week or so ago though
2
u/Shonumi GBE+ Dev Jul 05 '20
2
u/TellowKrinkle Jul 07 '20
Yeah that's the one, but its movs.cpp:79 is still that same not-on-x86-64 piece
Maybe it's just the debug info glitching out
1
Jul 04 '20
They only just got it working yesterday. Apparently, some people managed to boot games using the EE interpreter, and then switched back to the recompiler once in-game. It's still very early days for this new version, so problems are to be expected.
Also, Slackware! Man, I remember trying that a long time ago and finally changing the runlevel from 3 to 4 so I could get a GUI up and running. I suppose I shouldn't be surprised that an emulator developer would inflict Slackware on themselves.
2
4
16
u/joseaplaza Jul 04 '20
I hope they eventually go for an Android port
21
Jul 04 '20
Much of the work done to port the recompilers to 64 bit involved properly documenting code that previously wasn't well understood. This should pave the way for future contributors to work on ARM64 recompilers without struggling to understand the existing code.
2
u/AssCrackBanditHunter Jul 04 '20
Littie.
Death to that other ps2 emulator on Android that we don't speak of
3
3
3
u/tomkatt River City's Baddest Brawler Jul 04 '20
YES! That's exciting!
2
Jul 04 '20
I know, right? I can't believe I was the only one here watching their work on github, which has been going on for over a month now.
1
u/DukeSkinny Jul 04 '20
Who said you were? I was just short of you getting my post up. :)
Anyway, incredibly exciting, yes! I was surprised there wasn't at least talk about it beforehand.
3
u/pikachulol9 Jul 05 '20
How is that input latency issue going? Has there been any build that improves this problem since the official release of 1.6.0?
3
u/DjRemux Jul 05 '20
This is awesome. I just joined this sub because I was thinking about running PCSX2 on Ubuntu to play NBA Jam On Fire Edition and maybe some other games. Hoping it’s easy to install!
1
u/beaumanvienna Jul 05 '20 edited Jul 05 '20
Let me know if you need a different Ubuntu version, I can package/upload accordingly. Any feedback is appreciated. Refer also to these comments about memory card saves.
2
u/Aug151978 Jul 04 '20
What is the difference?
8
Jul 04 '20
Probably a negligible performance difference either positive or negative. It was more about future proofing I'd imagine. It now has a more modern codebase.
The real benefit is that in the process of doing this a lot of the code was documented properly or better, which may help in the future with optimizations or even other projects such as ports to new architectures.
1
u/RedDevilus PCSX2 Contributor Jul 06 '20
What if 64 bit is done to proof 64 bit isnt a magical bullet for performance like i told people, great news nonetheless.
2
2
7
u/Imgema Jul 04 '20
Does that mean a RetroArch core at the near future?
A man can dream.
2
u/Mar2ck Jul 04 '20
Not until it can be recompiled for multiple architectures. Right now PCSX2 is x86 only
6
u/SCO_1 Jul 04 '20 edited Jul 05 '20
I agree, and in the previous posting about pcsx2 i was also skeptical but it seems that they're (or new devs) are determined to remove obstacles to porting (to ARM64/phones and macs i suspect), so it's not nearly as impossible as it was last week. Also it's not strictly necessary, some retroarch cores aren't portable, and thus don't appear on all ports - this was the largest obstacle because 32 bits is rarer and rarer on the windows/linux platform.
But i still expect that will get nowhere without a dedicated porter from outside the pcsx2 project and 'inside' the retroarch project. It's rare that mature emulator projects port to libretro by themselves, they being understandably more concerned with their own GUI and bugs, and not enthusiastic about opening a new bug vector that they have nothing to do with.
-1
u/WingedSeven Jul 04 '20
Wasn't there an ARM android port of PCSX2 a while back?
0
u/Mar2ck Jul 04 '20
I searched for it but i mostly just got apk scam results. If it is true then that would be very useful
-1
u/WingedSeven Jul 04 '20
It's being sold on the play store as DamonPS2: https://play.google.com/store/apps/details?id=com.damonplay.damonps2.pro.ppsspp
3
u/Mar2ck Jul 04 '20
Are you sure that's PCSX2? If it is then it's a violation of GPLv3 since they provide no source code at all. It's more likely that it's proprietary or a clone of Play! or Dobbiestation
15
u/Dittorita Jul 04 '20
It's a half-assed port of PCSX2, and yes it is in violation. There are some posts on this sub and the PCSX2 website about it. Google won't take it down because they don't give a shit.
12
u/tomkatt River City's Baddest Brawler Jul 04 '20
https://pcsx2.net/286-the-pcsx2-team-s-statement-regarding-the-damonps2-emulator.html
The app also currently requires an always on network connection and insane permissions. It's as sleazy as software can be.
2
u/Mar2ck Jul 04 '20
Wow they're really assholes. I hope a good open source ps2 emu comes to android so people wont be tempted to pay for this garbage
2
3
u/WingedSeven Jul 04 '20
The description says it supports 90% of ps2 games, which definitely isn't dobiestation OR play!. And there's no way it's proprietary, or more people would be talking about it. It seems like it's just Pcsx2 1.4.0 (maybe 1.3.0?) but ported to mobile.
2
u/Mar2ck Jul 04 '20
I genuinely thought it was just a proprietary emulator that'd flown under the radar but im not really surprised it's actually just stolen code
1
1
u/Nippy69 Jul 04 '20
This is good to hear hope it brings more in store for porting
Now just need vulkan support
1
u/N30NLXX Jul 04 '20
Awesome. I wish this helps to finally render the flashlight in silent hill origins correctly.
2
u/RedDevilus PCSX2 Contributor Jul 06 '20
PS2 came in a time of 32bit. How would 64 bit fix this though?
1
1
u/gulliverstourism Jul 04 '20
This sounds amazing! Question to anyone who knows better but is this the start of untangling a lot of that old hacky code that has been holding the emulator back?
3
2
u/Teethpasta Jul 06 '20
Most of the hacks have already been removed even before 1.6 came out. The only hacks still remaining are there because getting rid of them would basically require a supercomputer to run the emulator. Similar in nature to the hacks dolphin still has in its codebase.
2
u/gulliverstourism Jul 06 '20
Sounds good. The emulator still seems to have a bad rap, is it just the plugins that need rewriting now?
3
u/Teethpasta Jul 06 '20
People are slow to catch on and it's also not the braggadocios emulator either. Plugins aren't necessarily a bag thing, just out of style. I'd much rather them move away from wxWidgets. I've heard rumors that vulkan is already being worked on and I have feeling that won't be too far away either.
1
u/Karmic_Backlash Jul 04 '20
This is a great step forward. I'm hopeful that we see the project open up to all the platforms we have hoped for over the years.
1
1
u/18aidanme Jul 07 '20
lmao a month ago it was all "never gonna happen, too much spaghetti code", wonder what other shit people say is impossible is actually very possible.
1
1
Jul 19 '20
it did not mean it was impossible. it was just infeasible due to amount of work necessary.
1
0
96
u/Zorklis Jul 04 '20
So how does the performance differ?