Entradas anteriores

domingo, 16 de marzo de 2014

[Guia] Higan/bsnes v0.94 (SNES Emulator) - Guia de configuración (Update: 12/09/15).

Update: 12/09/15.


Higan (anteriormente conocido como bsnes) es un emulador multi-sistema que soporta las siguientes plataformas: NES, SNES, GB, GBC y GBA, pero en esta guia nos centraremos exclusivamente en Super Nintendo.
Este emulador puede ejecutar la totalidad de juegos (oficiales) lanzados en SNES, de manera muy precisa, sin problemas conocidos, de igual forma que en una consola real. Pero lamentablemente sus requerimientos son altos considerando que es un emulador de una plataforma 2D, en la pagina oficial señala que se requiere como minimo un CPU Intel Core y cualquier GPU con soporte OpenGL v3.3+.
Aunque para los tiempos actuales esto ya no supone un problema real, contamos con tres perfiles de emulación, los cuales son: Performance, Balanced y Accuracy. En esta guia les mostraré las principales diferencias entre estos y la configuración global del emulador.

NOTA: Recuerden que algunos juegos necesitan los roms dsp (co-procesador) si no disponemos de estos no podremos ejecutarlos.





Game Library.

Higan intregra un gestor de roms llamado Game Library (Libreria de Juegos), el cuál nos obliga a importar un juego a nuestra libreria para poder ejecutarlo. Basicamente cada juego se mantiene dentro de una carpeta con el mismo nombre (simulando un cartucho), la cuál contiene; saves (avances), cheats (trucos), screenshots, dsp (co-procesador, si es que el rom lo requiere) y los save states (estados guardados),
En un principio puede resultar molesto, pero luego apreciamos las ventajas de contar con un sistema asi, ya que simplifica muchos las cosas cuando queremos hacer un respaldo o al actualizar la versión de el emulador.

La importación de roms es semi-automatica y se realiza de la sgte forma:

Library:











En este caso seleccionamos Super Famicom (nombre del SNES Japonés) y se abrirá la siguiente ventana:

Game Library >>> Import Game.








































Hacemos click en Import Gameseleccionamos el rom y listo. Si el juego requiere algún dsp se mostrará una advertencia al intentar ejecutarlo, en este caso tendremos que copiar el archivo manualmente, quedando parecido a como se muestra en la siguiente imagen:













Después de todo no era tan complicado!.





Configuración de Higan.

Como mencionamos antes, disponemos de tres perfiles de emulación contenidos en tres ejecutables independientes:

- Accuracy: Utiliza un render (renderizador) basado en pixel, el cuál es requerido para emular apropiadamente juegos como en el caso de A.S.P - Air Strike Patrol donde con este modo, se puede visualizar la sombra, lo cuál es escencial para poder jugarlo. Sin embargo este perfil es el doble de lento que el perfil Compatibility.

- Compatibility: Contiene un render (renderizador) basado en scanlines (escaneo de lineas), el cuál funciona bién con él 99% de juegos, es mucho más rapido que el perfil Accuracy.

- Performance: Sacrifica mucha precisión, pero corre el doble de rapido que el perfil Compatibility. Este perfil tiene los dias contados, byuu tiene planeado removerlo en las proximas versiones de el emulador.

La selección de el perfil va a depender exclusivamente de nuestro CPU, pero la mayoria de usuarios no deberia tener problemas con el perfil Compatibility/Accuracy.

NOTA: Los ejecutables de 64bits entregan un 15% de rendimiento adicional.

NOTA2: En véz de seleccionar el perfil Performance, es mucho mejor idea utilizar las ultimas builds de el emulador SNES9x (Git).


Las teclas Hotkeys (acceso rapido) predeterminadas son estas:

- F5:  Guarda un estado (Save state).
- F7:  Carga un estado (Load state).
- F11: Fullscreen (Pantalla completa).
- F12: Captura el Mouse.


Ventana principal del emulador:
































Esta es la ventana de el emulador, como no se ven muchas opciones dá para pensar que no hay nada que configurar pero no es así, de hecho cuando cargamos un rom salen otras más.


Settings:














[Video]











