miércoles, 21 de febrero de 2018

Sistema Retro: OrangePi y Lakka

Introducción

Vamos a preparar una consola retro utilizando una placa Orange Pi Plus 2e. Hemos elegido ese modelo ya que incorpora una memoria interna eMMC en la que instalaremos la distribución Lakka y así no necesitaremos arrancar el sistema desde una tarjeta microSD.

Materiales necesarios
Materiales necesarios

Aunque existen otras distribuciones dedicadas a la emulacion como RetroOrangePi no dan la misma sensación de robustez que Lakka.

Orange Pi Plus 2e
Orange Pi Plus 2e

En RetrOrangePi se nota demasiado que es un sistema operativo con un montón de programas llamándose unos a otros. Se ven pantallas negras lanzando líneas de scripts, en cuanto entras en alguna opción de configuración de Retropie aparecen pantallas en modo "ascii", es un jaleo en cuanto a archivos de configuración, las unidades USB no se automontan para leer las roms directamente de ellas...

RetrOrangePi no fue elegido
RetrOrangePi no fue elegido

Sin embargo con Lakka la sensación es de un sistema casi comercial. Su interfaz se asemeja al de la PS3. No hay pantallas negras, todo es bonito y muchas cosas se configuran solas.

Material necesario

  1. Placa Orange Pi Plus 2e (OPI)
  2. Transformador
  3. Cable HDMI
  4. Caja para la placa.
  5. 2 mandos de juego.
  6. Pendrive o Disco Duro donde guardar las roms.
  7. Tarjeta microSD.
  8. Distribución lakka para la Orange Pi Plus 2e.
  9. Putty
  10. Win32DiskImager
  11. WinBinFex
  12. Cutter
  13. Pinzas
  14. Destornillador
  15. Gomas
  16. Cable de red
  17. Archivo de shader
  18. Archivo overlay

Montando la caja

La caja viene desmontada en piezas de plástico protegidas con papel pegado.

Preparando la caja
Preparando la caja


Con ayuda de un cutter levantamos una esquina del papel y después tiramos de él para despegarlo.

La caja lista para ser montada
La caja lista para ser montada

Sujetamos la placa OPI con los tornillos a la pieza base. Con la ayuda de unas pizas sujetaremos las tuercas mientras atornillamos los tornillos.

Base de la caja
Base de la caja

Después montamos el resto de la caja y nos fijamos bien cómo conectar el ventilador para que funcione correctamente ya que en muchas fotos de internet (incluso de los vendedores) la posición del conector viene al revés y el ventilador puede no funcionar.

Pequeño ventilador

Los disipadores vienen ya preparados con pegatinas por debajo con lo cual no es necesario aplicar ningún tipo de pasta térmica.

Conexión del ventilador

La caja se desmonta muy fácilmente así que es recomendable sujetarla con gomas o incluso pegarla.

Caja montada

Finalmente conectamos el cable HDMI, alimentación, hdmi, los mandos, el ratón (a través de un adaptador OTG a usb) y el pendrive.


Instalando Lakka

Utilizando el programa Win32DiskImager volcamos la imagen del Lakka desde nuestro PC a la tarjeta microSD. Insertamos la tarjeta en la OPI  y encendemos el sistema.

Una vez que el programa haya arrancado y veamos la interfaz del Lakka procederemos a instalar la distribución en la memoria interna.

En lakka vamos a configuración --> configuración de red --> IP y tomamos nota de esa dirección.

Para ello desde el PC instalamos el programa putty y nos conectamos a la IP obtenida con root/root.

Ejecutamos: sh /usr/dev/install_to_emmc

Una vez que el script termine de ejecutarse sacamos la tarjeta microSD de la OPI. En lakka vamos a opciones-->reiniciar y el sistema volverá a arrancar pero esta vez desde la memoria interna.


Cambiando la resolución de salida

Lakka viene configurado con una resolución de 1080p. Es posible cambiar la resolución a 720p de la modificando el archivo script.bin de la siguiente manera:

1.- Nos conectamos a la OPI utilizando putty.

2.- Copiar a un directorio que podamos ver desde windows el fichero script.bin. Para ello tecleamos en el putty:

cd ..cp /flash/script.bin /storage/roms/script.bin
3.- Abrimos el fichero script.bin con el programa WinBinFex y nos generará un archivo .txt

4.- Editamos el archivo .txt y establecemos la línea
 screen0_output_mode = 5
5.- Abrimos el fichero .txt con el programa WinBinFex y nos generará un nuevo archivo script.bin

6.- Lo volvemos a copiar en la misma carpeta.

7.- Ejecutamos desde el putty:

mount -o remount,rw /flash
cd flash
rm script.bin
cp /storage/roms/script.bin /flash/script.bin
reboot


Utilizando roms

Desde nuestro PC abrimos un explorador de archivos y tecleamos \\lakka con lo que tendremos acceso a algunas carpetas de Lakka. Vamos a devices\roms\nombre del pendrive

Allí podemos crearnos una estructura de carpetas como roms\amstrad roms\snes... e ir añadiendo las roms.

Luego vamos al menú de lakka con el símbolo más (+) y escaneamos la carpeta de roms de nuestro pendrive. Se crearan unos archivos conocidos como listas de reproducción que lakka mostrará como nuevas entradas del menú con el icono de cada sistema.


Mostrando carátulas y posters

Para que se muestre la carátula de los juegos debemos descargar los archivos que contienen las imágenes. Dede Lakka vamos a opciones-->thumnails... y los activamos.


Mejorando el aspecto: shaders

Lakka puede utilizar shaders para emular la apariencia de un monitor CRT. No obstante sólo se podrán utilizar shaders que no hagan cálculos muy intensivos.

Descargamos el archivo de shaders desde aquí:
Lo copiamos a la carpeta retroarch/shader de la OPI
En la OPI iniciamos un juego, salimos al menú. Vamos a opciones de shaders --> seleccionar shader --> aplicar shader y volvemos al juego.

El siguiente video muestra un overlay que sólo tiene el dibujo de los altavoces en los laderales y donde las scanlines son generadas mediante shaders.


Mejorando el aspecto: overlays

Dado que los juegos retro se muestran en una relación de aspecto 4:3 y nuestros televisores tienen una relación 16:9 en los laterales aparecen unas franjas negras.

Para rellenarlas con una imagen descargamos el arvhivo de overlays. Lo copiamos en la carpeta de la op retroarch/overlay. Desde lakka vamos a configuración, OSD, seleccionamos el archivo de overlay y establecemos una transparencia de 0.85. Éste archivo incluye también líneas que imitan las "scanlines" de los monitores CRT así que es una opción de peso para no utilizar shaders.

Este video tiene un overlay con el dibujo de los altavoces (como en el ejemplo anterior) pero además incorpora las scanlines dibujadas así que no hace uso de shaders.