19 nov 2008

Tutorial: Utilizando el emulador ePSXe 1.7.0 en Linux


Ha pasado mucho tiempo desde que la Play 1 arrasara alla por donde fuere. No en vano, con 102,5 millones, es la consola mas vendida de la historia, por detras de la PS2.
Todos los que nos sumergimos en algun juego con ella sabemos a las cotas de genialidad, sencillez y entretenimiento que se llegaron con sus 32 bits. Especialmente con juegos como Gran Turismo, Metal Gear Solid, APE Scape, Final Fantasy VIII y otros muchos, entre los más de 1.000 que salieron para esta plataforma de entretenimiento.
Hay juegos que nunca quedarán en el olvido, y cuya jugabilidad permanece intacta a pesar de las limitaciones técnicas de la Playstation, una consola revolucionaria y muy fácil de programar.

En este vídeo de Youtube de teh2Dgamer, capturado de una PS2 con suavizado de texturas activado, podemos ver 100 de entre los mejores.



Si queremos recordar viejos tiempos y jugar a aquellos grandes juegos que no tuvimos tiempo de jugar o que no llegamos a conseguir, y queremos hacerlo con nuestro linux, tenemos dos opciones, o utilizar pSX emulator, el más fidedigno con la Play original, o utilizar ePSXe, que dependiendo de la resolución y efectos gráficos podemos configurarlo para que aumente la resolución (haciendo más clara la zona de juego) pero manteniendo los colores y efectos originales.

En las siguientes fotos se pueden ver las diferencias, la primera corresponde a pSX emulator, más pixelada:






(Moto Racer WT. Las fotos aparecen algo deformadas porque se han hecho directamente sobre la pantalla del eee PC)

En una entrada anterior (pinchar) ya comentamos que pSX emulator era el más sencillo de utilizar (consigues la BIOS y cargas la imagen del juego y listo), pero lleva tiempo sin actualizarse desde la versión 1.13 y puede dar problemas si tienes PulseAudio, y se cuelga de vez en cuando, y va a tirones en un eeePC 901 si no se activa el FrameSkip, por lo que hay que buscar alternativas.

Instalar ePSXe 1.7.0 en Linux
No ha salido una versión nativa para linux de la 1.7.0, y la versión nativa da bastantes problemas (aquí hay un buen tutorial para instalarla), pero gracias a Wine (ya por la versión 1.1.8) podemos utilizar la versión Windows hasta en equipos relativamente lentos como el eee PC usando OpenGL (comprueba que tienes aceleración funcionando).
Primero instalaremos wine (en Ubuntu "sudo apt-get install wine" sin comillas), y descargamos el emulador:


ePSXe 1.7.0 en Megaupload preparado para el eeePC

Una vez descargado, tendrás que buscar la BIOS, la SCPH1001.BIN (más apropiada para juegos NTSC) o la SCPH7502.BIN (para juegos PAL) y colocarla en la carpeta Bios. No la descargues si no tienes la Playstation, no es legal.

Aunque, para vuestra comodidad, ya está configurado para sacar el máximo del eee PC 901, a continuación indico la configuración establecida e indicaciones.

Capacidad gráfica del eeePC 901
Aunque lo suficientemente potente para mover los juegos 3D menos exigentes, y escritorios 3D livianos como Compiz, al chipset GMA 950 incluído en el 901 le falta procesado geométrico por hardware, por lo que algunas capacidades básicas DX7 como Transform & Lighting o los más avanzados Vertex Shaders (DX8) no están disponibles, por lo que sólo soporta OpenGL por hardware hasta la versión 1.4 y sus extensiones.
Esto quiere decir que el plugin de Pete Bernet para OpenGL 2 no funciona, sino que tenemos que utilizar la versión 1.77, apoyado en OpenGL 1.X.
La siguiente es la configuración que tengo para el vídeo (Pete OpenGL 1.77),  sonido (Eternal 1.41), y CD-Rom (CDR-Mooby2, que permite la compresión de las imágenes):



La configuración de vídeo es la más importante, pues de ella dependerá si el juego va fluído o a saltos. La que se indica irá fluída con la mayoría de los juegos, conservando la mayor parte de efectos originales.
Con los botones "Fast" y "Nice" podemos cambiarlos si disponemos de un equipo más lento o más rápido a unas configuraciones preestablecidas.

Curiosidad: Si probamos un plugin D3D comprobaremos que va 3 veces más lento que en Windows; esto es porque Wine tiene que sustituir las instrucciones DirectX con otras OpenGL, por lo que se reduce el rendimiento, y en cambio con OpenGL pasa directamente las instrucciones al entorno gráfico del equipo, perdiéndose sólamente 1/3 de la velocidad con respecto a Windows (el resto de instrucciones de la API Win32 tiene que seguir sustituyéndolas por otras de la API de Linux).


 
 


Compresión de imágenes de PSX Cd con Mooby's CDR plugin para ganar espacio en disco
(fuente: Johny65 del foroMSN)
Con este plugin, podemos comprimir las imágenes y usarlas directamente. No se comprimen tanto como con el formato .cbz del pSX emulator, pero algo es algo.

  1. Bajar el plugin desde acá y ponerlo en la carpeta "plugins" del ePSXe.
  2. En el ePSXe seleccionamos "Mooby2 cd disk image driver 2.8" como plugin de Cdrom.
  3. Para comprimir una imagen, vamos a la configuración del plugin (con Configure). Podemos elegir entre 2 formatos: .bz y .z. De estos dos el que más comprime es BZ (puede depender de la imagen). La compresión no es tan buena como con los archivos .cdz, pero algo es algo. La misma imagen de 300 MB que en .cdz ocupa 90 MB, en .bz ocupa 102 MB.
  4. Después de elegir un formato, buscamos la imagen y la seleccionamos, esperar un largo rato mientras comprime.
    Una vez terminado, van a quedar 2 archivos: un .bz y un .bz.index, o un .z y un .z.table. Los dos en cada caso son necesarios. 
  5. De esta forma comprimimos todas las imágenes que queremos. Para jugarlas, en la configuración del plugin hay que hacer click en el botón "Choose an autorun image" y buscar una imagen comprimida.
  6. Aceptamos todo, y en el ePSXe ponemos File, Run CDROM.