- Center: Escala la imagen tanto como sea posible respetando la relación de aspecto, esta es la opción ideal para monitores 4:3, y también para quienes desean usar scanlines en véz de usar filtros (shaders). Se apreciarán bandas negras en las orillas y en la parte superior/inferior de la pantalla, como un marco.

- Scale: Esto hace que la imagen quede casi totalmente ajustada al alto del monitor, con el costo de perder levemente la relación de aspecto, se recomienda usar en conjunto con Synchronize Video y/o shaders. En un monitor panoramico solo se verán bandas negras por las orillas 

- Stretch: Ajusta la imagen a todo el ancho y alto de el monitor eliminado las bandas negras, pero destruyendo la relación de aspecto, en monitores panoramicos los personajes lucirán anchos, afectando también al scrolling (desplazamiento). Esta opción solo debe ser considerada en monitores 4:3 con una resolución de 1280x1024, ya que esta no es una resolución cuadrada, dando como resultado una imagen más limpia.

- Aspect Correction: Si deseas tener una correcta relación de aspecto, es necesario activar esta opción.

- Mask Overscan: Esto permite aumentar los margenes de la imagen, esta opción se configura en video.



[Shader]














Aqui podemos escoger que shader (filtro) utilizar para que la imagen se vea más "limpia" (alisada). El emulador incluye solo unos pocos, es por esto que recomiendo los Quark ShadersEstos shaders solo funcionan bajo OpenGL, por eso esta api debe ser la seleccionada en el emulador (Settings > Configuration >  Advanced > Driver selection > OpenGL).

Estos deben ser copiadas dentro de la carpeta Video Shaders que incluye el emulador: 





























NOTA: Se requiere un driver OpenGL funcional, en tarjetas de video nVidia y AMD no hay mayor problema con esto, pero en iGPU's intel estos shaders no funcionan (o pueden no funcionar) a pesar de que el hardware si soporta la versión más reciente de esta api.


- Synchronize Video: Permite sincronizar el video con la tasa de refresco vertical de el monitor (usualmente 60hz) dando como resultado un desplazamiento suave, pero se tener en cuenta la frecuencia de audio.

- Synchronize Audio: Permite sincronizar el audio con la tasa de muestreo de nuestra tarjeta de sonido, resultando en un sonido libre de ruidos/chirridos.

NOTA: Con respecto a estas dos opciones; se puede activar cualquiera, ambas o ninguna. Con nada activado, se desactiva el limitador de velocidad, por lo que la emulación será tan rapida como nuestro PC lo permita. Si se activan ambas; estas competiran entre si y quizás se sufra de stuttering (tartamudeo), audio crackling (ruido en el audio) o ambas. Para reducir este problema, es necesario ajustar la frecuencia de audio, detallaremos este punto en Configuration Timing.
  

- Mute Audio: Silencia todo el audio.



[Configuration]

Acá dentro encontraremos la configuración avanzada de el emulador.

Configuration Settings > Video:

























- Color adjustment (Ajustes de Color): Permite cambiar (en porcentajes) la Saturación, Gamma y Luminancia de el color, por defecto se encuentra todo en 100%.

- Color Emulation (Emulación del Color): Con esta opción activada, tendremos una aproximación de el gamma que se puede apreciar en una TV convencional (tubos), la cuál es más oscura en comparación a los monitores LCD tradicionales, consiguiendo colores más autenticos y ricos. Activar esto es recomendado, pero si la imagen se ve demasiado oscura en nuestro monitor, tendremos que desactivarla.

- Overscan mask: Aqui se pueden aumentar los margenes de la imagen, tanto en ancho como en alto, el valor es expresado en pixeles (px), a pesar de lo que se podria pensar, con 0% tendremos el maximo permitido.


Configuration Settings > Audio:

























- Frecuency: Selecciona la frecuencia de audio, podemos escoger entre 32000hz (frecuencia original de SNES), 44100hz, 48000hz y 96000hz (más detalles en el apartado Timming).

- Latency: Este vá desde los 20ms hasta 100ms, esto va a depender del PC, pero con el valor que viene por defecto (60ms) suele funcionar bién.

