El teu blog de Linux en català

Divendres de joc: recordem vells temps amb la PlayStation

Gràcies a l’emulador pSX de l’antiga PlayStation, podrem gaudir des de la nostra distribució preferida de algunes de les joies que hem oblidat amb l’arribada de la PlayStation 3. Em refereixo com no a jocs com Metal Gear Solid, Syphon Filter, Final Fantasy VII

Cal dir que pSX no és programari lliure, tot i això sembla que és l’emulador amb versió per a GNU/Linux que suporta un major nombre de jocs. Us podeu descarregar els fitxers executables directament de http://psxemulator.gazaxian.com/

Un cop descarregat el paquet us situeu amb la terminal a la carpeta on es troba el fitxer i executeu l’ordre:

tar -jxvf pSX_linux_(versió).tar.bz2

on (versio) és la versió del programa descarregat.

Per poder executar l’emulador sense problemes s’hauran d’instal·lar les llibreries necessàries:

sudo apt-get install libgtkglextmm-x11-1.2-0 libgtkglext1 libxml2

Actualització: En sistemes de 64 bits és possible que la llibreria libgtkglext no estigui disponible, almenys sota Ubuntu, per saber com instal·lar-la referiu-vos a aquest enllaç: http://ubuntuforums.org/showthread.php?t=1299513

Això sota Ubuntu 10.10, n’he omès algunes perquè ja solen venir instal·lades per defecte, com alsa i gtk, tot i això, si utilitzeu una distribució amb entorn d’escriptori no basat en les llibreries gtk, com KDE, és necessari executar la següent:

sudo apt-get install libgtk

Si sou en derivats d’Ubuntu.

Ara simplement ja podem donar persmisos d’execució al programa i executar-lo:

cd /ruta/a/pSX

sudo chmod +x pSX

./pSX

El pròxim que cal fer és aconseguir una BIOS de la PlayStation, com que això està al limit de legalitat no us puc donar cap enllaç, però buscant a Google “SCPH1001.BIN” hauríeu d’aconseguir descarregar el fitxer. Un cop descarregat  aneu a (pot variar segons l’idioma configurat) File -> Configuration -> Bios i seleccioneu la carpeta que conté la BIOS a l’apartat de PS1.

Alguns usuaris (jo m’incloc) han trobat alguns problemes de compatibilitat amb PulseAudio, cosa que provocava finalitzacions del programa inesperades, per solucionar-ho és tan fàcil com dirigir-se a File -> Configuration -> Sound i augmentar la latència. A mi amb un valor d’uns 80 ms em funciona correctament.

Ara simplement es qüestió de carregar el joc utilitzant el menú File, podeu fer-ho o bé directament des de el CD o bé amb una imatge, que pot ser iso, cue, bin i img.

Perquè vegeu que funciona, us deixo una captura del mític Metal Gear Solid:

No us vicieu molt!

    • logoff on 29 d'octubre de 2010 at 09:39

    Reply

    encara m’enrecorda les grans partides ambg l’ePSXe per Windows. era superconfigurable, anaven tots el jocs i amb les textures millorades. quines partides al Dave Mirra BMX, Gran Turismo 1 i 2, Final Fantasy VII i VIII. que gran!!

  1. Reply

    Jo encara espero un bon emulador de la psp 😛

    • Joan on 29 d'octubre de 2010 at 13:17

    Reply

    A mi no em funciona em diu: ./pSX: error while loading shared libraries: libgtkglext-x11-1.0.so.0: cannot open shared object file: No such file or directory

    • Ecron on 29 d'octubre de 2010 at 15:46

    Reply

    A mi em fa el mateix problema que a en Joan, he instal·lat prèviament les llibreries i al fer el:

    sudo chmod +x pSX
    ./pSX

    em mostra el mateix error.

    Es possible que tinga que vore amb el fitxer on he extret el .tar.bz2? El tinc a la carpeta de Baixades, potser n’hi ha que posar-ho a algun altre puesto…

    Xao!!

    • Ecron on 29 d'octubre de 2010 at 17:33

    Reply

    Ja pareix que ho he arreglat. Pel que pareix, no es compatible amb arquitectures de 64 bits. Aixi que n’hi ha que baixar-se la llibreria de 32 bits, com s’explica a aquest fòrum:

    http://ubuntuforums.org/showthread.php?t=1299513

    De totes formes, com encara no tinc ninguna BIOS, no se si funciona, però al menys he pogut fer-lo córrer… 😛

    Xao!! 😉

  2. Reply

    Ecron, moltes gràcies per penjar la solució, al utilitzar un sistema de 32 bits no m’havia passat aquest error 😛

    • Ecron on 30 d'octubre de 2010 at 09:28

    Reply

    De res home, pa això estem ;).

    El que passa si ho solucionem així es que després el sistema ens dirà que tenim una llibreria trencada, i per arreglar-ho ens instal·larà la llibreria de 64 bits corresponent, pel que no ens funcionarà el pSX de nou. Així que hem de triar si volem que no aparega ningun error al sistema o si volem que mos funcione be el emulador.

    Coses de la vida.

    • Dídac on 30 d'octubre de 2010 at 20:55

    Reply

    boh, a l’hora d’executar isos, sembla que es resisteix i hi ha molts problemes amb els 64bits 🙁 O poder no tinc les ISOs adequades, ni amb el joc original em funciona 🙁

  3. Reply

    Quin problema és exactament Dídac?

    • Guillem on 1 de novembre de 2010 at 21:06

    Reply

    No me’n surto, m’he baixat la BIOS però em diu que no la troba, i que la sel·leccioni. Llavors la sel·lecciono i se’m tanca sol el programa… Miraré a veure si hi ha algun altre emulador 🙁 Gràcies per l’apunt Aitor!

  4. Reply

    Guillem, nota que no has de seleccionar la BIOS, sinò la carpeta que la conté 😛 Recordo que al principi em passava algo similar al que dius.

    • Ecron on 3 de novembre de 2010 at 00:04

    Reply

    He aconseguit una BIOS, però no se perquè no carrega el programa. S’obri i immediatament es tanca 🙁

    Pot ser la BIOS no es la adequada, o simplement no corre be a sistemes x64 :S

  5. Reply

    És justament el mateix que li passa al Guillem. Executeu-lo en la terminal i pegueu la sortida, a veure si esbrinem alguna cosa 😛

    • Ecron on 3 de novembre de 2010 at 22:07

    Reply

    Dit i fet:
    artur@Tizoncito:~/Baixades/pSX$ ./pSX
    Gtk-Message: Failed to load module "rgba": /usr/lib/gtk-2.0/modules/librgba.so: clase ELF errónea: ELFCLASS64
    [src/linux/sound.cpp, line 215]: 'snd_pcm_hw_params_set_access(pcm_handle,hwparams,SND_PCM_ACCESS_MMAP_INTERLEAVED)' returned 'Argumento inválido'
    pad=0
    Fallo de segmentación

    Lo del rgba no es problema perque em passa amb altres aplicacions… crec… supose que el error està a les línies següents… no?

  6. Reply

    Uoohooo, un “segmentation fault” és el pitjor error que és pot trobar un programador, és deu bàsicament a haver accedit a zones de memòria reservades pel S.O. i per tant aquest finalitza l’aplicació immediatament per evitar la inestabilitat del sistema, costen molt de depurar perquè no saps mai en quina part del programa està passant això. De totes formes, per la línia anterior i obviant el tema del GTK, sembla que el problema ve del pulse audio, estàs utilitzant Ubuntu?

    • molinx on 4 de novembre de 2010 at 01:14

    Reply

    Jo no puc arribar a obrir el GUI. Simplement quan executo ./pSX em surt una pantalleta que diu que no troba l’arxiu BIOS (el tinc a la carpeta bios) i me’l fa seleccionar. I llavors passa:

    [src/linux/sound.cpp, line 215]: 'snd_pcm_hw_params_set_access(pcm_handle,hwparams,SND_PCM_ACCESS_MMAP_INTERLEAVED)' returned 'Invalid argument'
    pad=0
    Segmentation fault

    si selecciono la carpeta s’acaba l’execució sense errors

  7. Reply

    Sí, recordo que s’ha de seleccionar la carpeta on es troba la BIOS i no el propi fitxer. Veig que tots teniu el mateix problema amb el pulseaudio.

    Proveu d’executar killall pulseaudio i seguidament l’emulador i em conteu.

    • Ecron on 4 de novembre de 2010 at 20:02

    Reply

    Sí, estic utilitzant l’Ubuntu 10.04, amb gnome i això, no he modificat res del sistema mes que els programes, l’aspecte, etc…
    He provat lo de ‘killall pulseaudio’ i…

    artur@Tizoncito:~/Baixades/pSX$ killall pulseaudio
    artur@Tizoncito:~/Baixades/pSX$ ./pSX
    Gtk-Message: Failed to load module "rgba": /usr/lib/gtk-2.0/modules/librgba.so: clase ELF errónea: ELFCLASS64
    [src/linux/sound.cpp, line 215]: 'snd_pcm_hw_params_set_access(pcm_handle,hwparams,SND_PCM_ACCESS_MMAP_INTERLEAVED)' returned 'Argumento inválido'
    pad=0
    Fallo de segmentación

    Ja veus, pasa el mateix… Podrem arreglar-ho? 🙂

      • oriolsbd on 4 de novembre de 2010 at 21:19

      Reply

      Hola, acabo de trobar això: http://ubuntuforums.org/showthread.php?t=973021&page=3

      Segons aixo, per poder fer «killall pulseaudio», primer heu d’editar el fitxer «/home/el_vostre_usuari/.pulse/client.conf» (segurament no existirà) i afegir una línia on posi:
      [code]autospawn = no[/code]

      Suposo que després heu de reiniciar l’ordinador i, segons diuen, us hauria de funcionar. Ull, jo encara no ho he pogut provar.

      Si ho podeu provar abans que jo, ja direu. 🙂

  8. Reply

    Si busqueu l’error a Google veureu que molts usuaris estan tenint el mateix problema i no hi troben solució, molts recomanen desinstal·lar pulseaudio però això et deixa programes com Totem sense so, així que jo no ho faria.

    En canvi, provaria d’utilitzar aquest script per aturar el “punyetero” pulseaudio abans d’iniciar pSX.

    #!/bin/bash
    # Un script per desactivar pulseaudio abans d’iniciar pSX
    gksu /etc/init.d/pulseaudio stop
    sleep 1
    gksu killall pulseaudio
    sleep 1
    exec /ruta/a/pSX
    sleep 1
    gksu /etc/init.d/pulseaudio start

    Per si no sabeu com fer scripts, simplement copieu les linies de més amunt en un document nou sense extensió i guardeu-lo amb el nom que vulgueu, després simplement executeu-lo des de una terminal amb:
    bash nomdelfitxer

    Noteu que a la línia on posa exec heu de substituir /ruta/a/pSX per la ruta a l’executable de pSX 😛

    Ja em direu si funciona 🙂

  9. Reply

    Podeu provar el que ha posat l’oriolbsd, però ja us dic, que jo ho vaig fer i em vaig quedar sense so a l’Ubuntu 😛

    De totes formes s’agraeix l’interés.

      • oriolsbd on 5 de novembre de 2010 at 07:12

      Reply

      Doncs, millor que no ho proveu. XP
      Suposo que traient aquesta línia vas recuperar el so, oi?

  10. Reply

    Sí, simplement vaig canviar el “no” a “yes”

    • Ecron on 5 de novembre de 2010 at 08:54

    Reply

    He provat el teu script i fa el mateix…

    Pareix que la cosa no té solució 🙁 Jo que volia jugar als jocs de la meua PS1 al portàtil…

    • molinx on 5 de novembre de 2010 at 18:26

    Reply

    He provat el que diu l’oriol:
    – he creat el arxiu client.conf
    – he sortit de la sessió
    – he fet un: sudo killall pulseaudio
    – he executat el pSX i tot funciona correctament 🙂 (i el so del ubuntu també em va)

    • Ecron on 5 de novembre de 2010 at 20:21

    Reply

    Biennnnnn… He fet el que ha dit Oriol i molinx i… encara no va :S

    Però ara mostra un altre prompt en la terminal:

    artur@Tizoncito:~/Baixades/pSX$ ./pSX
    Gtk-Message: Failed to load module "rgba": /usr/lib/gtk-2.0/modules/librgba.so: clase ELF errónea: ELFCLASS64
    pad=0
    Fallo de segmentación

    Donnncsss…. ara què? xD

  11. Reply

    Ufff, ara ja no dona cap missatge d’error, segurament estarà relacionat amb la llibreria aquesta de gtk que et dona l’error. Podries copiar la sortida de la ordre “ldd ./pSX”?

    • Ecron on 6 de novembre de 2010 at 14:43

    Reply

    Aci ho tens Aitor:

    artur@Tizoncito:~/Baixades/pSX$ ldd ./pSX
    linux-gate.so.1 => (0xf7756000)
    libGL.so.1 => /usr/lib32/fglrx/libGL.so.1 (0xf7681000)
    libz.so.1 => /usr/lib32/libz.so.1 (0xf766c000)
    libasound.so.2 => /usr/lib32/libasound.so.2 (0xf75a3000)
    libgtkglext-x11-1.0.so.0 => /usr/lib/libgtkglext-x11-1.0.so.0 (0xf759f000)
    libgdkglext-x11-1.0.so.0 => /usr/lib/libgdkglext-x11-1.0.so.0 (0xf7554000)
    libGLU.so.1 => /usr/lib32/libGLU.so.1 (0xf74e3000)
    libXmu.so.6 => /usr/lib32/libXmu.so.6 (0xf74cc000)
    libXt.so.6 => /usr/lib32/libXt.so.6 (0xf7478000)
    libSM.so.6 => /usr/lib32/libSM.so.6 (0xf746f000)
    libICE.so.6 => /usr/lib32/libICE.so.6 (0xf7456000)
    libpangox-1.0.so.0 => /usr/lib32/libpangox-1.0.so.0 (0xf7449000)
    libgthread-2.0.so.0 => /usr/lib32/libgthread-2.0.so.0 (0xf7443000)
    librt.so.1 => /lib32/librt.so.1 (0xf7439000)
    libglade-2.0.so.0 => /usr/lib32/libglade-2.0.so.0 (0xf7421000)
    libgtk-x11-2.0.so.0 => /usr/lib32/libgtk-x11-2.0.so.0 (0xf704c000)
    libxml2.so.2 => /usr/lib32/libxml2.so.2 (0xf6f22000)
    libgdk-x11-2.0.so.0 => /usr/lib32/libgdk-x11-2.0.so.0 (0xf6e8c000)
    libatk-1.0.so.0 => /usr/lib32/libatk-1.0.so.0 (0xf6e70000)
    libgdk_pixbuf-2.0.so.0 => /usr/lib32/libgdk_pixbuf-2.0.so.0 (0xf6e55000)
    libpangocairo-1.0.so.0 => /usr/lib32/libpangocairo-1.0.so.0 (0xf6e49000)
    libpango-1.0.so.0 => /usr/lib32/libpango-1.0.so.0 (0xf6e06000)
    libcairo.so.2 => /usr/lib32/libcairo.so.2 (0xf6d8c000)
    libgobject-2.0.so.0 => /usr/lib32/libgobject-2.0.so.0 (0xf6d4d000)
    libgmodule-2.0.so.0 => /usr/lib32/libgmodule-2.0.so.0 (0xf6d47000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf6d43000)
    libglib-2.0.so.0 => /lib32/libglib-2.0.so.0 (0xf6c79000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf6b83000)
    libm.so.6 => /lib32/libm.so.6 (0xf6b5d000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf6b3d000)
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf6b24000)
    libc.so.6 => /lib32/libc.so.6 (0xf69ca000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf69ba000)
    libatiuki.so.1 => /usr/lib32/fglrx/libatiuki.so.1 (0xf69b2000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf6895000)
    libpangoft2-1.0.so.0 => /usr/lib32/libpangoft2-1.0.so.0 (0xf686d000)
    libgio-2.0.so.0 => /usr/lib32/libgio-2.0.so.0 (0xf67cf000)
    libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf6759000)
    libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf6729000)
    libuuid.so.1 => /lib32/libuuid.so.1 (0xf6724000)
    libpcre.so.3 => /lib32/libpcre.so.3 (0xf66f2000)
    /lib/ld-linux.so.2 (0xf7757000)
    libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf66e8000)
    libXinerama.so.1 => /usr/lib32/libXinerama.so.1 (0xf66e4000)
    libXi.so.6 => /usr/lib32/libXi.so.6 (0xf66d6000)
    libXrandr.so.2 => /usr/lib32/libXrandr.so.2 (0xf66ce000)
    libXcursor.so.1 => /usr/lib32/libXcursor.so.1 (0xf66c3000)
    libXcomposite.so.1 => /usr/lib32/libXcomposite.so.1 (0xf66bf000)
    libXdamage.so.1 => /usr/lib32/libXdamage.so.1 (0xf66bb000)
    libXfixes.so.3 => /usr/lib32/libXfixes.so.3 (0xf66b5000)
    libpixman-1.so.0 => /usr/lib32/libpixman-1.so.0 (0xf665a000)
    libdirectfb-1.2.so.0 => /usr/lib32/libdirectfb-1.2.so.0 (0xf65e3000)
    libfusion-1.2.so.0 => /usr/lib32/libfusion-1.2.so.0 (0xf65d9000)
    libdirect-1.2.so.0 => /usr/lib32/libdirect-1.2.so.0 (0xf65c3000)
    libpng12.so.0 => /lib32/libpng12.so.0 (0xf659e000)
    libxcb-render-util.so.0 => /usr/lib32/libxcb-render-util.so.0 (0xf6598000)
    libxcb-render.so.0 => /usr/lib32/libxcb-render.so.0 (0xf6590000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf6576000)
    libresolv.so.2 => /lib32/libresolv.so.2 (0xf6562000)
    libselinux.so.1 => /lib32/libselinux.so.1 (0xf6546000)
    libexpat.so.1 => /lib32/libexpat.so.1 (0xf651f000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf651b000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf6515000)

    Com ho veus? Jo esque em pose a llegir açò i no entenc res (^_^’)

  12. Reply

    Doncs això és una llista de totes les llibreries que necessita el programa per funcionar correctament i on estan instal·lades cadascuna d’elles. Pel que veig no te’n fa falta cap, així que no és un problema de dependències 😛

    Ja no sé que pensar 🙁

    • molinx on 6 de novembre de 2010 at 20:16

    Reply

    Segons he vist aquí: https://jira.skype.com/browse/SCL-680, el problema potser es soluciona actualitzant el paquet “ia32-libs”

    • Ecron on 8 de novembre de 2010 at 14:15

    Reply

    M’he instal·lat el “ia32-libs_20090808ubuntu9_amd64.deb” baixat des d’aci: https://launchpad.net/ubuntu/+source/ia32-libs

    (m’he baixat el que n’hi ha per la distribució Maverick Meerkat) però encara em dona el mateix missatge a la terminal.

    Aixina que m’he fartat i he desisntal·lat el mòdul rgba. Ara el missatge que apareix es el següent:

    artur@Tizoncito:~/Baixades/pSX$ ./pSX
    pad=0
    Fallo de segmentación

    xDDD Ja no sé que pensar! Simplement diu pad=0… Que ni sé el que es… Em pareix que em quedaré sense jugar :S

    😉 Gràcies per l’ajuda!

    PD: Per favor, borreu l’atre comentari, que m’ha ixit malament :S

    • Ecron on 15 de novembre de 2010 at 22:34

    Reply

    Bo, ja ho he arreglat. Els passos que he seguit han sigut:

    1er.- He fet el que va dir Oriol (crear el arxiu client.conf a la carpeta /home/usuari/.pulse i afegir-li “autospawn = no”).

    2n.- He des-actualitzat la llibreria “ia32-libs” instal·lant la “2.7ubuntu17” (ho trobareu aci: Launchpad)

    3er.- He deshabilitat els efectes Compiz Fusion perquè em donava problemes de visualització, instal·lant el “Compiz Fusion Icon” (ho trobareu al Centre de Programari).

    I ara ja va tot de perles!! 😀 Encara que no m’agrada tindre una llibreria des-actualitzada… Però al menys puc jugar 😛

    Gràcies a tots per l’ajuda!! 😉

Deixa un comentari

Your email address will not be published.