Como poner filtros GLSL en MAME (scanlines y pantalla curva)

Comparte:

Tenemos el MAME, tenemos la maquina arcade, tenemos todo configurado pero la imagen no se ve del todo como queremos… le falta algo ¿verdad? le falta la solera de las miticas y antiguas maquinas arcade de tubo, donde se veian unas lineas muy caracteristicas y la imagen curvada tipica de aquella epoca dorada. Eso es lo que os falta a vuestra maquina arcade y lo que yo os voy a enseñar de forma muy sencilla, a configurar con OPENGL los filtros GLSL, ya que escasea donde encontrar alguien que nos diga que hacer, para la opcion AUTO (BGFX o D3D) es sencillo encontrar ficheros mame.ini ya hechos, pero para OPENGL, no tanto.

Vamos al lio. Lo primero de todo este manual va orientado a todos aquellos que tienen problemas con los modos de video de MAME en su ordenador, aqui podeis ver un post que hice explicando un poco el tema (falta la opcion opengl). Para aplicar filtros con opengl, que es lo que interesa ya que con bgfx con el hlsl activado nos tira error el mame.exe, como es mi caso, tenemos que hacer lo siguiente y vereis que diferencia.

  • Descargamos este fichero a nuestro equipo. mame_glsl_osd.tar
  • Lo descomprimimos y lo ponemos donde tengamos el mame.exe quedando una carpeta OSD/cosasdentro
  • Una vez hecho, editamos nuestro fichero mame.ini (normalmente esta dentro de la carpeta ini, pero cada uno lo puede poner donde quiera), deberemos buscar estas opciones:
#
# OpenGL-SPECIFIC OPTIONS
#
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 1
gl_glsl_filter 1
glsl_shader_mame0 osd/shader/glsl_plain
glsl_shader_mame1 osd/CRT-geom
glsl_shader_mame2 none
glsl_shader_mame3 none
glsl_shader_mame4 none
glsl_shader_mame5 none
glsl_shader_mame6 none
glsl_shader_mame7 none
glsl_shader_mame8 none
glsl_shader_mame9 none
glsl_shader_screen0 none
glsl_shader_screen1 none
glsl_shader_screen2 none
glsl_shader_screen3 none
glsl_shader_screen4 none
glsl_shader_screen5 none
glsl_shader_screen6 none
glsl_shader_screen7 none
glsl_shader_screen8 none
glsl_shader_screen9 none

Lo que nos interesa es lo que esta marcado en negrita, ponerlo tal cual. Despues,  poner en la opcion OSD VIDEO OPTIONS – VIDEO opengl, ya que si lo ponemos en AUTO nos selecciona BGFX por defecto o D3D, en mi caso si  lo dejo en auto el mame.exe me tira un error y no ejecuta nada, tengo que forzar con opengl, ademas parece o me da la sensacion de que los juegos van mejor, mas fluidos que con bgfx sin filtros.

#
# OSD VIDEO OPTIONS
#
video opengl
numscreens 1
window 0
maximize 1
waitvsync 0
syncrefresh 0
monitorprovider auto

Os dejo unas fotos del antes, y el despues:

Eso es todo, con esta configuracion del filtro GLSL para opengl matamos 2 pajaros de un tiro, ponemos scanlines y curvatura a un monitor plano y eliminamos por completo el “tearing” causado en algunos juegos por la asincronia en la tasa de refresco, no es preciso activar triplebuffer ni vsync ni nada. Os comento que yo uso la version 0.189 de 32 bits de MAME y tengo una tarjeta grafica Nvidia GT710 de 2GB GDDR5 y el modo que mejor me funciona para poner scanlines y curvatura es este, los otros directamente da error al cargar el filtro HLSL que tambien es valido para hacer esto mismo, pero yo no puedo por mi grafica.

Dudas, preguntas, a los comentarios del post.

Ficheros originales e idea sacados de aqui: https://www.mameau.com/mame-glsl-shaders-setup/

MuR3

1984 | ASTURIAS | INFORMATICO | RETRO-GAMER | BLOGGER | YOUTUBER

14 comentarios en “Como poner filtros GLSL en MAME (scanlines y pantalla curva)

  • el 14/04/2018 a las 22:45
    Permalink

    Buen aporte, tengo una duda como tendría que hacer para que solo me aparezcan las scanlines solamente y no la curvatura como lo hiciste vos.

    Respuesta
    • el 28/04/2018 a las 19:36
      Permalink

      Juan, prueba a quitar esta linea del config

      glsl_shader_mame1 osd/CRT-geom

      creo que con sin añadir eso, te quedas solo con las scanlines

      Un saludo!

      Respuesta
    • el 07/06/2019 a las 5:47
      Permalink

      reemplaza esta parte del archivo CRT-geom.vsh por esto:

      // overscan (e.g. 1.02 for 2% overscan)
      overscan = vec2(1.0,1.0);
      // aspect ratio
      aspect = vec2(0.1, 0.1);
      // lengths are measured in units of (approximately) the width of the monitor
      // simulated distance from viewer to monitor
      d = 1.0;
      // radius of curvature
      R = 1.0;
      // tilt angle in radians
      // (behavior might be a bit wrong if both components are nonzero)
      const vec2 angle = vec2(0.0,0.0);
      // size of curved corners
      cornersize = 0.0005;
      // border smoothness parameter
      // decrease if borders are too aliased
      cornersmooth = 2000.0;

      Respuesta
  • el 28/04/2018 a las 10:48
    Permalink

    Buenos, acabo de descubrir tu página y me parece super interesante y genial!. Felicidades!

    Quería preguntarte que si los filtros del Opengl se puede poner la opcion que parpadee un poco la pantalla. Los filtro HLSL tienen esta opción, y hace que se parezca a un CRT un monton. Le puedes añadir la intensidad del parpadeo, y poniendolo muy sutil queda genial y no molesta.

    Un saludo!!

    Respuesta
  • el 25/05/2018 a las 17:45
    Permalink

    Buenas, estoy con hyperspin a tope, he cogido la base de los 333 juegos y la he modificado en un hyperspin que me he montado desde cero, (al final me he quedado con una base de 130 entre los que le he quitado y añadido yo XD) todo esto lo corro, en un pc que me he montado con un core2quat con 8gb de Ram y una grafica de 1Gb pciexpress, en teoria muy modesto y economico pero creo que suficiente, el tekken tres lo mueve de lujo, y demas juegos en 3D, te describo todo esto para ver si me puedes ayudar, he aplicado los filtros que indicas y desde el propio emulador MAME los aplica sin ningun tipo de problema funcionan de lujo, pero cuando lo lanzo desde hyperspin, no me los aplica, el archivo mame he localizado que lo tengo tanto en la carpeta ini, como en donde esta el propio emulador mame (carpeta Raiz) me tiene loco, he modificado ambos ¿puede ser por que lo estoy utilizando el rocketlauncher y e montado el emulador desde ahi? y por eso no me aplica los cambios, te agradeceria enormemente si pudieras orientarme un poco, no entiendo como funciona en un sitio y en otro no

    Respuesta
    • el 28/05/2018 a las 9:17
      Permalink

      Sobre rocket launcher no te puedo ayudar pues no lo uso, pero tiene toda la pinta de que el problema es ese, lanzarlo desde rocket launcher.

      Es posible que tenga alguna opcion o parametro para decirle que cargue un ini en concreto, supongo.

      Respuesta
  • el 02/03/2019 a las 23:07
    Permalink

    Hola, me estoy volviendo loco con la ruta que hay que darle a shader 0 y al 1, no hay manera

    Respuesta
  • el 22/02/2020 a las 12:41
    Permalink

    ¡Hola! He utilizado tu pack para mi recreativa. Muchas gracias, es genial. Sin embargo, cuando intento aplicarle el tema de los scanlines y la pantalla curva… no me funciona. Por un lado, si eligo OpenGL en configuración, noto que los juegos me van a trompicones (con d3d sí me van bien) y, por el otro, copiando las líneas de código en el ini no veo que aplique ningún efecto. Help! Muchas gracias.

    Respuesta
    • el 16/04/2020 a las 2:24
      Permalink

      que version de mame usas,yo uso la 0.193 y sin fallas

      Respuesta
  • el 25/04/2020 a las 9:54
    Permalink

    Idolooooooooooooooooooooooooo
    funciono al 100 %

    En linux copiar en la ruta /usr/share/games/mame/
    La carpeta OSD

    LUego en el mame.ini que esta en .mame en la home
    Hay que modificar la ruta de unas lineas de acuerdo al sistema de ficheros de Linux
    glsl_shader_mame0 /usr/share/games/mame/osd/shader/glsl_plain
    glsl_shader_mame1 /usr/share/games/mame/osd//CRT-geom

    🙂

    Respuesta
    • el 25/04/2020 a las 15:26
      Permalink

      Genial, gracias por la aportacion sobre sistemas Linux, un saludo.

      Respuesta
    • el 08/05/2020 a las 19:14
      Permalink

      Se agradece por esos datos, había visto otros métodos en linux pero no funcionaban, pero este que comentaste si funciono.

      Respuesta
  • el 29/05/2020 a las 8:42
    Permalink

    Hola me podrias ayudar de hace mucho busco la solucion y no la encuentro por ningun lado: que se vea el mame tal cual viene por defecto, solo quiero curvar la imagen asi como los monitores de antes ya sabes. y como dije que mantenga la imagen suavizada que viene por defecto.
    E intentando hacerlo pero, me queda pixelado.
    Ojala pudieras ayudarme ya que lo intente muchas veces pero no pude. gracias

    Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.