- Resampler: Aquí se pueden seleccionar varios tipos de remuestreador de audio. Las opciones disponibles son Linear, Hermitte y Sinc, siendo este ultimo, con el que mejor resultado se obtiene en terminos de calidad.

- Volume: El audio generado por el SNES es muy bajo, por eso se incluye esta opción, donde podremos amplificar la salida de audio consiguiendo mayor volumen, pero si se escoge un valor muy alto (150%+) el audio podria saturar en determinados casos, causando degradación en la señal.


Configuration Settings > Input:

























- When Focus is Lost: Cuando se pierde el foco de la ventana de el emulador (quede en segundo plano) tenemos dos opciones disponibles:

Pause Emulation: Se pausará la emulación hasta que la ventana vuelva a tener prioridad.

Allow Input: Aún con la ventana en segundo plano, podremos tener el control de el juego.

NOTA: Si no se activa ninguna opción, la emulación continuará aún en segundo plano.


Adicionalmente, esta ventana permite mapear los controles de las plataformas emuladas, incluyendo el Mouse, Super Scope, Justifier (s), entre otros.


Configuration Settings > Hotkeys:

























Permite re/asignar las teclas de acceso directo (hot-keys) a las teclas de nuestros dispositivos.


Configuration Settings > Timing:

























- Video: Permite ajustar la tasa de refresco del monitor, y también podemos analizarla para saber el resultado real (y variable) de este valor.

- Audio: Permite ajustar la tasa de muestreo de la tarjeta de sonido, al igual que con el video podremos analizarla.


NOTA IMPORTANTE: La siguiente información solo es valida si tienes activadas las opciones Synchronize Audio + Synchronize Video, de lo contrario, ignora esto:


Explicación:

"En el estandar PC; el hardware y software trabajan con cierto grado de tolerancia por razones de compatibilidad, considerando que existen muchas combinaciones y configuraciones de hardware distintas. Nosotros suponemos que la tasa de refresco de nuestro monitor es de 60hz, pero en realidad esta no es fija y oscila entre 59.5hz y 60.5hz, la misma cosa para el audio, que para una tasa de 44.1khz, varia entre 44.050 y 44.105. 
Estos valores dependen de el hardware y software como un todo (sistema operativo, driver, etc)

Aqui es donde viene el problema; Higan no arroja (drop), ni añade (add) frames para lograr que un desplazamiento suave (como hacen el resto de emuladores) o para mantener la sincronia. Principalmente debido a su naturaleza Cycle Accurate, por esta razón podriamos tener problemas relacionados con la sincronización audiovisual, por consiguiente sufrir de stuttering, slowdowns y/o ruidos en el audio (cambios en la velocidad, variación tonaletc)."


Afortunadamente, contamos con una excelente herramienta (incluida en el emulador) que permite ver los Timings en tiempo real, tanto para el video como para el audio. Solo se debe empezar a analizar y dejarlo un tiempo, en mi caso lo dejé corriendo aproximadamente 100 samples (muestras) y estos son los resultados:

Monitor LCD conectado via HDMI.




X-Fi Titanium >>> Creación Musical (coincidencia de bits activada) @ 44.1KHz.




Con los datos obtenidos, se deben escribir y asignarlos donde corresponda, quedando algo así:









Mientras más tiempo lo dejen corriendo, más precisa será la muestra!

Con esto se puede lograr una sincronización audio/visual perfecta, resultando en un audio limpio sumado a un desplazamiento suave (sin cortes), aunque solo funciona bién por un tiempo, en algunos sistemas es posible jugar 40 minutos sin problemas, hasta que se produzcan algunas (o varias/todas) desincronizaciones.

Cosas que pueden ayudar a evitar en parte este problema, es desactivar el window compositor (DWM > composición del escritorio) en los sistemas operativos WinVista y Win7 (en Win8+ no es posible de manera oficial) para evitar problemas relacionados con el V-Sync.
Lo otro seria es que se implemente de una véz por todas, el soporte fullscreen real, dejando de lado el infame borderless fullscreen (pantalla completa sin bordes).



Configuration Settings > Advanced:

























