Tutorial paso a paso: Instalar una versión mínima de ubuntu para 15khz con ati e intel

Buenas a todos
Estos días he configurado un pc con ubuntu + groovymame y he decidido documentarlo aquí ahora que lo tengo fresco. Lo hice con una gráfica ati, pero también lo he probado en intel y me ha funcionado igual de bien (bueno, no exactamente igual de bien, pero funcionar funciona).
Hoy en día tenemos distros ya montadas como groovyarcade, rgbuntu, o la última vesión de batocera, que están realmente bien. Son grabar y listo. Lo que voy a explicar aquí es más laborioso, pero tiene sus ventajas:
-Lo montamos nosotros desde 0, así que sabemos cómo tenemos configurado todo, como actualizar o añadir y quitar cosas.
-Tendremos sólo los emuladores que nos interesen.

Bueno al lío. He dividido el tuto en 3 partes:
1-Instalar una versión mínima de ubuntu
Esta es la parte más larga del tutorial, porque voy a asumir que no somos expertos en linux y no sabemos nada. Sería el equivalente a instalar Windows XP en su día y luego dejarlo a nuestro gusto.
Una de las grandezas (y debilidades) de linux es que hay una variedad enooorme de distros, cada una de su padre y de su madre. Vamos a instalar una de las más populares: Ubuntu. Sí sí... ya sé que hay alternativas más ligeras, pero no vamos a hacer una instalación normal, instalaremos un sistema mínimo y le añadiremos un escritorio ligero. Intentaremos buscar un equilibrio entre ligereza y facilidad de uso. Si he elegido Ubuntu es porque es una LTS, tiene soporte y actualizaciones hasta 2025.
Descargamos esta iso:
http://archive.ubuntu.com/ubuntu/dists/ ... t/mini.iso

Es una iso mínima, que sólo tiene el instalador (ocupa 70 megas). Lo grabamos en un pendrive (con balena etcher, por ejemplo) y arrancamos el pc con él.
Al ser una iso tan mínima, necesitamos que el pc esté conectado a internet para descargar el resto de componentes. Puede hacerse por wifi pero lo más cómodo es que nos conectemos con cable de red.

La instalación es bastante simple, casi siempre hay que elegir la opción por defecto, aquí pondré las que puedan hacernos dudar. En esta primera pantalla elegimos el idioma
Imagen

Después de elegir el teclado y conectarse a internet (todo opciones por defecto) llegamos a esta otra en la que nos pide nuestro nombre completo (NO es nuestro nombre de usuario).
Imagen

Aquí ya nos pide nuestro nombre de usuario
Imagen

Luego nos pide la contraseña
Imagen

Y como yo he puesto una contraseña mala me pregunta si estoy seguro, le digo que sí
Imagen

Seguimos elegiendo opciones por defecto hasta que llegamos al tema particiones. Como vamos a usar linux en exclusiva, elegimos la opción de "utilizar todo el disco".
Imagen

Y le decimos que estamos seguros
Imagen

Llegamos a la pantalla importante. Este es un instalador mínimo y ahora nos dice si queremos instalar alguna variante de ubuntu o un tipo de servidor concreto o algo. No marcaremos nada. Pulsamos TABULADOR y luego ENTER para continuar.
Imagen

Seguimos eligiendo las opciones por defecto y la instalación terminará. El pc se reniciará y arrancará nuestro nuevo sistema. A lo mejor os encontráis con una pantalla totalmente en negro o con esta otra.
Imagen

CALMA. La instalación está bien. Es sólo que Ubuntu es una distro orientada al escritorio, está intentando cargarlo pero no lo hemos instalado. Pulsamos CTRL+ALT+F2 y ya nos encontramos con esto
Imagen

Metemos el usuario que hemos creado antes, pulsamos enter y 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. Nos saldrá esto
Imagen

Vale, ahora empieza la acción. Escribimos este comando
sudo su


Nos volverá a pedir la contraseña. Ahora somos administrador y podemos añadir cosas al sistema.
Instalaremos un escritorio usando el comando apt. apt es un gestor de paquetes, le decimos lo que queremos instalar y él lo descarga de internet y lo configura por nosotros. Para que nos entendamos la apple store o la play store son una copia de esto. Escribimos
apt-get install --no-install-recommends xorg xserver-xorg-video-radeon sddm pulseaudio xfce4 mousepad network-manager-gnome tango-icon-theme dbus-x11 policykit-1-gnome


Analicemos el comando:
apt-get install --no-recommends: Con esto le decimos a apt que vamos a instalar programas, pero que sólo queremos esos progamas, que no añada ningún extra que él considere necesario
xorg: es el servidor gráfico, se encargará de dibujar el escritorio
xserver-xorg-video-radeon: el driver para nuestra tarjeta de vídeo ati
sddm: una pantalla de inicio de sesión gráfica, para que metamos nombre de usuario y contraseña
pulseaudio: el servidor de sonido, para que podamos oír los juegos
xfce4: el escritorio en sí
mousepad: un editor de textos ligero, parecido al notepad de windows
network-manager-gnome: un gestor de redes, para que podamos conectarnos al wifi, por ejemplo
tango-icon-theme: unos cuantos iconos. Porque la instalación mínima trae muy pocos XD
dbus-x11 y policykit-1-gnome: estos 2 son importantes. Nos permitirán hacer cosas de administrador con un usuario normal

Después de la instalación reiniciamos con
reboot


Y tras reiniciar nos encontraremos con esto
Imagen

Metemos nuestra contraseña y ya estamos en el escritorio
Imagen

Si queremos podemos ir a Aplicaciones->Configuración->Apariencia y ahí cambiamos los iconos a "Tango". No es necesario, pero a mí me gustan XD. Luego vamos a Aplicaciones->Ejecutar programa... y ponemos "pkexec thunar"
Imagen

