
PCSX2 PS2 Emulator: Progress report Q3 2019 to Q1 2020 - boramalper
https://pcsx2.net/292-progress-report-q3-2019-to-q1-2020.html
======
Fej
PCSX2 is a really nice piece of software and often gets overshadowed by more
popular emulators, it's really nice to see the devs getting some attention.
The feats they've accomplished are substantial - I'd go so far to say that
it's the best way to play many PS2 games.

~~~
nyanpasu64
From reading this progress report (I'm not an active user of PCSX2), it seems
this emulator uses per-game hacks frequently. On the other hand, Dolphin
(which I'm a semi-active user and used to follow development) never performs
per-game disk patches and only rarely uses per-game emulator-level hacks.

~~~
djmips
It's true but the PS2 is a much more convoluted system to emulate with more
moving parts and undocumented behaviour in the timing and interaction between
these parts as compared to the relatively simpler Gamecube. This also made the
Gamecube easier to develop for IMO (I developed games on both systems)

------
twistedcheeslet
The PS2 emulation scene is what ended up driving me to IT and eventually
software development back when they hosted their forums on NGEmu. Tons of
respect to all the contributors for keeping the endeavor alive - incredible
what they've managed to accomplish.

Unrelated, has anyone ever tried getting PCSX2 to run on ARM chips?

~~~
opencl
There's an Android port but unfortunately it's by some company that's selling
it and blatantly violating the GPL.

[https://pcsx2.net/286-the-pcsx2-team-s-statement-
regarding-t...](https://pcsx2.net/286-the-pcsx2-team-s-statement-regarding-
the-damonps2-emulator.html)

~~~
colejohnson66
I was initially gonna say the GPL permits selling your software, and even says
you don’t have to release the code to everyone (just those who own your
software), but then the developer said they will open source at 80 million
downloads? That’s a violation.

------
mahrain
Does anyone know why the Mac port has not been updated since 2012 (but
downloads are still being offered)?

~~~
bzb3
From my experience with open source projects: nobody in the team owns a Mac.

~~~
john_alan
I disagree with that. macOS is basically BSD and it’s great for Dev. Most of
the devs I work with use it.

~~~
snickerbockers
Apple ditched OpenGL and Vulkan for their own exclusive 3D graphics API.
They're a terrible platform to develop for.

~~~
pjmlp
All major middleware already does Metal, even non gaming stuff like Flutter.

~~~
ddevault
Most emulators don't use middleware, because it doesn't afford them anywhere
near enough flexibility or performance.

~~~
pjmlp
As anyone from Flipcode and Gamedevnet days knows, middleware can be as thin
as couple of function pointers with shared libraries loaded on demand for the
desired 3D API.

The approach taken by AAA game engines, although nowadays it looks more like a
bunch of abstract classes/interfaces, depending on the language.

When you look into a game engine, typically 3D API abstractions are like 10%
of the whole codebase.

~~~
hexmiles
The way some emulator use the gpu can be quite different from the way pc games
use it.

You can look at this article: [https://dolphin-
emu.org/blog/2017/07/30/ubershaders/](https://dolphin-
emu.org/blog/2017/07/30/ubershaders/) for an example how console graphics
programming differ.

Middleware designed for games don't allow nearly enough flexibility to handle
all the possible edge case that can arise. Console gpu (and graphics api) and
computer gpu don't map one-to-one and they need all the feature and support
from the underlying api that they can get for replicating the console way of
doing things, supporting a new graphics backend is a lot of work for this
reason. middleware try to abstract common pattern and flows, but every console
is quite unique (in some way) middleware are not build for that and often are
(a form of) a lowest common denominator for graphics api. Which is fine... for
games.

edit: some clarification

~~~
pjmlp
That doesn't forbade loading shared libraries as function pointers though.

Even if you stay, lets say OpenGL only, there are multiple execution paths
with driver and graphics card specific code paths.

3D libraries like OpenGL/Vulkan are only portable up to a certain extent.

When you are coding at the ultimate performance level, you are also going into
that rabbit hole of graphic card specific code paths and driver specific
extensions.

So, it is hardly different than having your own plugable abstraction layer.

------
pedrocx486
I always wondered why most emulators keep OpenGL/DirectX as renderers instead
of porting to Vulkan, I imagine because that would be an insanely tall task to
tackle?

~~~
MegaDeKay
Emulators with Vulkan include RPCS3, Dolphin, Flycast, Yuzu, PPSSPP, Xenia...

~~~
pedrocx486
Nice, I wasn't aware of those using Vulkan, especially Dolphin. Thanks for
pointing out.