Utilizando un JoyPAD bajo Wine
Wine no soporta todavía joysticks USB como el mío (aunque se deja configurar luego los juegos no responden), por lo que tenemos que utilizar un programa para mapear los botones del joypad a teclas del teclado para que nos funcione.
El más sencillo de utilizar y con menos dependencias es Rejoystick, un sencillo demonio que utiliza SDL.

1. Hay que descargar la versión adecuada de esta página (pinchar) (disponible precompilado para Ubuntu .deb y otros), y una vez instalado sólo tenemos que ajustar las teclas con el comando en un terminal "rejoystick".



2. Se nos abrirá una pequeña ventana e iremos asignando una tecla del teclado a cada botón y movimiento de los ejes de los joysticks (en caso de ser un DualShock), no importa cuál sea la tecla asignada, ya que no tendremos que memorizarla.
3. Una vez hecho esto podemos echar a andar el Rejoystick con "rejoystick -d" en una ventana de comandos o terminal. Si queremos cambiar las teclas tendremos que matar primero el demonio a mano con "killall rejoystick" y proceder de nuevo con el segundo paso.
4. Para terminar asignamos los movimientos del Joypad configurando en el ePSXe con los botones correspondientes.

 
Ya sólo falta cargar una imagen o CD de los juegos que tengamos con "Load Iso", si encuentras complicado hacer una imagen de un CDRom, también puedes descargarla de internet (siempre que tengas el original).
¡¡Y a recordar viejos tiempos!!



(Secuencia generada en tiempo real por la PSX del juego Driver PAL emulado por el ePSXe en el eee PC 901 según la configuración de este tutorial). Este vídeo ha sido grabado con un N95, que en modo vídeo no tiene autofocus, por lo que se ve algo borroso. El sonido del eee estaba al 50%.

Y si no es lo suficientemente rápido, siempre podemos compilar Wine para aprovechar mejor los componentes de nuestra máquina ;-).

Referencias:
Wine: Ejecutando la API de Windows en Linux
Foro con comparativa ePSXe vs pSX
Lista compatibilidad ePSXe 1.6
EEE PC - The Worlds Hottest Laptop and Emulation Center? 
Intel: Soporte de OpenGL en chipset 945GM
¿Por qué es el eee PC tan popular?
Sobre DirectX y OpenGL
Instalando Wine y Winetools
Recordando Metal Gear Solid: Análisis en Vandal.net

El emulador y plugins se han descargado de la página oficial de ePSXe y de NGemu. Son freeware, pero si contraviniera alguna licencia distribuírlos de esta forma agradecería me lo indicasen.
Las marcas son propiedad de sus respectivos dueños.

11 comentarios:

  1. Eres un crack, gracias. Te enlazaré en mi post.

    ResponderEliminar
  2. Gracias, Spayder, nos vemos, er... visitamos.

    ResponderEliminar
  3. Excelente tutorial, y mejor aún tu blog.. Es una lástima que no tenga nada de tiempo para hacer backups de mis archivos en windows, para pasarme definitivamente a Linux.. Lo haré en vacaciones de verano con más tiempo y menos exámenes..

    Saludos!

    ResponderEliminar
  4. Gracias a ti David... la verdad es que no me gusta rescatar escritos antiguos, pero a veces es bueno por muchos motivos... :)

    Por cierto, no sabía dónde dejarte el comentario porque pensé que igual no lo veías en el blog de Baratillo Joven Creacción Poética por ser antiguo.

    ResponderEliminar
  5. De nada, Saray. Supongo que te refieres al comentario de Taciturnosis; recomiendo su lectura a todos los que gusten de enredarse en sensaciones y sentimientos.

    ResponderEliminar
  6. MaxShadow27/6/09, 5:50

    GRACIAS por el Post!!
    Excelente la solución que le encontraste para utilizar el PAD, me funciona de 10/10, ya tenía días completos buscando la solución!!
    Muy bueno el aporte!!

    ResponderEliminar
  7. Opino que la comparativa está incorrecta, ya que para ePSXe existen un montón de plugins que emulan la GPU de PSX (Los que gestionan los gráficos) Y si hay un plugin que podría verse peor comparado a la emulación de GPu de pSX, se cambia por otro que tenga mejor gestión de texturas y polígonos y mejores filtros y listo.

    ResponderEliminar
  8. que buen tutorial me gusta
    pero tengo una duda como ahgo para cambiar de disco cuando los juegos son compartidos en 2 cd tal como alone in the dark o resident evil 2 resuelvanme eso ok??

    mil gracias

    y excelente trabajo brother

    ResponderEliminar
  9. Gracias anónimo. Lo de los discos no debería haber ningún problema; en el menú del disco lo cambias cuando te pida otro y ya está.

    ResponderEliminar
  10. thank you! Ubuntu 10.04 doesn't run wine properly when executing 1.7 normally. This custom one worked like a charm though.

    Thanks!

    ResponderEliminar

Puede dejar su comentario, que tratará de ser moderado en los días siguientes. En caso de ser algo importante/urgente, por favor utilicen el formulario de arriba a la derecha para contactar.