Con esto abriremos el gestor de archivos con permisos de administrador. Podremos modificar lo que queramos. Vamos a la carpeta "/etc" (arriba tenemos la opción de escribirlo) y ahí creamos una nueva carpeta llamada "sddm.conf.d". Entramos dentro y creamos un documento de texto (botón derecho del ratón) llamado "autologin.conf". Lo llenamos con el siguiente contenido
[Autologin]
User=tuusuario (en mi caso Ronbin)
Session=xfce.desktop

Imagen

Guardamos y apagamos. La próxima vez que encendamos el pc iniciará sin que metamos la contraseña.

Por último instalaremos unos cuantos programas que nos harán la vida más útil. Abrimos el terminal (botón derecho en el escritorio y "abrir terminal"). Luego escribimos este comando (se puede copiar y pegar), nos pedirá nuestra contraseña.
sudo apt-get install firefox xfce4-goodies file-roller pavucontrol avahi-daemon ssh sshfs nfs-common cifs-utils gvfs-backends gvfs-fuse


Con sudo estamos diciendo que queremos ejecutar el comando como administrador
Con apt-get install decimos que queremos instalar unos programas
firefox: ya sabéis lo que es no?
xfce4-goodies: son unos extras para nuestro escritorio (gestión de energía, vistas previas, capturas de pantalla...)
file-roller: es un programa para comprimir y descomprimir archivos
pavucontrol: es un programa para configurar los dispositivos de sonido
El resto de programas nos servirán para poder cargar ficheros compartidos en red desde otros sistemas.

Después de este paso ya tenemos un linux mínimo con un escritorio ligero. Podemos pasar al paso 2. En realidad el paso 2 puede hacerse con cualquier instalación de ubuntu o debian, no hace falta que sigamos el paso 1 al 100%.

En este vídeo podemos ver la instalación del sistema desde el pendrive
https://www.dropbox.com/s/uwko4k3vrsw8n ... n.mp4?dl=0
Y en este otro la instalación y configuración del escritorio mínimo
https://www.dropbox.com/s/f7qaj0iqeyihg ... o.mp4?dl=0



2-Añadir el soporte para 15khz
Sorprendentemente es la parte más fácil, gracias a los nuevos parches de D0023R.
Ya tenemos linux instalado con un escritorio mínimo. Ahora añadiremos un kernel parcheado para poder funcionar a 15khz. Tenemos 2 opciones: compilarlo nosotros mismos o instalar el kernel ya compilado por mí.
Opción 1: Compilarlo nosotros mismos
Abrimos el terminal (botón derecho en el escritorio y "abrir terminal"). Escribimos "sudo su" para ser administrador. Luego vamos escribiendo comandos (se puede copiar y pegar)
apt-get install build-essential fakeroot atool
apt build-dep linux
wget https://kernel.org/pub/linux/kernel/v5.x/linux-5.9.15.tar.xz
wget https://raw.githubusercontent.com/D0023R/linux_kernel_15khz/master/linux-5.9/01_linux_15khz.diff
wget https://raw.githubusercontent.com/D0023R/linux_kernel_15khz/master/linux-5.9/02_linux_15khz_interlaced_mode_fix.dif


Los 2 primeros comandos son para instalar los programas necesarios para compilar. Los 3 siguientes usamos un gestor de descargas (wget) para descargar el kernel y los parches de 15khz.
Ahora descomprimimos el kernel y entramos en la carpeta en la que se ha extraído.
aunpack linux-5.9.15.tar.xz
cd linux-5.9.15


Ya dentro de la carpeta ejecutamos estos comandos
patch -p1 < ../01_linux_15khz.diff
patch -p1 < ../02_linux_15khz_interlaced_mode_fix.diff
cp /boot/config-5.9.0-4-amd64 .config
make clean
make deb-pkg


Los 2 primeros comandos (patch) son para aplicar los parches. El tercero (cp) es para copiar la configuración que queremos darle al kernel. Y los 2 últimos (make) son para compilar. Nos creará 3 ficheros que tendremos que instalar uno a uno. Como tarda mucho, he subido a github un kernel ya parcheado y compilado por mí.

Opción 2: Descargar el kernel ya parcheado y compilado por mí
Abrimos el terminal (botón derecho en el escritorio y "abrir terminal"). Escribimos "sudo su" para ser administrador. Luego vamos escribiendo comandos (se puede copiar y pegar).
wget "https://www.dropbox.com/s/gtetevygk90toh3/linux-image-5.10.7_5.10.7-1_amd64.deb?dl=1"
wget "https://www.dropbox.com/s/x9nakcjvb6ktq2z/linux-headers-5.10.7_5.10.7-1_amd64.deb?dl=1"
wget "https://www.dropbox.com/s/jg03xji1q72ocr9/linux-libc-dev_5.10.7-1_amd64.deb?dl=1"
dpkg -i linux-image-5.10.7_5.10.7-1_amd64.deb
dpkg -i linux-headers-5.10.7_5.10.7-1_amd64.deb
dpkg -i linux-libc-dev_5.10.7-1_amd64.deb


Los 3 primeros comandos usamos un gestor de descargas (wget) para descargar el kernel compilado por mí. En los 3 siguientes usamos un gestor de paquetes (dpkg) para instalarlos.

Después de eso tenemos que decirle al sistema que queremos usar gráficos a 15khz. Para eso modificaremos la configuración de grub (gestor de arranque). Vamos a Aplicaciones->Ejecutar programa... y ponemos "pkexec thunar"
Se abrirá el gestor de ficheros, en modo administrador. Vamos a la carpeta "/etc/default/" y abrimos el fichero llamado "grub" con el editor de textos.
Buscamos la línea "GRUB_CMDLINE_LINUX_DEFAULT" y la dejamos así
GRUB_CMDLINE_LINUX_DEFAULT="vga=0x311 video=VGA-1:640x480iec"'


