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 Game,
seleccionamos 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 Shaders. Estos
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 tonal, etc)."
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.