SETUP EMULACIÓN LINUX-KMS, RETROARCH Y 15KHZ

1, 2, 3
atreyu_ac
MegaAdicto!!!
678 mensajes
desde sep 2013
fogueman escribió:@atreyu_ac el mismo xDDD

a ver, pero todo esto para ir a 15khz como lo hago??? Lakka funciona de sobra en esa máquina con los cores que quiero, pero el problema es sacar las resoluciones nativas o las super resoluciones


Pues la cosa es que cambiar la resolución una vez arrancado el sistema no tiene mucho sentido en displays modernos, que sólo tienen una resolución física nativa y lo demás es reescalado cutremente hacia arriba y hacia abajo, así que si algún programa o API cambia la resolución física (dios no lo quera) en sistemas GNU/Linux modernos, está asumiendo un paradigma antiguo que ya no tiene sentido en la mayoría de los casos, ya que en los sistemas actuales lo que se hace es usar siempre y solamente el modo nativo del monitor, y escalar cualquier cosa de resolución inferior a esa resolución nativa usando el hardware (esto lo hace RetroArch usando OpenGL_ES sobre KMS/DRM, las SDL2 igual, etc...)

Ahora bien, como tú lo que quieres es correr los emuladores en un monitor viejuno de 15Hz, lo que deberías hacer es arrancar el sistema en el modo de vídeo viejuno que desees (suponiendo que la infraestructura KMS/DRM para tu hardware lo soporte, que hay cada mondongo ahí...), pasándole al kernel los parámetros de ese modo (y cruzando los dedos para que funcione).
https://wiki.archlinux.org/index.php/ke ... s_and_EDID

Puedes, como puedes ver, especificar el conector, resolución, bpp y un montón de mierdas más que no valen para nada, pero es así como funciona el asunto.
Para pasarle parámetros al kernel se los tienes que enchufar en el fichero de cofiguración del bootloader que uses, y la localización de ese fichero depende de la distro.
Aquí te dejo la info sobre Debian:
https://wiki.debian.org/Grub

Mi consejo es que no te calientes la cabeza y corras las cosas de RetroArch sobre KMS/DRM con max_swapchan=2, por HDMI con un shader de scanlines sencillito y fuera, pero yo qué sé, anda que no hago yo experimentos raros :D
theelf
XP x64
17.651 mensajes
desde mar 2007
en スズヤ
Editado 1 vez. Última: 19/12/2017 - 17:14:08 por theelf.
@fogueman
No poder cambiar la resolucion al vuelo es un callejon sin salida en emulacion a 15khz

Sobre el tema del input lag, que metodo piensas o usas para medirlo?
theelf escribió:@fogueman
No poder cambiar la resolucion al vuelo es un callejon sin salida en emulacion a 15khz

Sobre el tema del input lag, que metodo piensas o usas para medirlo?

Estoy de acuerdo contigo, pero si sólo vas a emular consolas con 1920x240 y 1920x224 ya tienes prácticamente todo cubierto. Y si sólo usas 1920x240 y ajustas el viewport para las consolas de 224 la imagen es prácticamente perfecta (no es perfecta por tener bandas negras arriba y abajo). Y hay muchísimos arcades que también usan esas dos resoluciones.

Lo digo porque hace poco cambié mi viejo crt de pc por otro más moderno (también crt) y al crear el modeline de 3840x448 me dijo que eso eran 29khz y no podía mostrar la imagen... :(

Así que ahora mismo para emular uso una resolución única: 3840x480+scanlines y tan feliz.
theelf
XP x64
17.651 mensajes
desde mar 2007
en スズヤ
@Ronbin

El tema es que al final por A o por B, puedes pegarte contra la pared, mismamente, juega al Sonic 2 en modo versus o el Battle Cars, el emulador necesita cambiar a 480i al vuelo. Lo mismo con varios juegos de super, que tienen partes a 480i o el rr racing q es todo entrelazado, etc

Luego q tendras rom pal, necesitas 288p a 50hz


Si seguro, que en realidad, con por ejemplo 1280x240 y ajustar el viewport tienes el 99% de juegos de consolas perfectamente cuadrados, pero es que sinceramente, si ese 1% ya me falla, ya no tengo algo bien armado, eso me pasa a mi


Eso solo consolas, en arcades hay muchisimos que usan mas de 240p, los juegos de DOS en general cambian resoluciones, amiga, etc si incluimos eso en la emulacion, ya nos fallaran muchas cosas con una resolucion fija


Luego ya es personal, yo la verdad que aun sigo necesitando emuladores independientes, porque me gusta poder usar mis CDs originales por decirte algo, entre otras cosas. Aun no puedo remplazar kega fusion, ni neogeocdz, etc



Sobre los 448, lo que tenes es que jugar con el frontporch, BackPorch, etc en mi PC q tambien esta a 31khz, tengo todas las resoluciones sin problema a 31khz

Imagen
theelf escribió:Sobre los 448, lo que tenes es que jugar con el frontporch, BackPorch, etc en mi PC q tambien esta a 31khz, tengo todas las resoluciones sin problema a 31khz

La verdad es que estos conceptos nunca los he tenido demasiado claros. Pero bueno, ya me has picado, estas navidades me pongo a tunearlo XD
theelf
XP x64
17.651 mensajes
desde mar 2007
en スズヤ
@Ronbin

Yo hasta fin de anio estoy en lationoamerica viendo la familia de mi mujer, asi q estoy leeejos de mi PC con emuladores, pero si tenes dudas, y puedo ayudarte, a partir del 2 o 3 de enero, encantado, te mando mis modelines, etc
fogueman
MegaAdicto!!!
1.252 mensajes
desde jul 2005
theelf escribió:@fogueman
No poder cambiar la resolucion al vuelo es un callejon sin salida en emulacion a 15khz

Sobre el tema del input lag, que metodo piensas o usas para medirlo?



Hola, theelf, te esperaba en el hilo, a ver si me puedes aclarar las cosas

Input lag: no tengo intención de medirlo pero quiero probar el tema del KMS más que nada porque tengo entendido (no por mi experiencia personal) que es lo que va mejor en este asunto

Lo de no poder cambiar la resolución al vuelo: te refieres a que el Retroarch no puede cambiar de resolución de un sistema a otro? o al caso de los sistemas que cambian de 480i a 240p, que cacharros como el framemeister van mal en esos casos?

Por lo que yo tengo visto hasta ahora, se puede hacer con ubuntu todo esto, no se si es verdad o no
theelf
XP x64
17.651 mensajes
desde mar 2007
en スズヤ
Editado 1 vez. Última: 20/12/2017 - 02:01:19 por theelf.
@fogueman

Sinceramente la verdad que no soy muy fan de retroarch, cada vez lo he utilizado, algo me ha tirado para atras, aun asi, he donado algun codigo, especialmente en el emu de PS1, pero tampoco es q lo use a menudo

Dicho esto, que yo sepa, retroarch no puede cambiar resoluciones dentro de un juego, al menos lo que he probado yo, solo podes asignar resoluciones por core o juego fijas

O sea, que si el juego comienza a 240p y luego salta a 480i, se te quedara todo a 240p fijos

Esto me gustaria corroborarlo por alguien que use retroarch mas a menudo, a ver si me equivoco, o ya lo han implementado


Sobre el input lag, ya algun tiempo atras, 2015 creo, medi el input lag de tres setups, una megadrive original, windows XP+kega y linux kms+retroarch, creo q probe dos cores de megadrive, no recuerdo exacto

Conecte un cable del mando de megadrive a una tecla del teclado, asi cuando presionaba "A" al mismo tiempo llegaba la orden a la MD y al teclado

Con el rom 240p test de urbina, medi a travez de la camara de foto, el input lag de uno y otro. Sinceramente, entre XP y la Megadrive original, la diferencia era marginal, hablo de bastante menos de 16ms, en el caso de linux-kms tenia al menos 48ms de delay que no pude bajar de ninguna manera, depende el core creo era algo mas incluso

No se en linux, los drivers de video, algun error de configuracion, lo que sea, o simplemente no es tan bueno... que se yo, al final decidi que XP+ddraw era lo mejor

Tu mismo, haz las pruebas, y decide que es lo que te ira mejor, estamos al 2017, seguro se ha actualizado


Para mi lo importante es usar los refrescos correctos, por ejemplo, si vas a emular NES NTSC, no uses XXx240 a 60hz, crea un modeline que sea a 60.0985hz y si emulas CPS1 que sea a 59.63hz, etc
Ronbin
VQTD
2.705 mensajes
desde jun 2003
Editado 2 veces. Última: 20/12/2017 - 09:00:48 por Ronbin.
fogueman escribió:
Lo de no poder cambiar la resolución al vuelo: te refieres a que el Retroarch no puede cambiar de resolución de un sistema a otro? o al caso de los sistemas que cambian de 480i a 240p, que cacharros como el framemeister van mal en esos casos?

Por lo que yo tengo visto hasta ahora, se puede hacer con ubuntu todo esto, no se si es verdad o no

Simplificando, en linux tienes dos métodos para dibujar gráficos:
1-Xorg: Es lo que se ha utilizado siempre y usan todas las distros para dibujar el escritorio, además de gestionar pantalla, teclado y ratón. Es una capa que añadimos al sistema y por lo tanto añadimos input lag.
Imagen
2-KMS: El kernel se encarga de dibujar directamente, sin añadir ninguna capa, por lo que el input lag es menor.

En principio KMS es la opción a seguir, pero tiene un gran fallo para los que usamos monitores CRT: no puedes crear modelines personalizados. El kernel utiliza el EDID del monitor para ver que resolución tiene que usar y utiliza esa (y sólo esa). Como los monitores viejos no tienen EDID el kernel también tiene integradas un par de resoluciones típicas, pero nada de cosas raras. Y NO se pueden añadir resoluciones nuevas. Se puede hacer una pequeña "trampa" y crearte tu propio EDID con alguna super resolución, pero como he dicho, una vez arrancado el sistema sólo utilizará esa.

Resumiendo: si quieres crear modelines y andar cambiando resoluciones olvídate de KMS
1, 2, 3