Si nuestra gráfica no es una ati tendremos que dejarlo así
GRUB_CMDLINE_LINUX_DEFAULT="vga=0x311 video=VGA-1:1280x480iec"'


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 volvemos al terminal y escribimos esto para actualizar la configuración
sudo update-grub


Y apagamos el equipo. Desconectamos el monitor, enchufamos nuestra tele de tubo cruzamos los dedos y encendemos. Deberíamos ver el escritorio en nuestra tele.

Después de este paso si arrancamos el pc conectado a una tv de 15khz, el sistema y el escritorio estarán a 15khz.
Si arrancamos el pc conectado a un monitor de pc, el sistema arrancará a 15khz pero a la hora de cargar el escritorio detectará que nuestro monitor no la soporta y pasará a 31khz, así que podremos usar el pc como lo haríamos normalmente. Viene bien para cuando queramos hacer actualizaciones o copiar cosas.
Si lo enchufamos con ambas pantallas conectadas (una tele y un monitor) se verán bien los 2, pero ni groovymame ni retroarch funcionarán bien.

En este vídeo podemos ver el proceso del paso 2
https://www.dropbox.com/s/hlbqehyxl844j ... l.mp4?dl=0


3-Instalar y configurar emuladores. Sólo groovymame y retroarch
Abrimos el terminal (botón derecho en el escritorio y "abrir terminal"). Luego escribimos este comando (se puede copiar y pegar), nos pedirá nuestra contraseña.
sudo apt-get install  mame retroarch


Con esto instalaremos mame (el normal, no groovy) y retroarch. Todavía no los ejecutaremos. Escribimos el siguiente comando
pkexec thunar


Con esto abrimos el gestor de ficheros con privilegios de administrador. Vamos a la carpeta "/etc" y hacemos doble click en el fichero "retroarch.cfg". Se abrirá el editor de textos, seleccionamos todo el texto y lo borramos. En su lugar escribimos esto otro
menu_driver = "rgui"
video_fullscreen = "true"
video_smooth = "false"
menu_show_advanced_settings = "true"
##crt_switch_resolution --> 0=no 1=15khz 2=31khz
crt_switch_resolution = "1"
##crt_switch_resolution_super --> 0=native 1=dynamic
crt_switch_resolution_super = "0"
rgui_browser_directory = "~"


Si nuestra tarjeta gráfica es intel el fichero lo dejaremos así (sólo hay un cambio, en la penúltima línea, para usar super resoluciones)
menu_driver = "rgui"
video_fullscreen = "true"
video_smooth = "false"
menu_show_advanced_settings = "true"
##crt_switch_resolution --> 0=no 1=15khz 2=31khz
crt_switch_resolution = "1"
##crt_switch_resolution_super --> 0=native 1=dynamic
crt_switch_resolution_super = "2560"
rgui_browser_directory = "~"


Guardamos y cerramos, pero dejamos el gestor de ficheros abierto. Vamos a la carpeta "/usr/local/bin" y creamos un fichero nuevo llamado retroarch_intel. Ponemos esto:
#!/bin/sh
OUT=`xrandr | grep " connected" | awk 'FNR == 1 {print $1}'`
retroarch "${@}"
xrandr --output $OUT --mode 1280x480i


Lo que hemos creado es un script con el que después de ejecutar retroarch la resolución de escritorio vuelve a ser 1280x480i. La primera línea (la que empieza con OUT) detecta si nuestra gráfica está conectada por VGA o DVI. Es muy útil para intel, porque retroarch hace mal el cambio de resolución al volver al escritorio (con ati no pasa, así que no es necesario crear este fichero). Para ejecutarlo, en un terminal pondríamos el comando "retroarch_intel".

Ya tenemos retroarch configurado. Ahora vamos a por groovymame. Desde el navegador vamos a su página de github y descargamos la versión para linux
https://github.com/antonioginer/GroovyMAME/releases

Luego desde el gestor de ficheros (que hemos abierto antes con privilegios de administrador), vamos a la carpeta descargas. Hacemos click con el botón derecho en el fichero que acabamos de descargar y elegimos "extraer". Nos aparecerá un fichero nuevo llamado "groovymame". Lo movemos a la carpeta "/usr/local/bin".

Cerramos todo. Abrimos un terminal y ejecutamos el comando
groovymame -createconfig


Se creará un fichero llamado mame.ini con la configuración de groovymame. Si tenemos una ati podemos dejarlo tal como está. Si tenemos una intel tenemos que abrirlo y modificar dos líneas para dejarlas así
dotclock_min 25.0
aspect 1:1


Con esto le decimos que no podemos usar resoluciones nativas, que el dotclock mínimo debe de ser 25Mhz. Como usará super resoluciones le decimos que respete el aspecto 1:1 de los píxeles, así no tendremos imagenes deformadas.

También podríamos ahorrarnos el fichero de configuración, pero al ejecutar groovymame tenemos que añadir las opciones a mano así
groovymame -dotclock_min 25.0 -aspect 1:1


En este vídeo podemos ver el paso 3
https://www.dropbox.com/s/r2ozlxplvqc30 ... s.mp4?dl=0


Listo. Tenemos un sistema que arranca a 15khz y con retroarch y groovymame ya configurados. A partir de aquí podéis añadir cores a retroarch, roms, algún frontend... lo que queráis.