- Driver Selection: Acá podemos elegir las api's de Video, Audio y Entradas (Mandos, perifericos).

Video: Tenemos para escoger entre OpenGL, Direct3D (D3D9), DirectDraw y GDI, para Windows, lo recomendados son Direct3D y OpenGL, este ultimo es mandatorio si queremos usar shaders (filtros).

Audio: Podemos elegir entre XAudio2 y DirectSound. Si aún usamos WindowsXP, DirectSound es lo mejor. Para sistemas operativos posteriores a Windows Vista, se recomienda XAudio2.

Input: En sistemas operativos Windows, solo tenemos una opción para escoger.


NOTA: Cada véz que cambiamos de API, es necesario reiniciar el emulador para que se apliquen los cambios.


- Game Library: Aqui asignamos la ruta en donde tenemos nuestros roms, para que cada véz que se abra el emulador, los juegos estén listos para ser importados. Si queremos que se abra la libreria junto al emulador activamos la opción "Show game library on program start".


NOTA: En la leyenda que aparece abajo, nos dice la versión y perfil de el emulador que estamos usando.





Opciones al emular un juego de SNES.

Cuando comenzamos la emulación de un juego de SNES tendremos las siguientes opciones:

Super Famicom:












- Power: Con esta opción, se puede apagar y volver a encender la SNES, lo que causará que se pierdan todos los datos alojados en la ram del cartucho, como por ej. las puntuaciones (high scores).

- Reset: Simula un reinicio, dejando los datos en la ram intactos. Hay juegos en donde se podrá saltar intros o pantallas que ya hemos visto.

- Port 1/2: Permite conectar un Control, Multitap (adaptador multiplayer para 4 jugadores), Mouse*, Serial USART, Super Scope*, Justifier (s)*, las opciones cambian dependiendo del puerto elegido (1 o 2).

*Estos requieren la función captura de mouse para que funcionen correctamente, se activa por defecto con la tecla F12.


- Unload: Remueve el rom emulado, es como si sacaramos el cartucho de la consola mediate el botón eject.


Tools:











- Save/Load State: Permite hasta 5 slot's (espacios) para guardar/cargar estados. Las teclas predeterminadas son F5 y F7 respectivamente, como siempre, recomiendo usarlos con precaución, algunos juegos guardan datos temporalmente en la ram, y en casos extremos, esto puede corromper una partida.

- Resize window: Redimensiona la ventana a los margenes seleccionados en la emulación de video.

- State Manager: Este es un muy funcional gestor de estados (save/load states), donde se puede renombrar cada estado para evitar confusión:
 






















- Cheat Editor: Este es un gestor para los trucos, permite crear nuevos y/o renombrar los existentes, también sirve para cargar trucos (cheats):























Find Codes; permite cargar cheat's (trucos) incluidos en la base de datos* de el emulador (si es que los hubiera) para el juego en ejecución:






















  

*Higan v0.94 incluye los mightymo's cheats (2014-01-02).



Con esto damos por finalizada la guia, espero que les sea útil, cualquier duda pregunten en los comentarios.


Salu2 - Darkness Knight.

