Replies: 3 comments 26 replies
|
I am not really familiar with the PSF plugin in Audacious and therefore handover to @kaniini and @jlindgren90. My general advice would be;
The code of the current PSF plugin is old, ugly and prone to security issues. So having a better maintained version would be of course welcome. But at first glance the code of AOPSF does not look better though, probably because they have a lot of code in common. |
|
I'm not sure what the licensing should be, since I derived it from Audio Overload. I should have put Audio Overload's license in the repo, and will do so shortly if I can locate the correct license for it. The major problem for these PSF formats is:
Yet another alternative is the Play! emulator, since it takes care of the high level emulation of the BIOS functions way better, but may still have problems, and also have the problem of how to restructure the code into a library for use as a PSF/PSF2 player. |
|
I have been working on a new PSF/PSF2 replayer in Rust as a weekend project. I would prefer we move from OpenPSF to that. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
tl;dr: Can/should we replace OpenPSF with AOPSF?
Broader context: I migrated from Windows to Linux on my primary machine at the end of Windows 7's support in January 2020. I had previously been using Winamp with various plug-ins and so migrated to Audacious. Recently, I've closed a number of gaps in format support and I think the last major hurdle I have is the quality of PS2 PSF emulation in Audacious' officially supported OpenPSF vs the closed Highly Experimental in Winamp. (I believe PS1 PSFs play fine under OpenPSF.)
Over the last week or so, I've spent considerable effort with LLM assistance trying to address various issues I've found in PS2 playback. I've resolved a few and the changes are committed to my fork: https://github.com/Wedge009/audacious-plugins/commits/psf_spu/. But I still have a number of problems that are seemingly intractable, relating to scheduling fairness and the like.
I noted that the AOPSF implementation is generally very close to Highly Experimental's performance (whose renders I've used as a reference via Proton-encapsulated Winamp), and far better than OpenPSF's output in tracks where I've identified issues. As a proof-of-concept, I made a AOPSF-based plug-in for Audacious to replace OpenPSF in my personal installation, but haven't made this public because of potential licence issues. I contacted @kode54 via https://kode54.net/contact/ several days ago regarding the licence situation for that repository but have yet to receive a response.
So I'm not sure if replacing OpenPSF with AOPSF is a feasible option from a licence perspective, although it appears it's already being used in foobar2000. But here are the specific issues I've identified with current OpenPSF:
Final Fantasy IV
This is a weird set, it seems to be taking PS1 tracks (since FFIV was only released for the PS1) and stuffing it with a generic streaming driver for PS2. Largely these seem to be raw recordings of SNES FFIV output but there is a unique track in the Save File Tutorial,
ff4-s-14.psf2. In OpenPSF, this just abruptly stops after a split second of output. With my working branch, there's a lot more output but it's very choppy and there are large segments of silence in the right channel. With AOPSF, this renders just fine.Final Fantasy X
This entire set just hangs. Mentioned in #282. I understand Highly Experimental handles this because it 'cheats' by using Sony's BIOS data to produce a working driver, but neither OpenPSF nor AOPSF can process this set. #282 mentions an alternative source for the PSF set but the link is dead.
My working branch works around the hang, but renders no audio - the entire track is silent.
Final Fantasy X-2
Many tracks play okay with OpenPSF but there are a few serious issues:
Final Fantasy XI
I don't listen to all tracks, but of the few that I picked, there are a few issues I found with OpenPSF:
Ys I, Ys II, Ys III, Ys IV, Ys V
Presumably as a simpler data set and simpler drivers, I found OpenPSF performs just fine with these sets.
I'm bringing this up because continuing to fight OpenPSF's implementation doesn't feel like it's going anywhere (at the time of original writing), especially when there's already a largely good, working implementation available in AOPSF. The question is whether or not it's available under a permissive licence. Any thoughts or feedback on this?
All reactions