4-Hagámoslo todo automáticamente con Ansible!
También he montado un repositorio en github que tiene una wiki explicando lo mismo (en inglés). En el repositorio he puesto un rol de ansible, que es un programa al que le dices: "quiero dejar mi sistema con estos progamas y configuraciones" y él lo hace por tí. Hace lo mismo que he explicado aquí de manera automatizada.

En este vídeo podemos ver como podemos automatizar todo con ansible. Se puede hacer a partir de la instalación mínima (el primer vídeo de todos)
https://www.dropbox.com/s/ubf3rztyvaz2e ... e.mp4?dl=0
Menudo tutorial te has marcado. Muchas gracias tío.
@yusay garacias a tí por comentar. Al final esto no es más que un recopilatorio de la info que hay por aquí y por allí... Pero bueno, a alguien le vendrá bien (a mi mismo, que tengo una memoria horrible XD)
Hola Ronbin! - Muchas gracias por el tutorial, ahora una curiosidad, no es valido el uso para NVIDIA ?

Y por ultimo cuando decimos "DVI" - Equivale a decir HDMI? - Porque si no mal recuerdo mi placa tiene VGA, DVI y HDMI, pero se detecta como VGA y luego DVI 1 y 2.
Si no mal recuerdo en el caso de los drivers Calamity se podia usar uno de esos adaptadores HDMI a VGA pasivos chinos.

Nuevamente gracias por tu tiempo y buena redaccion.

Saludos!!!
@GecKoTDF en teoría podría funcionar también para NVIDIA, usando la configuración que he puesto para intel, pero no tengo ninguna gráfica para probar. Si queremos usar HDMI en la configuración de grub tendríamos que poner "HDMI-A-1", pero al ser una salida de vídeo digital no creo que funcione...

Si tu placa tiene VGA y DVI mejor prueba esas dos antes que el HDMI.
@Ronbin Perfecto tengo ahi una notebook con Nvidia y tiene VGA - Voy a probar.
Teoricamente los adaptadores pasivos de HDMI a VGA pueden hacer el trabajo porque ignoran que entra y que sale solo hacen la conversion asi es lo que se usa para los drivers de Calamity en Windows cuando quieres usar el HDMI y va bien.
Pero ahora pruebo con la notebook y cuento que tal me va.
@Ronbin me quito el sombrero.
Una duda, ese linux mini, cabria en una cf de 2gbs?
@GecKoTDF me cito a mí mismo
Si lo enchufamos con ambas pantallas conectadas (una tele y un monitor) se verán bien los 2, pero ni groovymame ni retroarch funcionarán bien.

Puede que el sistema arranque y se vea bien en la pantalla del portátil y en la tele, pero retroarch y groovymame no funcionarán bien... Habría que configurarlos para que sólo usen una de las 2 pantallas, cosa que nunca he hecho.

@Tomax_Payne acabo de mirarlo: la instalación total, después de añadir retroatch y mame, ocupa 4 gigas
@Ronbin Entiendo, bueno en mi caso no tengo intenciones de tener ambas salidas a la vez.
Sino una o la otra - El tema es que tengo una placa Nvidia que tiene solo HDMI y queria trastear, tambien tengo una Intel con solo HDMI y con VGA, son de unas notebook con buen procesador.

Pero ahora mas tarde me hago un rato y pruebo total perdido por perdido aviso que tal me fue.

Estoy seguro porque esto fue confirmado por algunos retro gamers, que las Intel y las Nvidia (principalmente) no reaccionan muy bien a ciertas resoluciones y frecuencias muy especificas que tira GroovyMAME, cosa que con AMD no es tan sensible - Pero que si se desempeñaban bien en general con el CRTSwitch de RetroArch, bueno no usare Groovy pero si las super resoluciones con MAME de Libretro.
No estaria mal, de funcionar antes que tener esas notebooks ahi tiradas que ya para uso diario mucho no sirven, pero para emular van bien.

Gracias nuevamente por el aporte!
Este sistema tiene una pinta extraordinaria, y si además funciona con Nvidia sería la leche, tengo que probarlo.

Se me ocurre que quizá se le pueda instalar RetroPie en lugar de RetroArch y Emulationstation por separado.
https://retropie.org.uk/docs/Debian

Me pregunto también si se podría instalar en un disco secundario aparte del primario con Windows y cambiar entre uno y otro con un GRUB, pero claro, entonces la tarjeta gráfica tendría dos salidas conectadas y quizá el sistema se confunda, para ello habría que deshabilitar en el sistema Retrobuntu la salida de vídeo que usamos cuando arrancamos el disco con Windows.

Muchas gracias por este fantástico tutorial y otro sistema más para la familia de PC!
Muchas gracias y enhorabuena por el tutorial, te ha quedado estupendo para aprovechar thinclients de muy poco disco duro.
Muy buenas!

Antes que nada, muchas gracias por el tutorial, tiene una pinta fantástica!

Quisiera preguntar una cosa, para armar un ordenador exclusivo para esto, que emule bien hasta PSX y Saturn, cuánto dinero tendría que invertir??


Quisiera armar algo lo más barato posible desde cero, pero no sé exactamente qué componentes necesito.


Muchas gracias!


Saludos!
@Telémaco busca en ebay un sff que tenga un i3 o i5 a 3 GHz o más. Suelen rondar los 100€. Y una ati 6450 pasiva, que suelen rondar los 20€.

@extremorpg que quede claro que esto no es un sistema propio que yo haya creado. Es un tutorial para configurar una instalación normal de debian/ubuntu para que funcione en 15khz. Que cada uno se la configure como quiera.
@Ronbin

Perdón por mi ignorancia, pero qué es un "ssf"?
@Telémaco "small form factor"… o sea, un pc pequeño
¡Fantástico tutorial! Me tengo que hacer una para mi portátil chustero con ati. Muchas gracias por compartir esta sabiduría.

