Page 1 of 6 123 ... LastLast
Results 1 to 10 of 55

Thread: PSX (Playstation 1) Emulation With PCSX Howto

  1. #1
    Join Date
    Sep 2005
    Beans
    153

    PSX (Playstation 1) Emulation With PCSX Howto

    There is already a howto for doing PSX emulation with ePSXe posted here, however my howto may be more useful to you for the following reasons:

    • PCSX is generally a more compatible emulator than ePSXe. (This is at the expense of speed. PCSX is slower than ePSXe. However, most of us have computers more than fast enough for both emulators.)
    • PCSX has more controller configurability as it has an input plugin system whereas ePSXe is restricted to its built in controller config. (This does, however, add complexity to PCSX whereas ePSXe is simpler.)
    • PCSX is open source software, whereas ePSXe is not.


    In the end they are both excellent emulators and we are lucky to have two great ones available to us in the Linux world. The choice is purely a matter of preference, and I prefer PCSX, so my guide is about PCSX!**

    Into the thick of things...

    My guide presumes the following:
    • You are running Ubuntu Linux. (My guide reportedly works in Debian as well.)
    • You have an NVIDIA card with their proprietary binary drivers installed. Sorry, ATI people. I can't help you. Anyone want to report success/failure or special configs specific for ATI people? I'll add it to the guide!


    The easy way, download kethipcsx, my preconfigured PCSX package
    • The easy way to get up and running fast is to download my custom PCSX build designed for easy PCSX deployments on Linux systems. It contains PCSX 1.5 and every known Linux input, gpu, and spu plugin is properly installed. I compiled omnijoy for you, and I included my hidden config file patch. This package should contain everything you need to play PSX games in Linux. All you need to do is supply a BIOS image (don't ask me for one, Google is your friend...) and pick which plugins you want to use, then load a game! Download it here.


    Screw you and your preconfigured package! I want to do it myself! (Skip this section if you're just using my package.)

    Okay, here's what you need to know.

    • You will need a copy of PCSX which you can get here.
    • You will need Linux input, gpu, and spu plugins which you can get from this website (among others).
    • When you're setting up your plugins, keep in mind there is a special thing you must do to get Pete's plugins to work correctly. You must place the plugins (the .so files) in the plugins directory, but you must place the binary configuration programs in the root emulator directory, with the emulator binary. Otherwise, the emulator cannot configure the plugins.
    • There is a special thing you must do to get the padJoy plugin to work too. Like Pete's plugins, padJoy's config program needs to be moved somewhere (else) special. You must create a /cfg directory in your emulator's root folder. Place the plugin in the emulator's plugins folder, but place the binary configuration program in the /cfg directory you created. If you do not do this, the plugin will not work. (This is all true for Omnipad as well, should you compile it.)
    • PCSX by default creates a configuration file in your home directory representing your settings named Pcsx.cfg. This annoyed the **** out of me, because every other UNIX program under the sun makes that a hidden file, so you never have to bloody see it there constantly. Luckily though, PCSX is open source. If you hate unhidden config files as much as I do, you can download the PCSX source and replace the LnxMain.c with my hacked version of LnxMain.c in PcsxSrc-1.5/Linux. My hack changes the config file from Pcsx.cfg to .pcsx.cfg. Once you have replaced the LnxMain.c, simply cd /path/to/PcsxSrc-1.5/Linux then ./configure then make. You should get no errors doing that. If you do, you don't have gcc, libgtk or some of the other deps you need. Check the PCSX documentation for the list of deps, or you can simply download my precompiled binary. Both the binary and source hack are use at your own risk stuff etc, etc, ad nauseum.


    General Notes
    • I tried out all the GPU plugins thoroughly, and Pete's MesaGL Driver seems to be the fastest, most accurate, highest quality one.
    • Unfortunately, Pete's MesaGL GPU plugin has severe issues with doing fullscreen. In the image below, PCSX is shown loading the BIOS in fullscreen mode. The red lines represent the visible screen area, proportional to the rest of my desktop. (For the record, no, this has nothing to do with my NVIDIA TwinView setup. I disabled the TwinView setup and tested it again to make sure and got the exact same results.)

      (Click for full size)


      It looks like Pete's MesaGL Driver does fullscreen by simply removing the window border, maximizing the window, drawing the game screen at the desired resolution in the top left corner, changing the screen resolution, and moving the monitor viewport to the top left corner. This isn't real fullscreen, it's fake fullscreen and is subject to number of compatibility issues. For one, the gnome-panel at the top of my screen is forcing the maximized pseudo-fullscreen PCSX window down several pixels. Secondly, the viewport is not fixed. The resolution of the X11 session is still in fact 2880x1200, and you can move anywhere within this much larger real estate simply by moving the mouse. In some ways this can be an advantage though. You could use the mouse to carefully recenter the viewport over the game screen so that it's not cut off anymore. But that's annoying. And it won't work anyway... here's why:

      (Click for full size)


      After PCSX is done doing its BIOS thing, Pete's MesaGL Driver moves the game screen to the bottom left of the viewport, for some odd reason. And since gnome-panel is forcing the absolutely sized PCSX window down several pixels, the bottom of the game screen is cut off once again. And this time no amount of recentering with the mouse can help you. What you can do, is move all your gnome-panels to the bottom of your screen and set them to auto hide. If you do that, then use your mouse to recenter the game screen to the bottom after you load PCSX, you can have a totally full screened PCSX with nothing cut off. Note: If you select a full screen resolution that is exactly the same as your monitor's current resolution, you won't need to recenter with the mouse. Also, if you use KDE, you shouldn't have to worry about its panel (kicker) doing this kind of stuff. But if your fullscreen resolution is smaller than your monitor's normal resolution, you will have to do the recentering stuff. Finally, another workaround you can use is to use P.E.Op.S. SoftX Driver. It does the same fake fullscreen nonsense that the Pete's MesaGL Driver does, but it also automatically (yay!) centers centers the viewport to where it needs to be, and don't pull any shenanigans on you moving the game screen around the viewport. It doesn't lock it there though. If you move the mouse while playing, you will reveal gnome-panel. See below.



      Even with this, P.E.Op.S. SoftX Driver is still the much more convenient option so long as you don't touch the mouse once you go fullscreen. But personally I think Pete's MesaGL Driver looks and performs leaps and bounds better, and I'd rather play it windowed, or deal with its funny fullscreen behavior then use the more convenient, but less pretty, and slower P.E.Op.S. SoftX Driver instead.

    • Given only two choices for SPU plugins, Eternal's and P.E.Op.S. OSS Audio Driver, I was forced to use P.E.Op.S. OSS Audio Driver when Eternal's wouldn't work. Luckily, P.E.Op.S. OSS Audio Driver works nicely. (This was tested with a Soundblaster Audigy.)


    Troubleshooting
    • If when you try to load a plugin's config screens and they do not appear, try running it from the terminal. If the terminal output says something like error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory, then you need to sudo apt-get install libgtk1.2.
    • If when you initially launch PCSX it says "PCSX needs to be configured" and then just closes, try running it from the terminal. If the terminal output when it closes says libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory, then you need to sudo apt-get install libstdc++2.10-glibc2.2.
    • If you have spaces in any of your PSX BIOS files, PCSX will segfault. Remove all spaces from your PCSX BIOS files.
    • Last but most certainly not least, I've found that once you load a game into PCSX, if you press escape and load a different game, it will occasionally lockup X forcing you to reboot. To prevent this, if you want to load a different game, close PCSX and reopen it.


    **This guide is a modified version of the comprehensive Linux PSX howto on my website.
    Last edited by Kethinov; November 20th, 2007 at 06:24 AM.

  2. #2
    Join Date
    Oct 2005
    Beans
    83

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    hey, so I have the bios, and I have it all set up, but when I try to run a .bin (game) it just closes the window. I really don't know what I'm doing wrong.

  3. #3
    Join Date
    Sep 2005
    Beans
    153

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    Try running PCSX from the terminal and see what error it spits out when it closes.

    My guess is it's segfaulting because the format your cdimage is in can't be read by the cdr plugin, or the image is possibly corrupt. But it could be a number of things. Maybe you're missing a dependency.

  4. #4
    Join Date
    Nov 2004
    Beans
    251
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    I hope you can help me.

    I managed to get this emulator working under amd64 using the 1.5 build from pcsx page, The one that's in the repos for some reason can't read the plugins.

    The only problem I have is that whenever I try to run the configuration for any of Pete's plugins I get:
    PeteMesaGL: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory
    However a locate libgtk-1.2.so.0 shows that it's under /usr/lib so I tried to symlink to the Plugins directory of pcsx but no luck.

    With padjoy I get:
    padJoy: cannot open cfg/padJoy.cfgpadJoy: cannot open cfg/padJoy.cfg./cfg
    When I start pcsx, but cfgPadJoy is in cfg directory!

    Any clues?
    Registered Linux user #380444
    My blog

  5. #5
    Join Date
    Sep 2005
    Beans
    153

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    You need the libgtk1.2 package installed. Open up Synaptic and do a search for it.

    For padjoy, try making an empty file in cfg called padJoy.cfg.

  6. #6
    Join Date
    Nov 2004
    Beans
    251
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    Thanks man, since I posted I installed x86 Dapper final (thinking it was a 64 bits related issue) and it gave me the same error. Then I found out about the libgtk1.2 lib, installed it and it all worked like you said.

    So I'm already thinking into going 64 bits again, but I don't know... everything works so well here
    Registered Linux user #380444
    My blog

  7. #7
    Join Date
    Oct 2004
    Beans
    Hidden!
    Distro
    Ubuntu Karmic Koala (testing)

    Thumbs down Re: PSX (Playstation 1) Emulation With PCSX Howto

    Just as a heads up, there is a fork of pcsx, called pcsx-df.

    http://rschultz.ath.cx/code.php#pcsx-df

    Just tested it with my SoTN (which is scratched sadly, but cdrdao still made a good bin/toc).
    Attached Images Attached Images
    Last edited by BoyOfDestiny; July 7th, 2006 at 05:50 AM.
    The idea of copyright did not exist in ancient times, when authors frequently copied other authors at length in works of non-fiction. This practice was useful, and is the only way many authors' works have survived even in part. -- Richard Stallman

  8. #8
    Join Date
    Apr 2005
    Location
    Ciudad de México, México
    Beans
    154
    Distro
    Ubuntu 11.04 Natty Narwhal

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    I had problem running your package. After I configured every plugin, I clicked OK, and then PCSX segfaulted, with the following error:

    libstdc++.so.5: cannot open shared object file: The file or directory doesn't exist. Segfault.
    This was translated from spanish.
    Anyway, I solved it by installing libstdc++-5.
    Just telling in case someone also runs into this.

    Edit: OK, new problem here. I don't seem to be able to play a PSX CD from the drive, it seems I need to make an image. Now, I am unable to do that. It chokes on I/O errors. So.... Any suggestions?
    Last edited by dashnak; July 9th, 2006 at 08:34 AM.

  9. #9
    Join Date
    Jul 2005
    Location
    London,England
    Beans
    1,022
    Distro
    Ubuntu Karmic Koala (testing)

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    ive been using ePSXe for ages now, i dont have enough hard disk space to ripmy games can this run the real CD's from the drive like ePSXe can?
    Jeremy Clarkson - "A Dazzling Hero of Political Incorrectness"
    My LastFM profile
    want to Give each GTK program its own theme? well look Here

  10. #10
    Join Date
    Oct 2004
    Beans
    Hidden!
    Distro
    Ubuntu Karmic Koala (testing)

    Re: PSX (Playstation 1) Emulation With PCSX Howto

    Quote Originally Posted by Hairy_Palms View Post
    ive been using ePSXe for ages now, i dont have enough hard disk space to ripmy games can this run the real CD's from the drive like ePSXe can?
    Yes.
    The idea of copyright did not exist in ancient times, when authors frequently copied other authors at length in works of non-fiction. This practice was useful, and is the only way many authors' works have survived even in part. -- Richard Stallman

Page 1 of 6 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •