|
Post by whitetigerx7 on Nov 29, 2006 17:45:31 GMT -5
I know compatibility will be a big key feature so here are some good guidelines to follow for the Linux port:
1. SDL is the perfered platform API of many emulators for Linux. Graphics, Sound, Input, and even a Netplay is supported via this API. Very similar to DirectX.
2. GTK2 is by far one of the most robust GUI toolkits. QT is okay but it isn't very open and widely used except by KDE.
3. OpenGL acceleration is a must have. X11 contains no native hardware acceleration support system... yet, but don't be optimistic it will ever happen outside a miracle.
4. ALSA audio is the most widely supported audio API. Remember no audio in Linux and UNIX has 3D audio support unless you use OpenAL, but OpenAL is only supported by Creative Labs.
5. Optimize for 486 based CPUs and use MMX calculation assists. Due to the fact pSX will probably never go Open Source meaning user based compiling will not happen and that means custom CPU optimizations are not likely, 486 with MMX is the best bet for the widest range of support.
6. Stay away from RPM packaging. TAR.GZ is widely used and supported on all standard platforms of Linux and UNIX.
Just some good quality advice from a veteran Linux user and emulation enthusiast. Good luck with the emulator BTW. If I remember I saw this guy coding it when 1.0 was out and it had only a bare minimum of features. This program has grown and become very well defined now. Congrats.
|
|
|
Post by brpxqzme on Dec 24, 2006 15:58:25 GMT -5
I felt obligated to comment, since a Linux port is relevant to my interests and supposedly on the back burner.
>[QT] isn't very open Not true for the past however many years. In fact, the problem with pSX's closed source nature is quite the opposite: GTK+ is LGPL, whereas Qt is GPL if you don't want to pay for a license.
>X11 contains no native hardware acceleration support system... Regardless, the de-facto acceleration system for all modern Unix-like systems is OpenGL, and this is the direction X.org is aiming for, it seems. Also, OpenGL is supported by pretty much any workstation OS these days.
>ALSA audio is the most widely supported audio API For Linux, and I know some people who still think that OSS is better (as if!). Mac OS X has no support, and the BSD users will snarl at you for using it. Now the sound API isn't the world's easiest thing to get working A-OK across everything, but SDL is one alternative that works (but I hear that a lot of people get spotty sound using ZSNES with it; I've never had a problem with it under Linux or OS X, but it's probably just good luck on my part). I have no other good suggestions.
>486 with MMX is the best bet for the widest range of support. There is no such thing in real life, of course (but you know that, I'm sure). Basically, GCC code optimized so 486 likes it is better on 686 cpu's than GCC code optimized so 586 likes it. However, the best thing is to just optimize for different procs altogether, and let the user decide. Of course, if the bulk of the work is done in assembly, this is mostly useless info. And of course, this is ignoring Intel icc, etc.
>Stay away from RPM packaging RPM is evil, with a capital 3. DEB is superior. tar.gz is ... also good (especially if you run something like Slackware). I'm a Gentoo addict, what the heck am I saying?!?!
>veteran Linux user Veteran as in "Unix and Jesus got me through 'nam" or "this funny new kernel has only had TCP/IP for a couple of months and someone already runs FSP on it"? Either way, I only started with kernel 2.2....
|
|
|
Post by whitetigerx7 on Jan 4, 2007 18:51:55 GMT -5
LGPL can be used freely and actually is more favorable to the pSX Emulator Author's wishes to keep the binary closed source. GPL and GNU/GPL both require source code to be released. Using LGPL software means they are using it but the project itself is still under a different license.
X11 is trying to get native support for X11's default renderer via the DGA2 extension and making DGA2 the default rendering API. They had made some progress as of version 7.0(6.9) to getting native acceleration working via this extension but to what degree I don't know.
OSS is gone and outdated even in Linux. The only reason I chose ALSA was because of debugging support to which SDL, which has UNIX/BSD and OS-X supported outputs, has no actual debugger built into it.
486 MMX is actually very realisic in terms of how things can be compiled but more or less its compatibility with systems. 486 MMX (Pentium Pro) is widely used as the default optimization for CPUs in various software packages for Linux as well as distributions. While 586 (Pentium2/Celeron) and 686 (Pentium3/Celeron2 and higher) are more realistic keeping things as compatible as possible is the best method for supporting something. Besides Linux runs fine on many older hardware units with full functionality.
DEB is not widely used but it is efficient. RPM (RedHat's baby) is supported even in my Slackware but I get tons of issues with it and have to convert my RPMs to TGZ files. TAR.GZ is about as widely supported as it's gonna get.
|
|
|
Post by patrickp on Jan 5, 2007 13:28:12 GMT -5
Well, as you can see here, the Linux version may soon be with us - and pSX Author is using GTK+ rather than QT:
|
|
|
Post by whitetigerx7 on Jan 5, 2007 16:27:32 GMT -5
The Linux port will also probably have a higher speed rate due to Linux having fewer background programs running all the time than Windows does. I'd even recommend that pSX Author develop the emulator more in Linux and only use Windows/WINE to back-port the project.
|
|
|
Post by Ultima on Jan 5, 2007 17:49:22 GMT -5
Background processes barely make any difference unless they're actually doing something ;\
Additionally, without any factual grounding, I can't agree with such a generalization. A bunch of the Linux systems I've worked with before have had many daemon processes running (counted using ps -A|wc from terminal), much more than the measly 13 processes my (Windows) computer starts up with right now. I'm sure you can probably tweak the startup script and stuff to lower the number of running processes, but surely, the same can be said for Windows.
Seeing as how much of the core emulation code is shared between both ports, I can't see why pSX Author needs to focus on one port over another. Additionally, since a VERY large majority of the users will continue to use Windows, I don't see why that port needs to be placed at a lower priority anyway. Last thing to note is that Wine isn't used for back-porting to Windows. Wine (more specifically, winelib) can be used to port Windows applications to Linux, sure, but I've never heard of it being used to port applications for UNIX-like operating systems back to Windows -- it simply doesn't make any sense ;o
|
|
|
Post by pSX Author on Jan 5, 2007 19:40:03 GMT -5
The Linux port will also probably have a higher speed rate due to Linux having fewer background programs running all the time than Windows does. I'd even recommend that pSX Author develop the emulator more in Linux and only use Windows/WINE to back-port the project. Actually the Linux port is slower if anything... Linux is not very good for interactive apps like games. Also the only decent compiler for Linux is the Intel one and that is not free. GCC generates far worse code than VC (which is one of the best compilers around). Its getting better these days, but still nowhere near as good (as you would expect if you look at the compiler team that works at Microsoft!). There are lots of things that bring Linux down in this area, just a few are: GL has no support for proper full screen (unlike D3D which can take exclusive access to the gfx device)... there is no standard way to enable vsync across all cards. GL has no way to tell what hardware features a card actually supports so you can end up using emulated features without knowing. ALSA has no way to poll the actual status of playback in a sound card (making it very tricky to get low latency output from an emulator without gaps or un-evenness). In short Linux has a long way to go before its as good a platform for games or emulators as Windows is IMO. On the other hand it is free.. so you can't really knock it All of the stuff you'll hear from Microsoft haters is just that... hate - not facts Linux can give better performance for server apps because you can make a more minimal install.
|
|