@Ronbin no me había percatado de: También he montado un repositorio en github que tiene una wiki explicando lo mismo (en inglés). En el repositorio he puesto un rol de ansible, que es un programa al que le dices: "quiero dejar mi sistema con estos progamas y configuraciones" y él lo hace por tí. Hace lo mismo que he explicado aquí de manera automatizada.

Esto sí que tengo que probarlo [360º]
Menudo trabajo más bien documentado. Me voy a poner con ello. Gracias!!
Buen trabajo mil gracias tío
[beer]
salu2!
@ronbin Mis Respetos por tu Trabajo y dedicación
Adquirí una GT 740 con salida VGA , tengo que cambiar algún nombre o parámetro en el tutorial?
o lo pruebo como si fuera intel. Abrazo y Muchas Gracias
Enhorabuena y gracias por compartir.
Ya le añade el script RetroMultiInstaller y cualquiera se puede instalar lo que quiera simplemente eligiendo de un menú.
No sé como agradecerte este tutorial. [tadoramo]
Gracias a él he podido poner mi viejo portatil con gráfica Intel a 15KHz, cosa que no creía posible.
Esta mañana he grabado unos vídeos enseñando el proceso paso a paso, para complementar el tutorial. Los he añadido al primer post

Vídeo 1: Instalar sistema mínimo
Vídeo 2: Añadir escritorio a nuestro sistema mínimo
Vídeo 3: Instalar el kernel parcheado a 15khz
Vídeo 4: Configurar los emuladores


Vídeo Extra: Hacer los pasos de los vídeos 2, 3 y 4 automáticamente con ansible

EDIT: @kaldebaram usa la misma configuración que intel, sí.
@Ronbin Muchas Gracias , ya probé con una grafica GT 740 (salida VGA) y lamentablemente no funciona , luego con salida onboard intel VGA y si funciona 100%.
seria bueno ver mas pruebas con graficas nvidia. Saludos
A petición de un compañero he creado unas imágenes "live" y las he subido a mega
https://mega.nz/folder/i2B1kayR#CIiFqVONwMruoT_mlzAFeg

Son estas:
-retrobuntu: Imágen basada en ubuntu 20.04. Arranca a 15khz y tiene groovymame y retroarch configurados para ATI (resoluciones nativas)
-retrodebian64: Imágen basada en debian testing de 64 bits. Arranca a 15khz y tiene groovymame y retroarch configurados para INTEL (super resoluciones)
-retrodebian32: Imágen basada en debian testing de 32 bits. Arranca a 15khz y tiene groovymame y retroarch configurados para INTEL (super resoluciones)

Las 3 vienen con emulationstation, que arranca al iniciar, y el juego World Rally para probar groovymame. Si salimos de emulationstation veremos el escritorio y desde ahí podemos abrir retroarch para trastear.

Al arrancar nos sale un menú para elegir VGA, DVI o HDMI para ATI (640x480) o GENERICO (1280x480). La opción por defecto es VGA genérico. Se puede cambiar la opción por defecto editando el fichero llamado syslinux.cfg. Yo sólo he probado por VGA, no tengo ni idea de si las otras funcionarán.
Genial el tutorial, enhorabuena. Está muy, muy bien explicado.

Ando "con la tontería-crt" estos días. Voy a empezar por raspberry.. pero ya ando mirando que, pronto también querré probar rgbuntu...y ahora con tu tutorial, sé que antes o después volveré a caer por aquí.

Saludos!
Ronbin escribió:A petición de un compañero he creado unas imágenes "live" y las he subido a mega
https://mega.nz/folder/i2B1kayR#CIiFqVONwMruoT_mlzAFeg

Son estas:
-retrobuntu: Imágen basada en ubuntu 20.04. Arranca a 15khz y tiene groovymame y retroarch configurados para ATI (resoluciones nativas)
-retrodebian64: Imágen basada en debian testing de 64 bits. Arranca a 15khz y tiene groovymame y retroarch configurados para INTEL (super resoluciones)
-retrodebian32: Imágen basada en debian testing de 32 bits. Arranca a 15khz y tiene groovymame y retroarch configurados para INTEL (super resoluciones)

Las 3 vienen con emulationstation, que arranca al iniciar, y el juego World Rally para probar groovymame. Si salimos de emulationstation veremos el escritorio y desde ahí podemos abrir retroarch para trastear.

Al arrancar nos sale un menú para elegir VGA, DVI o HDMI para ATI (640x480) o GENERICO (1280x480). La opción por defecto es VGA genérico. Se puede cambiar la opción por defecto editando el fichero llamado syslinux.cfg. Yo sólo he probado por VGA, no tengo ni idea de si las otras funcionarán.


Fuaaaas! un 10 pa tí compañero:
mil gracias!!!

EDITO: supongo se podrán instalar para dejarlas ya fijas ,sin live vamos...¿si?
@CHEF0 tienen un instalador, pero no está a la vista. Luego cuando llegue a casa pongo como usarlo
Ronbin escribió:@CHEF0 tienen un instalador, pero no está a la vista. Luego cuando llegue a casa pongo como usarlo

[beer]
He preparado un vídeo explicando cómo grabar la imágen en un pendrive y cómo instalar en el disco duro después de arrancar en modo live.

CUIDADO: El instalador borra todo el disco duro sin preguntar nada. No da opciones de particiones ni dual boot ni nada. Mucho cuidado al utilizarlo. Avisados estáis

https://www.dropbox.com/s/uikjd2w0wkgl7rl/usb.mp4?dl=0
@Ronbin Mil gracias por el esfuerzo, se agradece, cuando tenga un rato me pongo a ello, me molaría tener un mame horizontal y uno vertical me pondré a ello, lo dicho gracias por compartir.
Hola amigo @Ronbin , tengo todo perfectamente funcionando, es una maravilla, pero tengo 1 solo problema que paso a describir a continuación:

Resulta que cuando en emulationstation coloco "retroarch_intel" se abre retroarch, pero no carga el juego, es decir, de algún modo, emulationstation, no le está pasando el parámetro del core y rom, pero cuando cargo con simplemente "retroarch" funciona, pero obviamente al momento de salir de retroarch, queda puesta la superresolusión, por tanto emulationstation se ve mal.

¿qué puede estar sucediendo?

de todas maneras, es un gran tutorial el que hiciste.

pd: lo uso por HDMI
pd2: dejo parte del log, que puede ser interesante, mame al cargarlo con retroarch se ejecuta, snes al cargarlo con retroarch_intel, solo abre retroarch

Attempting to launch game...
Feb 27 21:49:01 lvl2:       retroarch_intel --verbose -L /home/arcade/.config/retroarch/cores/snes9x_libretro.so /home/arcade/RetroPie/roms/snes/Ultra\ Seven\ \(Japan\).zip
Feb 27 22:02:10 lvl2:    Creating window...
Feb 27 22:02:11 lvl2:    Created window successfully.
Feb 27 22:02:11 lvl2:    GL vendor:   Intel
Feb 27 22:02:11 lvl2:    GL renderer: Mesa Intel(R) HD Graphics 520 (SKL GT2)
Feb 27 22:02:11 lvl2:    GL version:  4.6 (Compatibility Profile) Mesa 20.3.4
Feb 27 22:02:11 lvl2:    Checking available OpenGL extensions...
Feb 27 22:02:11 lvl2:     ARB_texture_non_power_of_two: ok
Feb 27 22:02:11 lvl1:     requested mismatched theme type for [video.md_releasedate] - expected "datetime", got "text"
Feb 27 22:02:59 lvl2:     req sound [video.launch]
Feb 27 22:02:59 lvl2:       (missing)
Feb 27 22:03:00 lvl2:    Attempting to launch game...
Feb 27 22:03:01 lvl2:       retroarch --verbose -L /home/arcade/.config/retroarch/cores/mame_libretro.so /home/arcade/RetroPie/roms/arcade/alexkidd.zip
Feb 27 22:03:16 lvl2:    Creating window...
Feb 27 22:03:17 lvl2:    Created window successfully.
Feb 27 22:03:17 lvl2:    GL vendor:   Intel
Feb 27 22:03:17 lvl2:    GL renderer: Mesa Intel(R) HD Graphics 520 (SKL GT2)
Feb 27 22:03:17 lvl2:    GL version:  4.6 (Compatibility Profile) Mesa 20.3.4
Feb 27 22:03:17 lvl2:    Checking available OpenGL extensions...
Feb 27 22:03:17 lvl2:     ARB_texture_non_power_of_two: ok


pd3: y por obviamente, si invierto, es decir, cargo snes con retroarch y mame con retroarch_intel, snes se ejecuta perfectamente, y mame solo abre retroarch

   Attempting to launch game...
Feb 27 22:24:04 lvl2:       retroarch_intel --verbose -L /home/arcade/.config/retroarch/cores/mame_libretro.so /home/arcade/RetroPie/roms/arcade/88games.zip
Feb 27 22:24:09 lvl2:    Creating window...
Feb 27 22:24:10 lvl2:    Created window successfully.
Feb 27 22:24:10 lvl2:    GL vendor:   Intel
Feb 27 22:24:10 lvl2:    GL renderer: Mesa Intel(R) HD Graphics 520 (SKL GT2)
Feb 27 22:24:10 lvl2:    GL version:  4.6 (Compatibility Profile) Mesa 20.3.4
Feb 27 22:24:10 lvl2:    Checking available OpenGL extensions...
Feb 27 22:24:10 lvl2:     ARB_texture_non_power_of_two: ok
Feb 27 22:24:16 lvl2:     req sound [video.launch]
Feb 27 22:24:16 lvl2:       (missing)
Feb 27 22:24:17 lvl2:    Attempting to launch game...
Feb 27 22:24:18 lvl2:       retroarch --verbose -L /home/arcade/.config/retroarch/cores/snes9x_libretro.so /home/arcade/RetroPie/roms/snes/3x3\ Eyes\ -\ Juuma\ Houkan\ \(Japan\).zip
Feb 27 22:24:28 lvl2:    Creating window...
Feb 27 22:24:28 lvl2:    Created window successfully.
Feb 27 22:24:28 lvl2:    GL vendor:   Intel
Feb 27 22:24:28 lvl2:    GL renderer: Mesa Intel(R) HD Graphics 520 (SKL GT2)
Feb 27 22:24:28 lvl2:    GL version:  4.6 (Compatibility Profile) Mesa 20.3.4
Feb 27 22:24:28 lvl2:    Checking available OpenGL extensions...
Feb 27 22:24:28 lvl2:     ARB_texture_non_power_of_two: ok



pd4: si ejecuto retroarch_intel --verbose solo abre reotrarch, sin el log en la terminarl, pero si el archivo retroarch_intel lo modifico y le pongo
retroarch --verbose -L /home/arcade/.config/retroarch/cores/mame_libretro.so /home/arcade/RetroPie/roms/arcade/88games.zip

se ejecuta el log en la terminal y abre el juego.
Así que de alguna forma, retroarch_intel solo recibe parametros desde el mismo archivo retroarch_intel, y no se me ocurre que debo hacer, para que reciba los parametros desde el mismo emulationstation, solucionando esto, ya tendría todo listo, y solo me quedaría volver a jugar como un niño.
@jonathon acabo de ver que en el tutorial hay un fallo
Puse que el script retroarch_intel debía de ser así
#!/bin/sh
OUT=`xrandr | grep " connected" | awk 'FNR == 1 {print $1}'`
retroarch
xrandr --output $OUT --mode 1280x480i


Pero en realidad tiene que ser así
#!/bin/sh
OUT=`xrandr | grep " connected" | awk 'FNR == 1 {print $1}'`
retroarch $@
xrandr --output $OUT --mode 1280x480i


Fíjate que faltaba el símbolo "$@" junto a retroarch. Con eso le decimos que coja también los parámetros que escribimos después del script.
@Ronbin wow ¡funciona!

Pero me di cuenta de un detalle, funciona solo con los roms que no tienen espacios en su nombre, (es decir, en arcades sin ningun problema).
Acá un ejemplo con 1080 Snowboarding (Japan,USA) (En,Ja).zip de nintendo 64

no carga
[INFO] [Overrides]: Redirigiendo archivo de guardado a "/home/arcade/.config/retroarch/saves/1080.srm".
[INFO] [Overrides]: Redirigiendo guardado rápido a "/home/arcade/.config/retroarch/states/1080.state".
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
[INFO] Funcionalidades:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
[INFO] Built: Nov 30 2020
[INFO] Version: 1.9.0
[INFO] =================================================
[INFO] [CORE]: Loading dynamic libretro core from: "/home/arcade/.config/retroarch/cores/mupen64plus_next_libretro.so"
[INFO] [Overrides]: Core-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg.
[INFO] [Overrides]: No content-dir-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/n64.cfg.
[INFO] [Overrides]: No game-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/1080.cfg.
[INFO] Config: appending config "/home/arcade/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg"
Segmentation fault


pero si cambio el nombre a 1080Snowboarding(Japan,USA)(En,Ja).zip, funciona de maravilla

[INFO] [Overrides]: Redirigiendo archivo de guardado a "/home/arcade/.config/retroarch/saves/1080Snowboarding(Japan,USA)(En,Ja).srm".
[INFO] [Overrides]: Redirigiendo guardado rápido a "/home/arcade/.config/retroarch/states/1080Snowboarding(Japan,USA)(En,Ja).state".
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
[INFO] Funcionalidades:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
[INFO] Built: Nov 30 2020
[INFO] Version: 1.9.0
[INFO] =================================================
[INFO] [CORE]: Loading dynamic libretro core from: "/home/arcade/.config/retroarch/cores/mupen64plus_next_libretro.so"
[INFO] [Overrides]: Core-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg.
[INFO] [Overrides]: No content-dir-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/n64.cfg.
[INFO] [Overrides]: No game-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/1080Snowboarding(Japan,USA)(En,Ja).cfg.
[INFO] Config: appending config "/home/arcade/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg"
plugin_start_gfx


Y ahora una pregunta, ¿Qué theme recomiendan para una crt de 21 pulgadas?
@jonathon para retroarch en lugar de %BASENAME% hay que poner %ROM%
te pongo un ejemplo del fichero ~/.emulationstation/es_systems.cfg con retroarch configurado para pcengine
<!-- This is the EmulationStation Systems configuration file.
All systems must be contained within the <systemList> tag.-->

<systemList>
   <system>
      <name>mame</name>
      <fullname>Multiple Arcade Machine Emulator</fullname>
      <path>~/mame/roms</path>
      <extension>.zip</extension>
      <command>/usr/local/bin/groovymame %BASENAME% -rompath ~/mame/roms</command>
      <platform>mame</platform>
      <theme>mame</theme>
   </system>
   <system>
      <name>pcengine</name>
      <fullname>PC-Engine</fullname>
      <path>~/roms/pce</path>
      <extension>.zip</extension>
      <command>/usr/bin/retroarch -L ~/.config/retroarch/cores/mednafen_pce_libretro.so %ROM%</command>
      <platform>pcengine</platform>
      <theme>pcengine</theme>
   </system>
</systemList>

La diferencia entre %BASENAME% y %ROM% la explican aquí
https://emulationstation.org/gettingstarted.html
@Ronbin sí, ya había probado con eso, el detalle está en que el script retroarch_intel

con
   <command>/usr/local/bin/retroarch_intel --verbose -L /home/arcade/.config/retroarch/cores/mupen64plus_next_libretro.so %ROM%</command>


recibe los nombres así (log de es)
Feb 28 21:42:33 lvl2:       /usr/local/bin/retroarch_intel --verbose -L /home/arcade/.config/retroarch/cores/mupen64plus_next_libretro.so /home/arcade/RetroPie/roms/n64/40\ Winks\ \(Europe\)\ \(En,Es,It\)\ \(Proto\)\ \(1999-10-07\).zip


y retroarch tira error de segmento (solo lee hasta el 40)
[INFO] [Overrides]: Redirigiendo archivo de guardado a "/home/arcade/.config/retroarch/saves/40.srm".
[INFO] [Overrides]: Redirigiendo guardado rápido a "/home/arcade/.config/retroarch/states/40.state".
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
[INFO] Funcionalidades:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
[INFO] Built: Nov 30 2020
[INFO] Version: 1.9.0
[INFO] =================================================
[INFO] [CORE]: Loading dynamic libretro core from: "/home/arcade/.config/retroarch/cores/mupen64plus_next_libretro.so"
[INFO] [Overrides]: Core-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg.
[INFO] [Overrides]: No content-dir-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/n64.cfg.
[INFO] [Overrides]: No game-specific overrides found at /home/arcade/.config/retroarch/config/Mupen64Plus-Next/40.cfg.
[INFO] Config: appending config "/home/arcade/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg"
Segmentation fault


