[ English ] [ Español ]
ePSXe en Linux - HOWTO
Hecho por Psy-Q. Última modificación: 4 de Marzo del 2003 / 18:37 CET
Traducido al castellano por STenyaK el: 26 de Abril del 2003 / 17:14 CET
0. Acerca de este Documento
1. Introducción
2. Requerimientos
3. Nota sobre $EPSXE
4. Nota sobre Sistemas Multiusuario
5. Configuración Básica
6. Aceleración 3D
7. Cómo usar un Mando Real de PSX bajo Linux
8. Copias Locales de los Archivos Necesarios
9. Una Captura de Pantalla de Muestra
0. Acerca de este Documento
Éste no es un HOWTO tradicional, de los que puedes ver en el Proyecto de Documentación de Linux (Linux Documentation Project). Se trata simplemente de un archivo de texto plano HTML ("HTML 4.01 Strict" para los puntillosos), en vez de en formato DocBook SGML. Una vez dicho eso, cualquier contribución es bienvenida, aunque tampoco necesitan estar en formato DocBook SGML. Con HTML 4.0 Strict validado o texto plano ya vale. Por razones obvias, este HOWTO no va a ser enviado al LDP para que lo consideren.
1. Introducción
ePSXe para Windows es un emulador de PSX muy majo, pero la versión de Linux deja algunas cosas que desear. No me malinterpreteis, es un gran programa una vez que funciona, pero aún así no es muy "linuxero". Desde el empaquetado no estándar (¿un archivo .zip que ni siquiera crea su propio directorio al descomprimirlo? ¿Y qué pasa con los .tar.gz?), al completo olvido de los conceptos básicos de un sistema operativo multiusuario, como los permisos de archivo y los archivos de configuración tanto globales como de cada usuario; ePSXe es un poco lioso. Sin embargo, si te enfrentas a este lío y comienzas a desenredarlo un poco, te ves recompensado con un emulador de PSX buenísimo. En mi caso, ha reemplazado completamente mi PlayStation real.
Me he dado cuenta de que apenas hay alguna documentación real de ePSXe parra Linux, así que me gustaría compartir mi experiencia. Aunque esta guía no sea perfecta, espero que sirva al menos como punto de partida.
Este HowTo está dirigido a principiantes, y posiblemente a usuarios de nivel intermedio. Los usuarios expertos no deberían tener complicaciones para poner en marcha ePSXe, pero aún así puede que aprendan algún detalle nuevo. Ya sé que ePSXe se podría configurar en Linux igual que en Windows, por ejemplo usando un gestor de archivos gráfico, y usando el directorio de usuario /home/*, pero he pretendido que este HowTo sea independiente de la distribución, del gestor de ventanas, y de cualquier cosa. Por tanto, vamos a hacer las cosas en el shell, puesto que cualquier distro viene con un shell. Milagros de la nueva tecnología, ¿verdad?
2. Requerimientos
- Un PC de arquitectura x86 (Se recomiendan 800 MHz o más en caso de no tener una aceleradora 3D)
- 128 MB de RAM
- Una distribución de Linux que funcione (evidentemente)
- XFree86 4.x o superior
- Una tarjeta de sonido (si quieres sonido)
- Una tarjeta gráfica aceleradora 3D (opcional, aunque recomendada)
- Un Gamepad, o un conversor de mando PSX -> USB que funcione en Linux (opcional, aunque recomendado)
3. Nota sobre $EPSXE
Voy a usar la variable de entorno $EPSXE en muchas ocasiones a lo largo del documento. Debería contener el directorio donde instales ePSXe. Si quieres usar esta variable para seguir las instrucciones, tendrás que definirla tú mismo. El paso 5.2 te enseña como hacerlo. Además, ten en cuenta que dicha variable no existirá en las nuevas ventanas de terminal que abras. Así que, o bien trabaja siempre con la misma terminal, o bien asegúrate de que la variable ha sido definida (mediante echo $EPSXE) antes de usarla en cualquier comando. Si no sabes muy bien lo que haces, siempre puedes escribir la ruta completa al directorio de ePSXe, en vez de escribir $EPSXE.
4. Nota sobre Sistemas Multiusuario
He intentado corregir algunos de los inconvenientes de ePSXe en este tema dando a los archivos los permisos multiusuario adecuados y cerciorándome de que los mantengan. Es poco probable que se puedan ejecutar varias copias de ePSXe en un mismo ordenador, e intentarlo hace que ePSXe casque, pero, de esta forma, al menos puedes usar cualquier usuario para ejecutar el programa (no solamente el usuario principal). Se seguirán usando los mismos archivos para las memory-card, configuracion, etc., pero por lo menos funcionará, algo que ePSXe no suele hacer si lo instalas tal cual.
Sin embargo, debes tener en cuenta que los archivos de configuración y de las memory-card pueden ser modificadas por cualquiera si sigues estas instrucciones. Lo cual significa que cualquier otro usuario del mismo ordenador puede sobreescribir tus partidas guardadas. Esto es un problema del que se deberían haber ocupado los autores de ePSXe -- si no estás contento con cómo están las cosas, simplemente haz chown -R en todo el directorio $EPSXE al usuario "principal" que uses, y después hazle también chmod -R 755. Esto hará que solamente tu usuario principal pueda usar ePSXe. Por otra parte, podrías decir que si usas un sistema multiusuario, deberías estar familiarizado con el sistema de permisos de Linux, y que ya sabes lo que haces sin que tenga que decírtelo yo, así que en ese caso te lo dejo a ti.
ePSXe es de código cerrado, así que todos estos problemas se mantendrán hasta que los autores liberen el código, o bien lo cambien ellos mismos. No estoy seguro de que se vaya a dar alguno de estos dos casos, así que preparate a vivir con ello. De nuevo, no es criticar por criticar; se trata de una visión objetiva de uno de los mayores inconvenientes de ePSXe. Estoy muy contento de que haya un emulador decente de PSX para Linux, y quiero agradecer al equipo de ePSXe su trabajo y dedicación.
5. Configuración Básica
-
Bájate ePSXe para Linux desde la página de descarga:ePSXe download page.
Por alguna razón, se ha empaquetado en formato zip en lugar de usando el más común .tar.gz o .tar.bz2. No dejes que esto te confunda.
- Hazte root y crea un directorio para instalar ePSXe en él. Yo lo he creado en /usr/local/games/epsxe.
mkdir /usr/local/games/epsxe
Para simplificar un poco en el resto de las instrucciones, puedes definir una variable de entorno que contenga esa ruta:
export EPSXE='/usr/local/games/epsxe'
-
Ahora descomprimiremos el archivo .zip que te has bajado a este directorio -- Asumo que todos los archivos que descargas los metes en /tmp. Si están en otro directorio, tendrás que ajustar las rutas acorde a ello. Si no tienes el programa unzip, tendrás que instalar el paquete "zip" o "unzip" adecuado a tu distribución. Si no lo consigues, puedes bajarte el binario "unzip" para Linux desde Info-Zip.
unzip -d $EPSXE /tmp/epsxe152lin.zip
-
Ahora asigna los permisos adecuados a los directorios recién creados:
cd $EPSXE
chmod 777 cfg sstates snap memcards
touch memcards/epsxe000.mcr memcards/epsxe001.mcr .epsxerc
chmod 666 memcards/*
chmod 666 .epsxerc
Puede que te hayas dado cuenta de que también hemos creado los archivos de las memory-card y que les hemos dado los permisos correctos: de esta forma se evitan problemas más tarde al guardar partidas.
- Bájate un archivo de BIOS de una PlayStation de Sony. Pero antes, lee esto con atención: no puedes usar dicho archivo para usar juegos en un emulador de PSX a menos que poseas una consola PlayStation, PSOne, o PlayStation 2 de Sony. Tener una imagen de BIOS sin tener la consola real es una violación de los derechos de copyright; eso dicen los abogados. Tendrás que buscar el archivo por ti mismo, no puedo dejarlo disponible aquí porque no tengo manera de asegurarme que posees una PSX. Recomiendo la BIOS SCPH-1001, que puede ejecutar la mayoría de los juegos. Por lo general el nombre del archivo será SCPH1001.BIN. Sin embargo ten cuidado, porque muchos ladrones de dominios y spammers asquerosos estan usando scph1001 como palabra clave para sus sitios web infestados de spyware. En caso de que no encuentres la imagen BIOS en ningún lugar, hay formas de transferirla desde tu consola PSX al ordenador, sin embargo esto cae lejos del objetivo de este HowTo.
Puedes probar a buscar archivos con estos nombres: SCPH1001.zip, SCPH5000.zip, SCPH5500.zip, SCPH7001.zip, scph7502.zip, scph75021.zip, scph75023.zip, scph75024.zip. Cualquiera de estas BIOS debería funcionar.
- Descomprime el .zip de la BIOS al subdirectorio "bios" dentro del directorio donde tinenes instalado ePSXe.
unzip -d $EPSXE/bios/ /tmp/SCPH1001.zip
-
Bájate un plug-in GPU que funcione con ePSXe. Este plug-in será el que emule todos los gráficos de la consola. Comencemos con uno básico que debería funcionarte, el excelente P.E.Op.S. Soft GPU. Descarga la version X, no la SDL. Este plug-in GPU está basado en software, así que funcionará en tu ordenador incluso si no dispones de aceleración 3D, o si ésta no es soportada por las X. Para descomprimir el archivo al directorio de plug-ins de ePSXe:
tar xfz /tmp/gpupeopssoftx112.tar.gz -C $EPSXE/plugins/
(Puede que la versión sea diferente, cambia el nombre del archivo .tar.gz si hace falta)
Una vez hecho esto, necesitarás mover la utilidad de configuración y el archivo de configuración incluídos al subdirectorio "cfg" de ePSXe:
mv $EPSXE/plugins/cfgPeopsSoft $EPSXE/cfg/
mv $EPSXE/plugins/gpuPeopsSoftX.cfg $EPSXE/cfg/
chmod 666 $EPSXE/cfg/gpuPeopsSoftX.cfg
-
Descarga un plug-in SPU. Te recomiendo el P.E.O.p.S. OSS PSX SPU. Ahora descomprímelo al subdirectorio plugins, de esta forma:
tar xvfz /tmp/spupeopsoss106.tar.gz -C $EPSXE/plugins/
(...puede que la versión sea diferente, cambia el nombre del archivo .tar.gz si hace falta...)
De nuevo, tenemos que mover la utilidad de configuración:
mv $EPSXE/plugins/cfgPeopsOSS $EPSXE/cfg/
-
¡Ya casi hemos conseguido un emulador de PSX que funcione! Desafortunadamente, parece que hay algunos problemas con el sistema multihilo, que parece que es necesario para algunos plug-ins GPU y/o SPU. ePSXe (o los plug-ins) no son capaces de localizar la libreria necesaria correspondiente (libpthread). Así que tienes que localizar el archivo "libpthread.so.0" (tal vez "libpthread-0.9.so o algo así) en tu disco duro y copiarlo al directorio de ePSXe. Además de aplicar este apaño, necesitarás usar el del paso 10:
cp /lib/libpthread.so.0 $EPSXE/
-
Para evitar los fallos mencionados en el paso 9 (y algunos más), es necesario usar un pequeño script para ejecutar ePSXe, en vez de usar directamente el binario. Escribe el siguiente código en un archivo y cópialo a /usr/local/bin/ (o a cualquier otro directorio definido en tu $PATH). He nombrado a mi script "iniciar_epsxe.sh". No te olvides de asignar el directorio después de export EPSXE a la ruta real del programa ePSXe.
#!/bin/bash
export EPSXE='/usr/local/games/epsxe'
export LD_LIBRARY_PATH=$EPSXE
cd $EPSXE
./epsxe
chmod 666 $EPSXE/cfg/*.cfg $EPSXE/sstates/* \
$EPSXE/memcards/*.mcr $EPSXE/snap/* 2>/dev/null
Una vez creado el script, cambiale los permisos así:
chmod 777 /usr/local/bin/iniciar_epsxe.sh
-
Y por fin, ¡ejecutemos ePSXe! Ahora deberías poder teclear iniciar_epsxe.sh en el shell siendo un usuario normal, no root. En caso de que aparezca un mensaje "iniciar_epsxe.sh: command not found" ("iniciar_epsxe.sh: comando no encontrado"), tal vez tengas que llamar al script usando la ruta absoluta (por ejemplo /usr/local/bin/iniciar_epsxe.sh). Con un poco de suerte estarás ya viendo la ventana principal de ePSXe.
Si no ha funcionado, revisa las instrucciones. Si sigue sin funcionar, hay algunas cosas de tu distribución que podrían estar mal y que hacen imposible que uses ePSXe, aunque es muy poco probable que se dé el caso. Aunque hayas conseguido iniciar ePSXe, todavía quedan algunos detalles que configurar antes de puedas usarlo correctamente, así que por favor sigue leyendo.
- Ve al menú Config -> BIOS para configurar la ruta a tu BIOS. Debes especificar la ruta completa al archivo de BIOS de PSX, por ejemplo /usr/local/games/epsxe/bios/SCPH1001.BIN
- Ve al menú Config -> Video y verifica que está seleccionado "P.E.Op.S. Softx Driver". Haz click en el botón "Test" para averiguar si el plug-in funciona. Haz click en "Configure" y justo después en "OK", para crear el archivo de configuración (sino, ePSXe no funciona). Puedes usar la ventana de "Configure" para ajustar los parámetros de video, pero de momento es mejor dejarlos como están puesto que hay que verificar que lo demás también funciona -- la configuración por defecto es muy compatible con la mayoría de juegos y ordenadores. Cierra la ventana pulsando en "OK".
-
Ve al menú Config -> Sound y verifica que esté seleccionado "P.E.Op.S. OSS Audio Driver". De nuevo, haz click en "Test" para ver si funciona bien. Haz click en "Configure" y seguidamente en "OK" para crear el archivo de configuración. Cierra la ventana pulsando "OK".
-
Ve al menú config -> CDROM y asegúrate de que la ruta indicada es la correcta para la unidad de CD-ROM que quieres usar. /dev/cdrom debería servir en la mayoría de los casos, no obstante si tienes varias unidades de CD-ROM o una grabadora, dicha ruta podría ser diferente.
-
En el menu Config -> Game Pad -> Pad 1 puedes configurar los controles como quieras. Lee la sección "Cómo usar un Mando Real de PSX bajo Linux" si quieres usar un Gamepad de verdad -- aunque se necesita hardware adicional. Configúralo con el teclado de cualquier manera, es simplemente para comprobar que funciona.
-
Bueno, ¡es hora de probar un juego! Ve al menu "File" y selecciona la opcion pertinente para ejecutar el juego. Si tienes el juego en su cd original de PSX, metelo en la unidad de CD-ROM que especificaste en el paso 15, y selecciona la opción File -> Run CDROM. El juego puede tardar alrededor de un minuto en comenzar. No canceles la operación hasta que estés seguro de que el juego no funciona. Una vez que el juego está en marcha, puedes pulsar ESC para volver al menú de ePSXe, donde puedes guardar el estado del juego o cambiar de disco (si es un juego de varios discos). Para volver al juego, selecciona Run -> Continue.
-
Si todo ha ido bien, ya estás ejecutando un juego de PSX. Ahora te puedes tomar tu tiempo para configurar el emulador. Prueba las ventanas "configure" de los plug-ins GPU y SPU, por ejemplo. Si los juegos te van lentos, puedes desactivar completamente el sonido. Si todavía va lento, mira más abajo como usar aceleración 3D para conseguir gráficos más rápidos y mejores.
6. Aceleración 3D
Si tu ordenador no puede emular la PSX al 100% de velocidad, si quieres el mejor rendimiento posible, o si quieres gráficos de calidad mejorada, la aceleración 3D es la solución. Sólamente lo he probado con una tarjeta nVidia GeForce [N. del T.: su tarjeta es una geForce 4 Ti 4200; la mía una geForce 2 GTS 32mb y también funciona], pero debería funcionar con cualquier tarjeta 3D que tenga soporte para OpenGL en Linux.
- Asegúrate de que tienes el sistema configurado para usar la aceleración 3D. Es decir, comprueba que tengas los controladores para X adecuados, y las librerías de soporte para tu tarjeta gráfica. Casi siempre son proporcionados por el vendedor de la tarjeta gráfica. En muchos sistemas puedes usar este comando para averiguar si la aceleración 3D está activada:
glxinfo | grep 'direct'
Si aparece en pantalla direct rendering: Yes, entonces estás de suerte. En caso contrario, lee la documentación de la tarjeta gráfica o los manuales de XFree86 o la Santa Biblia para hacer que funcione la aceleración, porque este tema está muy lejos del objetivo del presente HowTo. También puedes probar una pequeña demo ("glxgears") para comprobar que la aceleración REALMENTE funciona. Ejecútala y mira la salida en consola para ver cuantos FPS has conseguido. En mi ordenador (1 GHz T-Bird con RAM sin marca, GeForce 4 Ti 4200) consigo unos 3000 fps. Según esto, si consigues más de 300fps se puede asegurar que tienes aceleración.
-
Descarga Pete's MesaGL Linux PSX GPU plug-in. Acuérdate de enviarle a Pete un email de agradecimiento si esto funciona. Sin él, la emulación adecuada de PSX en Linux sería casi imposible. Para variar, hay que descomprimir el plug-in y mover la utilidad de configuración (siendo root):
tar xvfz /tmp/gpupetemesagl171.tar.gz -C $EPSXE/plugins/
mv $EPSXE/plugins/*cfg* $EPSXE/cfg/
chmod 666 $EPSXE/cfg/gpuPeteMesaGL.cfg
-
Ahora ejecuta ePSXe usando el pequeño script que supongo que creaste en el paso 5.10.
-
Ve al menú Config -> Video. Selecciona el "Pete's MesaGL Driver" y pulsa en "Test". Si el plug-in funciona, entonces haz click en "Configure". Puedes cambiar la configuración ahora o bien dejarla como está hasta que compruebes que funciona bien. Cierra ambas ventanas pulsando en "OK".
-
Siendo usuario normal, ¡ejecuta de nuevo un juego!. Puedes ajustar la configuración en la ventana correspondiente del plug-in, aunque aparte de la sección "Game Fixes" (para determinados juegos) y de la resolución de pantalla, no hace falta cambiar nada para emular bien la mayoría de juegos de PSX.
7. Cómo usar un Mando Real de PSX bajo Linux
El proceso que explico a continuación sólo funcionará si tienes puertos USB o un controlador de puertos USB con soporte en Linux. Hay decenas de otras formas para hacer que el soporte de gamepads funcione, así que no abandones si esto no te ayuda.
-
Compra un conversor PSX->USB que funcione perfectamente como una unidad USB HID. El mío está manufacturado por "Boom" y vino de Lik-Sang, tu amigable exportador online de Hong Kong.
-
Descarga el AmmoQ's PadJoy plug-in para ePSXe.
-
Descomprime el plug-in del archivo .tgz que acabas de bajarte. Si quieres, puedes hacer esto en el directorio /tmp:
cd /tmp
tar xfz padJoy073.tgz
cp padJoy/bin/libpadJoy-0.7.so $EPSXE/plugins/
(...puede que la versión sea diferente, cambia el nombre del archivo .tgz o .so si hace falta...)
-
Siendo root, carga los siguientes módulos:
/sbin/modprobe hid
/sbin/modprobe joydev
Los módulos USB para tu ordenador deben estar ya cargados antes de esto. Puesto que hay diferentes controladores USB, no puedo adivinar cuáles son los apropiados para tí. Si cualquiera de estos módulos provoca un error modprobe: cannot locate module
(modprobe: no se puede localizar el módulo), entonces tal vez tengas que instalar los módulos por separado. Algunas distros los incluyen en los paquetes "usb" o "joystick"; con otras es necesario que los compiles tú mismo. Son parte de cualquier código fuente estándar del kernel 2.4. Por la red hay muchas buenas guías sobre cómo compilar el kernel que pueden serte de ayuda para conseguir los módulos que necesitas.
-
Comprueba que el gamepad está funcionando con el programa jstest. Si no lo tienes, suele formar parte del paquete de utilidades para joysticks (generalmente llamado "joystick") en la mayoría de distribuciones.
Voy a suponer que tu adaptador de gamepad está en /dev/input/js0 . Puede variar si tienes varios joysticks o pads.
jstest /dev/input/js0
Deberías ver una sola línea que indica los botones pulsados, así como los valores de las palancas analógicas. Si ves que nada cambia al pulsar un botón usando un gamepad Dual Shock o Dual Shock 2, prueba encendiendo y apagando las funciones analógicas mediante el botón "Analog" de en medio del mando. Si aún así sigue sin funcionar, me pregunto cómo has llegado hasta este punto -- ¿estás seguro de que los módulos joydev y hid están cargados? Compruébalo con /sbin/lsmod
-
Y ahora vamos a la parte interesante. Ejecuta ePSXe como siempre, y ve al menú "Config" -> "Ext. Game Pad". Selecciona "ammoQ Joydevice Pad Driver" si no está ya puesto, y entonces pulsa en "Test". Si funciona, usa "Configure" para configurarlo a tu gusto. Ten en cuenta que las palancas analógicas no funcionan con padJoy. Hay otro plug-in en desarrollo (padAnalog, también por ammoQ) que lo arregla.
8. Copias Locales de los Archivos Necesarios
Me he tomado la libertad de dejar aquí disponibles todos los archivos necesarios para seguir este HowTo, a excepción de la imagen de BIOS. No conseguí permiso oficial para hacerlo, así que si alguno de los autores se siente ofendido, le invito a que me envíe un mensaje y por supuesto eliminaré su fichero.
9. Una Captura de Pantalla de Muestra
Aquí la tienes (haz click para ampliarla):
ePSXe en Linux - HOWTO - Psy-Q (traducción por STenyaK), 2003. Todas las marcas mencionadas son propiedad de sus respectivos propietarios.