› Foros › Retro y descatalogado › Arcade y emulación
Descargamos la iso oficial desde su página web: 64 bits o 32 bits. Lo grabamos en un pendrive (con balena etcher, por ejemplo) y arrancamos el pc con él. La instalación es bastante sencilla de seguir, ante la duda elegid la opción por defecto y listo. Sólo me voy a detener en 4 puntos:
1-Contraseña de superusuario (root). Es el administrador del sistema, el que puede instalar y desinstalar programas, además de configurar todo. Lo usaremos al principio.
2-Usuario normal. Es un usuario sin privilegios, con el que normalmente usaremos el sistema. Yo le he puesto el nombre "arcade".
3-Particionado de discos. Utilizaré todo el disco, sin encriptar ni LVM. El pc se usará en exclusiva para jugar así que es la elección lógica. Si tuvieramos windows instalado y quisieramos tener los dos sistemas instalados tendríamos que elegir otras opciones. No entraré en eso.
También lo pondré todo en la misma partición, porque es un disco pequeño. Si el disco fuera más grande sería una buena idea separar la partición home.
4-Selección de programas. Desactivamos todo menos las dos últimas.
Como no hemos instalado nigún escritorio nos encontramos con una pantalla negra como esta.
Como usuario pondremos "root" (sin comillas) y pulsamos enter. Luego metemos la contraseña. OJO, al escribir la contraseña en pantalla no saldrá nada (ni siquiera asteriscos) así que escribidla bien y dadle a enter. Ya estamos dentro.
A partir de ahora vamos a trabajar con comandos. Podemos hacerlo en el mismo pc o conectarnos por ssh desde otro equipo. Para poder hacer esto último, primero tenemos que averiguar nuestra ip. Podemos hacerlo con este comando.hostname -I
Es una i mayúscula. Seguimos con el tuto.
Ahora le daremos privilegios de administrador al usuario que hemos creado antes (en mi caso se llama "arcade") para no tener que usar más root. Instalamos sudo y añadimos a nuestro usuario al grupo de administradores.apt install sudo
adduser arcade sudo
Salimos con el comando "exit" y volvemos a entrar, pero esta vez con nuestro usuario.
Ahora configuraremos el sistema para que al arrancar no nos pida el nombre de usuario y contraseña. Para eso crearemos una carpeta y dentro un fichero llamado autologin.conf.sudo mkdir /etc/systemd/system/getty@tty1.service.d
sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.conf
Con el primer comando nos pedirá nuestra contraseña, para asegurar que tenemos permisos de administrador. Con el último comando se nos abrirá el editor de textos nano. Escribimos esto:[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin arcade %I $TERM
(si nos hemos conectado por ssh es más fácil, porque podemos copiar y pegar)
Pulsamos la combinación de teclas control+x para salir. Nos preguntará si queremos guardar y le decimos que sí. Vamos a comprobar que lo hemos hecho bien:sudo reboot
Al iniciar el pc en lugar de la pantalla de login debería salirnos el usuario directamente. Si no es así, comprobad que fichero está exactamente cómo el mío, es muy fácil dejarse algo si no hacemos copiar y pegar.
Ahora instalaremos retroarch y prepararemos el sistema para que sea lo primero que se ejecute.sudo apt install retroarch
sudo nano /etc/profile.d/99-retroarch.sh
De nuevo hemos usado nano para crear un fichero. Escribimos esto:#!/bin/sh
if [ "$(tty)" == "/dev/tty1" ] ; then
retroarch
fi
Ahora tenemos que darle dos permisos especiales a nuestro usuario. Sin ellos no puede usar aplicaciones gráficas ni el teclado dentro de KMS. Después reiniciamos para comprobar que todo está bien.sudo adduser arcade render input
sudo reboot
Primero saldremos de retroarch para volver a la consola. A continuación instalaremos los programas necesarios para trabajar.sudo apt install git devscripts atool
sudo mk-build-deps linux --install --remove
sudo mk-build-deps retroarch --install --remove
El primer comando instala git (para gestionar el código fuente de los programas que compilaremos) devscripts (para ayudarnos a instalar dependencias) y atool (para ayudarnos a descomprimir). El segundo comando crea un paquete con todas las dependencias para compilar un kernel, lo instala y lo borra. Lo hacemos así porque nos facilita la limpieza más adelante. El tercero hace lo mismo con las dependencias de retroarch.
Ahora crearemos una carpeta de trabajo y descargaremos el código fuente de cada proyecto.mkdir compile
cd compile
wget "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.63.tar.xz"
aunpack linux-6.6.63.tar.xz
git clone https://github.com/D0023R/linux_kernel_15khz
git clone https://github.com/libretro/retroarch
Ya hemos descargado y descomprimido el código fuente del kernel 6.6.63. Es el actual longterm, esto quiere decir que es viejo pero tiene soporte y recibe actualizaciones de seguridad. También hemos descargado desde github los parches para 15khz y el código fuente de retroarch.
Empezamos parcheando el kernel.cd linux-6.6.63
patch -p1 < ../linux_kernel_15khz/linux-6.6/01_linux_15khz.patch
patch -p1 < ../linux_kernel_15khz/linux-6.6/02_linux_15khz_interlaced_mode_fix.patch
patch -p1 < ../linux_kernel_15khz/linux-6.6/03_linux_15khz_dcn1_dcn2_interlaced_mode_fix.patch
patch -p1 < ../linux_kernel_15khz/linux-6.6/04_linux_15khz_dce_interlaced_mode_fix.patch
patch -p1 < ../linux_kernel_15khz/linux-6.6/05_linux_15khz_amdgpu_pll_fix.patch
patch -p1 < ../linux_kernel_15khz/linux-6.6/06_linux_switchres_kms_drm_modesetting.patch
Ahora copiamos la configuración del kernel que tenemos instalado ahora mismo y actualizamos esa configuración. Este paso es importante, ya que el nuevo kernel podría tener nuevas opciones que no aparecen en la vieja configuración. Nos ahorramos muchos quebraderos de cabeza.cp /boot/config-$(uname -r) .config
make olddefconfig
Para acabar de configurar el kernel cambiamos dos cosas con el comando sed (ed es un editor de texto y sed es una variante que nos permite usarlo desde la línea de comandos directamente).sed -i 's/CONFIG_DRM_KMS_HELPER=m/CONFIG_DRM_KMS_HELPER=y/g' .config
sed -i 's/CONFIG_LOCALVERSION=""/CONFIG_LOCALVERSION="-15khz"/g' .config
Con el primer cambio integramos KMS en el kernel y con el segundo le damos un nombre especial a nuestro kernel. No son necesarios, pero ayudan. Por último compilamos.make clean
make -j`nproc` bindeb-pkg
La compilación tarda MUCHO. Dependiendo del equipo pueden ser varias horas. Cuando acabe tendremos 3 ficheros que tenemos que instalar a mano.sudo dpkg -i ../linux-image-6.6.63-15khz_6.6.63-1_amd64.deb
sudo dpkg -i ../linux-headers-6.6.63-15khz_6.6.63-1_amd64.deb
sudo dpkg -i ../linux-libc-dev_6.6.63-1_amd64.deb
Una vez instalado el kernel, vamos con retroarch. Entramos en la carpeta, configuramos, compilamos e instalamos.cd ../retroarch
./configure
make -j`nproc`
sudo make install
Listo. Ahora borramos las dependencias y las descargas.rm -R ~/compile
sudo apt purge retroarch-build-deps linux-build-deps git devscripts
sudo apt autoremove
Esto será más rápido. Descargamos 4 paquetes y los instalamos.wget "https://www.dropbox.com/scl/fi/f92gp2sn9iz3ogahqr29y/linux-image-6.6.63-15khz_6.6.63-1_amd64.deb?rlkey=3lnd0wn8c5sqlpf95jptcq2a3&st=o02h24wd&dl=1" -O linux-image.deb
wget "https://www.dropbox.com/scl/fi/gwvwvgdu5pxepl3qi8vs2/linux-headers-6.6.63-15khz_6.6.63-1_amd64.deb?rlkey=n8blgf80y2vhu3o2o2knklyhc&st=tteb8jqy&dl=1" -O linux-headers.deb
wget "https://www.dropbox.com/scl/fi/93tqz73esy6gqsd3adlln/linux-libc-dev_6.6.63-1_amd64.deb?rlkey=xa1cygr9pfcy3ve1140tzegnl&st=8eqmbiwj&dl=1" -O linux-libc.deb
wget "https://www.dropbox.com/scl/fi/oy475jwjxw18hs3ymbmrs/retroarch_v1.19.1_amd64.deb?rlkey=ruykkuch2sqp8zh09hw3psh7o&st=zlozld2b&dl=1" -O retroarch.deb
sudo dpkg -i linux-image.deb
sudo dpkg -i linux-headers.deb
sudo dpkg -i linux-libc.deb
sudo dpkg -i retroarch.deb
Primero borramos la configuración actual de retroarch.rm -R .config/retroarch
sudo rm /etc/retroarch.cfg
Ahora crearemos una configuración nueva para retroarchsudo nano /etc/retroarch.cfg
Y dejamos el fichero asímenu_driver = "rgui"
crt_switch_resolution = "4"
#crt_switch_resolution_super = "1"
Como siempre pulsamos cotrol+x para guardar y cerrar. Si os fijáis la última línea tiene una almohadilla (#). Si nuestra gráfica es intel, lo dejamos así. Si nuestra gráfica es ati la quitamos. Así retroarch sabrá si queremos usar super resoluciones.
Y por último configuramos el kernel para que arranque a 15khz.sudo nano /etc/default/grub
Buscamos la línea "GRUB_CMDLINE_LINUX_DEFAULT" y la dejamos asíGRUB_CMDLINE_LINUX_DEFAULT="video=VGA-1:1280x480iec"'
Si nuestra gráfica es ati mejor dejarlo así.GRUB_CMDLINE_LINUX_DEFAULT="video=VGA-1:640x480iec"'
NOTA: Si nuestra gráfica en lugar de vga la conectamos por dvi, cambiamos VGA-1 por DVI-I-1. Si usáramos hdmi, tendríamos que poner "HDMI-A-1", pero no creo que funcione... Claro que todo es probar.
Guardamos y cerramos el editor de texto. Luego escribimos esto para actualizar la configuración.sudo update-grub
Sólo hay que editar un fichero.sudo nano /etc/systemd/logind.conf
Buscamos esta línea.#HandlePowerKey=poweroff
Y le quitamos la almohadilla.HandlePowerKey=poweroff
Ahora instalaremos y configuraremos samba para poder pasar las roms por red.sudo apt install samba
sudo nano /etc/samba/smb.conf
Al final del fichero añadimos esto:[arcade]
comment = Arcade
path = /home/arcade
guest ok = yes
public = yes
browseable = yes
writeable = yes
create mask = 0644
directory mask = 0755
force user = arcade
force group = arcade
Reiniciamos el serviciosudo systemctl restart samba
Network manager es un gestor de redes que puede usarse desde el terminal. Lo instalamossudo apt install network-manager
Para abrirlo usaremos el comando "nmtui".
Si estamos hartos de escribir la contraseña cada vez que usamos sudo podemos hacer un cambio en la configuración. Creamos un fichero nuevo:sudo nano /etc/sudoers.d/arcade
Y lo dejamos asíarcade ALL=(ALL) NOPASSWD: ALL
A partir de ahora no nos pedirá la contraseña al usar sudo.
Ronbin escribió:@Tomax_Payne envía turboduo y neogeocd que ya no las necesitas
Ahora en serio, estoy pensando en añadir un livecd para que la gente pueda probarlo más fácilmente. Y también añadir emulationstation, pero no se si hay mucho interés en esto, porque ya existe batocera.
Elaphe escribió:¿Qué ventajas tiene usar MAME en Linux frente a usarlo en Windows? A mí Retroarc no me interesa ni nada fuera de MAME. Mi idea es usar mi versión de MAME, mi frontend con mi layout (MaLa o Attract Mode) y configurarlo todo a mano (no me gustan los paquetes que vienen preparados con todo). Lo que pasa es que de Linux no tengo ni idea.
Elaphe escribió:¿Qué ventajas tiene usar MAME en Linux frente a usarlo en Windows? A mí Retroarc no me interesa ni nada fuera de MAME. Mi idea es usar mi versión de MAME, mi frontend con mi layout (MaLa o Attract Mode) y configurarlo todo a mano (no me gustan los paquetes que vienen preparados con todo). Lo que pasa es que de Linux no tengo ni idea.
Ronbin escribió:@jigar conozco retrofe, sí. Lo he probado y en KMS funciona bien. Lo que pasa es que lo veo más pensado para pantallas modernas... No he visto ningún theme que me convezca para CRT. Si queréis puedo añadir al tuto como compilarlo e instalarlo.
Por cierto, parece ser que el kernel que puesto (6.11) da problemas con el driver amdgpu... No se si alguien lo ha probado. Yo sólo he probado en un futro con el driver radeon y ningún problema. Con intel también sin problema.
wget "https://www.dropbox.com/scl/fi/1b8hr2w3ifdmkx3fb8pkc/linux-image-6.12.1-15khz_6.12.1-1_amd64.deb?rlkey=zmxq834dnyywj8hjz48h323tp&st=3zc4xcrs&dl=1" -O linux-image.deb
wget "https://www.dropbox.com/scl/fi/kb037knuqwr7qdx19nif3/linux-headers-6.12.1-15khz_6.12.1-1_amd64.deb?rlkey=jfjjn93psyh11lvobyxgr4fnf&st=ewwd2d9y&dl=1" -O linux-headers.deb
wget "https://www.dropbox.com/scl/fi/51m84n9llz49exsbiemjb/linux-libc-dev_6.12.1-1_amd64.deb?rlkey=rnqu4qt687ws44tymw3m80z2e&st=9i27wf21&dl=1" -O linux-libc.deb