Intenté con comilla simple y doble, y es lo mismo.
Creo que hay que hacerle algo al $@ en el retroarch_intel, ¿puede que poniéndole comillas funcione? voy a probar
@jonathon prueba con
/usr/bin/retroarch "${@}"
@jonathon me alegro. Ahora a disfrutar ese crt.
@Ronbin Tengo un problema en el ansible de intel...
Imagen

Falla al bajar el kernel parcheado por lo q veo pero ni idea de como solucionarlo, espero q puedas ayudarme pq no tengo otra manera de instalarlo en está PC, la imagen quemada en un pendrive no me bootea... Desde ya muchísimas gracias, saludos!
Por lo que leo en el error no detecta la carpeta de destino (que es /root). Y también veo que lo estás ejecutando como usuario normal.

Como lo has ejecutado? Recuerda poner "sudo" delante
sudo ansible-playbook retrobuntuintel.yml
Ronbin escribió:Por lo que leo en el error no detecta la carpeta de destino (que es /root). Y también veo que lo estás ejecutando como usuario normal.

Como lo has ejecutado? Recuerda poner "sudo" delante
sudo ansible-playbook retrobuntuintel.yml


Si, he puesto sudo, luego me pide la contreseña de usuario y arranca el scrip y tira ese error, lo unico que hice distinto en la instalacion minima fue poner en region de sistema Argentina, no creo que tenga q ver eso, no?
@Crash_alone no, el idioma da igual.
Estoy pensando que a lo mejor está cogiendo mal la ruta de destino. He cambiado un poco el script. Actualiza y vuelve a ejecutarlo
git pull
sudo ansible-playbook retrobuntuintel.yml
@Ronbin Ahora perfecto, mil gracias.

Aprovecho para hacerles algunas consultas, tengo una notebook "viejita" que ya trae salida S-VIDEO y la puedo conectar por video compuesto a un CRT y de esta manera sacar los 15 khz. Solo la usaría para sistemas de 8 y 16 bits (no creo que de para mas)

Entiendo que esta modificación parchea el kernel, configura mame y retroarch para sacar los 15khz por la salida VGA, por lo tanto al cargar el vrally de prueba solo se ve una franja en la TV y se oye el audio como que el juego si esta funcionando, alguien sabe que debo modificar para que la salida del MAME y Retroarch sea la de S-VIDEO??

Pongo screen de como figura "Pantalla" en ubuntu

Imagen


Desactive la salida VGA y la pantalla del portátil para que no se genere conflicto pero da igual }:/
@Crash_alone si abres un terminal y ejecutas el comando
xrandr

Qué te sale? Copia y pega el contenido
@Ronbin
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

arcade@ubuntu:~$ xrandr
Screen 0: minimum 320 x 200, current 3488 x 768, maximum 8192 x 8192
LVDS-1 connected (normal left inverted right x axis y axis)
   1280x800      60.00 +  59.99    59.97    59.81    59.91 
   1280x720      60.00    59.99    59.86    59.74 
   1024x768      60.04    60.00 
   960x720       60.00 
   928x696       60.05 
   896x672       60.01 
   1024x576      59.95    59.96    59.90    59.82 
   960x600       59.93    60.00 
   960x540       59.96    59.99    59.63    59.82 
   800x600       60.00    60.32    56.25 
   840x525       60.01    59.88 
   864x486       59.92    59.57 
   800x512       60.17 
   700x525       59.98 
   800x450       59.95    59.82 
   640x512       60.02 
   720x450       59.89 
   700x450       59.96    59.88 
   640x480       60.00    59.94 
   720x405       59.51    58.99 
   684x384       59.88    59.85 
   680x384       59.80    59.96 
   640x400       59.88    59.98 
   576x432       60.06 
   640x360       59.86    59.83    59.84    59.32 
   512x384       60.00 
   512x288       60.00    59.92 
   480x270       59.63    59.82 
   400x300       60.32    56.34 
   432x243       59.92    59.57 
   320x240       60.05 
   360x202       59.51    59.13 
   320x180       59.84    59.32 
VGA-1 connected primary 1360x768+0+0 (normal left inverted right x axis y axis) 406mm x 229mm
   1360x768      60.02*+
   1280x768      59.87 
   1024x768      75.03    60.00 
   1280x480i     60.00 
   832x624       74.55 
   800x600       75.00    60.32 
   640x480       75.00    59.94 
   720x400       70.08 
SVIDEO-1 connected 848x480+2640+0 (normal left inverted right x axis y axis) 0mm x 0mm
   848x480       59.94*+
   640x480       59.94 +
   1024x768      59.94 
   800x600       59.94 
arcade@ubuntu:~$


Tengo desactivada la pantalla del portátil porque esta partida, de ahí la idea de reutilizarla para este fin. En este momento tengo la salida VGA a un monitor vga comun y la salida S-VIDEO al TV CRT.
@Crash_alone
Prueba a ejecutar esto
xrandr --output LVDS-1 --off
xrandr --output VGA-1 --off
xrandr --output SVIDEO-1 --mode 1280x480i


Y luego intenta arrancar groovymame
@Ronbin Los primeros 2 comandos perfecto, luego me decía que la resolución 1280x480i no existía, probé con 640x480i y tampoco, luego por probar puse 640x480 (sin el i) y funciono, pero luego al poner el juego sigue haciendo lo mismo, se oye que esta corriendo y se ve del lado izquierdo de la pantalla solo una franja pequeña del juego, es como si faltara desplazar la imagen hacia a la derecha
@Crash_alone pues una tv de tubo no debería aceptar 640x480 que es una resolución progresiva...

Puedes ejecutar este otro comando y decirme el resultado?
for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done
@Ronbin
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

arcade@ubuntu:~$ for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done
LVDS-1: connected
SVIDEO-1: connected
VGA-1: connected
arcade@ubuntu:~$
67 respuestas
1, 2