31 comentarios:

  1. Es un buen emulador pero su consumo es alto (aparte de requerir los dsp para algunos juegos), entre los aspectos destacables: el manejador de save states esa muy interesante frente a lo que ofrecen los demas emuladores en esta caracteristica al igual que el editor de cheats

    ResponderEliminar
  2. Si pero sabes, creo que modo Compatible pide mucho menos, has probado con tu CPU?

    Salu2 - Darkness Knight

    ResponderEliminar
  3. Ya que hablas de eso, me lleve una decepcion con ese modo estaba intentando probar killer instinct (este me funciona en el zsnes y lo he rescatado varias veces) para ver como le iba con el teclado (punto fuerte del zsnes porque con los demas emuladores con el teclado no puedes hacer la u completa ya sea hacia la izquierda o derecha (en el caso del snes9x podrias hacer la u completa pero requeria esperar casi 1 segundo con la tecla oprimida de la u que ibas a realizar: por ejemplo si querias hacer una u hacia a tras entonces necesitabas mantener oprimido la tecla derecha por casi 1 segundo y luego oprimir las normalmente sin retraso para que saliera el moviemiento), esto es necesario para varios poderes) pero resulto que ni siquiera lo corrio (otras roms me funcionaron pero esa no)

    Lo que pasa es que el zsnes fue de los primeros emuladores que probe de snes desde 1999 y para los titulos que uso funciona bien

    Algunos aspectos que me parece que debe mejorar, es que el audio de la snes es a 32000hz (cuando se cambiaba eso habian problemas)

    ResponderEliminar
  4. Logre hacer funcionar el killer instinct pero me toco con una rom modificada (una rom con parche de traduccion de chilensis), pero estoy usando el modo de performance para ver como corre en lo mas bajo y al parecer este emulador consume demasiados recursos (para maquinas antiguas no es recomendable usarlo)

    Respecto al input es igual que el snes9x en killer instinct

    ResponderEliminar
  5. Casi se me olvida de las cosas que no me gustaron fue el filtro de scanlines a partir de shaders, es mucho mejor el filtro de scanlines del snes9x y del zsnes, deberia mejorar el filtro de scanlines

    ResponderEliminar
  6. Otra cosa me funciono bien en xp tanto el modo de sonido xaudio2 como directsound, lo que pasa es que eso es relativo

    En otros emuladores tambien me funciona bien el xaudio2 en xp, por ejemplo por defecto xaudio2 es el modo del pcsx2, tambien funciona bien en el visualboy advance, en el snes9x que en elas ultimas versiones tambien tiene para usar xaudio2, en el final burn alpha y en otros

    ResponderEliminar
  7. Cuando puedas intenta probando que tal te vá el modo Accuracy y Compatible ya que me serviria como referencia, pienso que ese CPU que tienes no deberia ir lento. Con respecto al teclado es lamentable eso de las U, eso podria mejorar activando esa opcion de permitir diagonales que incluyen algunos emuladores, de todos modos trata de comprar un joystick es muchisimo más comodo.

    El XAudio 2 funciona en XP pero las latencias son mejores con Dinput, microsoft recomienda XAudio2 para WinVista+, aunque lamentablemente no ha salido nada como Dinput, las latencias son más altas ahora...

    Los filtros que trae bsnes/higan no me gustan por eso recomiendo los quark shaders, tienes un montón en un solo paquete =).

    P.D: Si necesitas algún rxm me lo haces saber por mail.

    Salu2 - Darkness Knight.

    ResponderEliminar
    Respuestas
    1. Lo malo es que mi cpu no te serviria de referencia (es demasiado alta y debes tener en cuenta que muchos usuarios tienen maquinas muy inferiores)

      Lo que necesitarias es saber como corre en las cpus mas bajas actualmente y con poca ram o sea 512MB o 1014MB como maximo, estariamos hablando de un atom, un pentium 4, una athlon XP o tal vez menos**

      **Aunque este emulador se sabe que no es hecho para correr en la mayor cantidad de equipos (Realmente diria que es su mayor talon de aquiles por lo demas esta bien)

      Lo curioso es que en los juegos que he terminado tanto en snes9x con xaudio2 y otros, no he tenido problema

      Lo de las latencias debe afectar en mayor medida a los usrios que usen sistemas superiores a XP, ya que dinput no fue hecho para estos sistemas (XP principalmente) en los superiores esta xinput

      Eliminar
  8. Y tu crees que quede alguién usado esos CPU's?? O_O, salvo que vivas en cuba xD, lo más antiguo que he visto por estos dias ha sido un Athlon X2 o un Pentium Dual Core... de todas formas creo que no son suficientes para bsnes/higan, para que te hagas una idea del uso de CPU:

    Core i7 4770K @ 1 Core - Winter Gold (Super FX2) (SNES)

    Accuracy: 85% intro - 60% pantalla de titulo.
    compatibility 60% intro - 30% pantalla de titulo.

    Si consideramos que este emulador es hambriento de frecuencia y creo que este es uno de los juegos más pesados de SNES, no está nada de mal.

    Salu2 - Darkness Knight

    ResponderEliminar
  9. hola amigo muy bueno tu post,mira ya descargue higan pero no me da audio, tengo win8 64bit, que puedo hacer

    ResponderEliminar
    Respuestas
    1. No tienes audio? vaya que raro, en la pestaña Advanced que API tienes seleccionada? XAudio2 o DirectSound? que audio tienes?

      Salu2 - Darkness Knight

      Eliminar
  10. Hola.
    Este emulador me costo acostumbrarme a el, ya que vengo del legendario Zsnes, luego pase por Snes9x-gtk y ahora estoy con Higan.

    Mis expectativas por ahora, lo he probado en windows y me funcionaba lento, el core acurracy, pero en linux me funcional fenomal.

    Por ahora, trabajo en linux y aqui este emulador es la panacea.

    Tu guía, me hubiese ayudado mucho hace meses atrás, jejeje. Aunque, entendí mejor algunas cositas que no había probado bien, como el timming del video y audio.

    Saludos.

    ResponderEliminar
    Respuestas
    1. Supongo que nunca es tarde ;), gracias por el comentario.

      Eliminar
  11. hola me pueden ayudar con el higan, al momento de abrir un juego(super mario world) este se cierra, en cualquiera de los 3 perfiles mi pc es de 2gb de ram y un procesador i3

    ResponderEliminar
    Respuestas
    1. Que extraño ya que el Core i3 si soporta extensiones modernas.. supongo que has probado con la ultima? has actualizado directx? probaste con x86 o x64?.

      Salu2 - Darkness Knight

      Eliminar
  12. Hay manera de lanzar el emulador+juego directamente por linea de comando?

    ResponderEliminar
  13. buenos dias , no capte del todo bien eso del timing , osea , yo dejo que analize y luego que hago? lo puedo dejar mucho tiempo dandome cifras altisimas pero luego no se que hacer si colocarlas o resumir.

    saludos y gracias ya de por si

    ResponderEliminar
    Respuestas
    1. Hola, la prueba de timing la puedes dejar corriendo unos minutos (10 aprox), y cuando veas que se haya estabilizado la detienes, luego pones esos datos en donde va la frecuencia, saludos.

      Eliminar
  14. Are there any better xbr or xbrz shaders?

    ResponderEliminar
  15. Me gusta mucho la emulación, pero en pantallas grandes suele pixelearse mucho, los filtros me han parecido una solución maravillosa a todo esto pero los emuladores suelen venir limitados en este aspecto, y el emulador higan según entiendo puede mejorar su imagen con shaders. ¿podrías explicar mas sobre como conseguirlos, colocarlos y ponerlos en función?

    ResponderEliminar
    Respuestas
    1. Hola, bueno, añadiré esa información a esta guia, de aqui a mañana esta hecho, saludos!

      Eliminar
  16. Respuestas
    1. Hola Gustavo, me temo que no es posible de momento, lo más parecido y que dá muy buenos resultados son los shader "xbr.mdapt". Si se quiere optar por los xBRZ es mejor usar las versiones SNES9XGit, saludos ;)

      Eliminar
  17. hay alguna manera de importar varios roms al mismo tiempo??? o una carpeta completa??

    ResponderEliminar
    Respuestas
    1. Hola, lamentablemente de momento no es posible, solo soporta 1 rom a la véz :(, saludos.

      Eliminar
    2. hola, ya busqué y esa opcion viene en la ultima version, la beta.

      tiene un programa llamado icarus donde permite importar carpetas de roms

      Eliminar
    3. Asi es, con las ultimas betas se ha incluido esta herramienta (http://board.byuu.org/phpbb3/viewtopic.php?f=4&t=711) el problema es que hay varias cosas no implementadas (shaders, etc), se espera que la version 0.96 sea un reemplazo completo de la actual 0.94, saludos.

      Eliminar
  18. Primero que todo gracias por colocar lo de los shaders, Y ahora quisiera saber sobre el msu-1 ya que quiero jugar los roms que vienen con música mejorada y solo me suenan los efectos de sonido de los juegos pero no el msu... Gracias de nuevo

    ResponderEliminar
  19. se ve muy distinto al bsnes y no me anda ���😭��� :'(

    ResponderEliminar