Crónicas de emulación #30 : Supermodel 0.2a

supermodel model 3 emulator bart trzynadlowski sega lost world scud racer

Después de un tiempo enfrascado en el desarrollo de Supermodel, Bart Trzynadlowski (link) ha decidido liberar la segunda versión de este emulador de la placa Sega Model 3. Como anteriormente ya había hablado de los pormenores del emulador (link) me centraré en esta nueva versión y una nueva lista de compatibilidad, esta vez espero que completa

NOVEDADES

Aunque el changelog no es muy extenso lo cierto es que el emulador ha mejorado sustancialmente, aquí os detallo las mejoras más relevantes, dentro de la descarga de esta versión tenéis un README con el changelog completo:
  • Se ha implementado el sonido, tanto la emulación del chip SCSP comola música en MPEG
  • Re-escrito el sistema de control con soporte para DirectInput, XInput, Raw Input y SDL
  • Nuevos juegos booteables (que se ejecutan) aunque no jugablehttp://www.blogger.com/img/blank.gifs
  • Emulación multi-núcleo: Supuestamente solo afecta al sonido y debería mejorar el rendimiento
  • Versión oficial para 64bit
  • Archivo de configuración: Se puede modificar cualquier detalle para cada juego por separado
  • Retícula de disparo en rail'n guns, con el comando ALT+I
  • Force Feedback en juegos de carreras
DESCARGAS
vf3Virtua Fighter 3
lemans24
Le Mans 24
scud
Scud Race
scudp
Scud Race Plus
lostwsga
The Lost World
von2
Virtual On Oratorio Tangram
vs298
Virtua Striker 2 '98
srally2
Sega Rally 2
daytona2
Daytona USA 2
dayto2pe
Daytona USA 2 Power Edition
fvipers2
Fighting Vipers 2
harley
Harley Davidson & L.A. Riders
lamachin
L.A. Machineguns
oceanhun
The Ocean Hunter
swtrilgy
Star Wars Trilogy
eca
Emergency Car Ambulance

FRONTENDS

Debido al estado de desarrollo del emulador aún no tiene un interfaz gráfico con lo que es necesario ejecutarlo a través de linea de comandos. Es bastante sencillo y el README del emulador tiene todos los comandos disponibles para configurar (aunque siempre se puede controlar desde el archivo de configuración) mas hay usuarios que prefieren utilizar un frontend (un interfaz gráfico externo)

Todos los frontends de la anterior versión (link) funcionarán en esta debido a que los comandos básicos no han cambiado, sin embargo no podréis usar en ellos los nuevos parámetros de configuración: multi-threading, configurar el sonido, configurar las nuevas opciones de control, etc. Como no son específicos de esta versión no voy a volver a postear los antiguos frontends que no hayan sido actualizados (usad mi anterior entrada). Aquí iré actualizando con los nuevos frontends

Supermodel Loader (link) : Pedazo de interfaz se ha currado un tal Groni, integrada en la misma ventana de ejecución de Supermodel y con unos gráficos y un estilo bastante elegantes. Tiene todas las opciones de configuración nuevas y una pantalla de selección con las pantallas principales de los juegos. Todo muy visual y accesible. Como puntos negativos diría que no tiene todo el romset, que no se puede acceder a una resolución menor de 800x600 y que no se mantiene el aspecto

supermodel loader

Emu Loader (link) : El clásico frontend multi-emulador. Muy configurable y estable, lleva unos cuantos años en desarrollo. Sin embargo es algo "pesado" para ser un simple GUI

supermodel loader

Supermodel GUI (link) : El que para mí era la mejor GUI de la anterior versión se ha actualizado. Tan solo le han añadido el nuevo romset a mayores, pero las opciones siguen siendo las mismas. Ello implica que no es posible configurar las nuevas opciones del emulador

supermodel loader

USO

Como he mencionado la versión 0.1a es un emulador en linea de comandos puro. Para ejecutar los juegos tenemos dos opciones: usar la consola de comandos de MSDOS (Inicio>Ejecutar>CMD) o usar un archivo de proceso por lotes (BAT). Lo más fácil y directo -para varios usos- es esto segundo. Para empezar extraemos el emulador y en la misma carpeta donde este situado el ejecutable (supermodel.exe) creamos un archivo de texto y lo re-nombramos a -por ejemplo- 'ejecutar.bat', la extensión TXT tiene que quedar eliminada -obviamente-, si no apareciera debemos activar la vista de extensiones en el explorador de Windows. Todo esto es de primero de parvulario de Windows con lo que lo pasaré por alto

bat ejecutable
CREANDO EL BAT

Creado el archivo BAT hacemos click encima de él con el botón derecho del ratón y usamos 'Editar'. Se abre el bloc de notas y ahora deberemos escribir la secuencia de ejecución del emulador con la siguiente estructura de comandos

supermodel juego.zip [opciones]

El primer comando (supermodel) es invariable, sirve para ejecutar el emulador. El segundo comando (juego.zip) sirve para indicar al emulador qué juego queremos ejecutar y dónde está ubicado, si queremos ejecutar The Lost World (que lo queremos ejecutar) usaremos lostwsga.zip, si queremos ejecutar Sega Rally 2 entonces usaremos srally.zip y así con el resto, si el juego no está ubicado en la misma carpeta del emulador deberemos indicar también la ruta, por ejemplo, si hemos creado en el directorio del emulador una carpeta 'roms' y queremos ejecutar Sega Rally 2 entonces sería roms/srally2.zip, y si estuviera directamente en la unidad X (por decir algo) sería X:/srally2.zip. En el tercer comando explicaremos al emulador las opciones que vamos a usar, que no son muchas

-? o -h : Mostrará una pantalla de ayuda con todas estas opciones

-print-games : Mostrará una lista de todos los juegos disponibles
-print-gl-info : Muestra los datos OpenGL en pantalla
-print-input : Muestra la configuración actual de control

-no-threads : Desactiva el multi-thread, activado por defecto. Cuando está habilitado, la CPU y el proceso gráfico se ejecutan sobre un núcleo, el proceso de sonido desde otro y el proceso de control desde otro. Dejarlo activado puede implicar ralentizaciones en ordenadores de un solo núcleo pero también puede hacer que el sonido sea más suave

-ppc-frequency=número : Con esta opción indicaremos al emulador la frecuencia a la que queremos que la CPU de Model 3 funcione, por defecto es 25 pero podemos subirla a 30 o 50 para mejorar el framerate de algunos juegos

-res=XXX,YYY : Con ello indicaremos al emulador la resolución vertical YY a usar y la resolución horizontal XX a usar, por ejemplo (800x600): -res=800,600. Cabe mencionar que la resolución nativa de Model 3 no es 4:3, es 496x384, debido a ello si queremos usar una resolución de 800x600 veremos que la pantalla tiene bordes negros, deberemos usar 800x616 -y calcular el resto de resoluciones-

-fullscreen : Para poner el emulador en pantalla completa

-no-throttle : Anula el límite de 60 frames por segundo

-show-fps : Muestra los FPS a los que funciona el emulador

-input-system= : Permite cambiar el sistema de control entre dinput, xinput, rawinput y sdl
-config-inputs : Lanza una aplicación que configura el control para TODOS los juegos
-force-feedback : Activa el Force Feedback en los 5 juegos que lo soportan, necesitaréis las roms FF a mayores

-frag-shader=nombredelshader : Permite usar un determinado shader para añadir funciones gráficas

-flip-stereo : Intercambia los canales de sonido
-no-dsb : Anula la emulación del DSB (Digital Sound Board) que hace funcionar la música MPEG
-no-sound : Deshabilita el sonido (SFX)
-music-volume= : Especifica el volumen de la música MPEG. Debe estar entre 0 y 200
-sound-volume= : Especifica el volumen de sonido SFX. Debe estar entre 0 y 200

Ejemplo práctico: Si queremos que el emulador ejecute The Lost World (en la carpeta roms), funcione a 50MHZ de frecuencia de CPU, a 800x616, en pantalla completa deberíamos usar:

supermodel roms/lostwsga.zip -fullscreen -res=800,616 -ppc-frequency=50

Para emular los gráficos de la placa Model 3 el emulador Supermodel delega las funciones gráficas en los shaders OpenGL, algunas tarjetas gráficas antiguas tienen limitaciones en cuanto al número de shaders que pueden compilar. Esto puede generar errores gráficos obvios (no se renderizan texturas, no se renderizan shaders, todo es del mismo color, etc) o errores de consola confusos. La solución pasa por utilizar un shader que anula determinadas funciones. Para usarlos basta con descargar el shader y descomprimirlo en la carpeta del ejecutable (Supermodel.exe). Para ejecutar el emulador con el shader cargado basta con usar la última secuencia de comandos que he puesto en la sección superior (-frag-shader). Para usar el único shader que existe a día e hoy (nospotlight) deberemos usar esta secuencia

supermodel scud.zip -frag-shader=Fragment_NoSpotlight.glsl

ARCHIVO DE CONFIGURACIÓN

A mayores de la configuración que se pueda realizar bajo la linea de comandos arriba explicada, se puede configurar el emulador mediante un archivo de configuración (Supermodel.ini) localizado en la subcarpeta 'Config'. La jerarquía de las opciones de configuración en el emulador dan preferencia a la linea de comandos, seguida por la configuración particular para cada juego y finalmente la configuración global, ambas detalladas en el archivo de configuración. Este archivo es leído por el emulador y discrimina mayúsculas y minúsculas con lo que escribid con cuidado porque el emulador no da señales de ningún tipo, diciendo que está mal escrito o que lo revises

Dentro del archivo de configuración nos encontramos las opciones globales, encabezadas por el parámetro [ Global ], y las opciones particulares de cada juego, encabezadas por [ nombredelarom ] (ej. [ sud ] o [ lostwga ]). Cabe destacar que los mapeos de teclado solo son leídos de la sección Global, no se puede mapear de forma específica cada juego ya que cada control mapeado es específico de un juego determinado. Es bastante complejo explicar cómo se configuran los controles a mano desde el archivo de configuración por lo que me saltaré esa parte y os recomiendo usar el gestor de configuración que se activa con el parámetro -config-inputs en la linea de comandos

MultiThreaded (multi-core) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
PowerPCFrequency (frecuencia CPU) : 0 - 100 <> 50 por defecto
FullScreen (pantalla completa) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
ShowFrameRate (ver el framerate) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
Throttle (limintar frames) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
XResolution (resolución horizontal) : Por defecto es 496
YResolution (resolución vertical) : Por defecto es 384
EmulateDSB (Música) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
EmulateSound (SFX) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
FlipStereo (cambiar canales) : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
MusicVolume (volumen música) : 0 - 200 <> 100 por defecto
SoundVolume (volumen sonido) : 0 - 200 <> 100 por defecto
ForceFeedback : 1 o 0 <> 1 habilita la opción, 0 la deshabilita
DirectInputConstForceMax (Fuerza Constante) : 0 - 100 <> Más de 100 causa efectos extraños
DirectInputFrictionMax (Fricción) : 0 - 100 <> Más de 100 causa efectos extraños
DirectInputSelfCenterMax (Auto-centrado) : 0 - 100 <> Más de 100 causa efectos extraños
DirectInputVibrateMax (Vibración) : 0 - 100 <> Más de 100 causa efectos extraños
XInputConstForceMax (Fuerza Constante XBOX 360) : 0 - 100 <> Más de 100 causa efectos extraños
XInputVibrateMax (Vibración XBOX 360) : 0 - 100 <> Más de 100 causa efectos extraños
XInputConstForceThreshold (Mínimo de Fuerza Constante XBOX 360) : 30 - 100 <> Más de 100 causa efectos extraños

Controles NO INCLUÍDOS

FRECUENCIA DE LA CPU

Con la finalidad de mejorar el rendimiento la CPU de Model 3 (un PowerPC) está underclockeado por defecto en el emulador, lo que evita que se gasten ciclos de emulación cuando el hardware real estuviera inactivo, debido a los procesos de transferencia de datos. Mientras que 40MHZ parece ser una frecuencia aceptable para la mayoría de los juegos, algunos títulos experimentan ralentizaciones o problemas de sonido (Scud Racer por ejemplo) por lo que es recomendable usar 50MHZ, mientras que otros juegos pueden funcionar sin problemas a 25MHZ lo que mejoraría el rendimiento

En otras palabras. Si incrementamos la frecuencia de la CPU de Model 3 nuestro PC tendrá que trabajar más tiempo en un solo frame, por contra incrementará el trabajo que el PowerPC puede hacer en un solo frame. Es decir, si nuestra CPU es lo suficientemente potente como para no bajar el rendimiento aún con una mayor carga de trabajo, esta mayor carga de trabajo hará que el juego vaya más fluido. Sin embargo si nuestro PC baja el rendimiento por verse forzado a realizar más trabajo por frame no se notará esa mayor fluidez. En definitiva: Pruebas, pruebas y más pruebas

SISTEMAS DE CONTROL

Por defecto Supermodel soporta el sistema SDL que está disponible en todos los ports (a todos los sistemas) y que permite usar teclado, ratón o gamepad. Sin embargo, bajo Windows, es posible utilizar otros tres sistemas de control basados en la API DirectInput:
  • SDL: Emula ratón, teclado y controladores analógicos/digitales
  • DirectInput: Por defecto en Windows, trabaja como el SDL pero directamente bajo DirectInput
  • XInput: Como DirectInput pero con soporte avanzado para el mando de XBOX 360
  • RawInput: Captura directamente los datos de los controladores. Esto permite, por ejemplo, utilizar dos ratones a la vez en rail'n gun
ATAJOS DE TECLADO
  • Salir: Escape
  • Pausar: ALT+P
  • Reset: ALT+R
  • Borrar VRAM : ALT+N
  • Mostrar retícula (juegos de disparos): ALT+I
  • Limitar a 60FPS: ALT+T
  • Salvar partida: F5
  • Cargar partida: F7
  • Cambiar slot de partida: F6
  • Aumentar volumen música: F10
  • Reducir volumen música: F9
  • Aumentar volumen SFX: F12
  • Reducir volumen SFX: F11
FORCE-FEEDBACK

En esta nueva versión de Supermodel ya está soportado el Force-Feedback en los juegos que lo usan, es decir: Las dos ediciones de Scud Racer (normal y Plus), las dos ediciones de Daytona USA 2 (normal y Power Edition) y Sega Rally 2. Por si os habéis despertado del coma, por explicar lo que es FF, diré que se trata de un sistema que envía "sensaciones" de conducción al usuario, las cuatro más habituales son: Vibración, auto-centrado del volante, fricción y fuerza constante. Cada una de ellas puede ser configurada y habilitada en Supermodel. Cabe destacar que este sistema SOLO funciona en Windows como DirectInput o XInput

supermodel 0.2a bart compatibility list lista compatibilidad

Para poder usar el FF necesitaréis los archivos del driver que han sido dumpeados recientemente, de lo contrario no funcionarán. En esta lista podéis ver qué archivos son. Por supuesto deberán ir incluidos dentro del zip que contiene el resto de las roms del juego
  • DirectInputConstForceMax = 100
  • DirectInputSelfCenterMax = 100
  • DirectInputFrictionMax = 100
  • DirectInputVibrateMax = 100
Como podéis ver en el cuadro de la linea de comandos se puede habilitar desde ella, aunque también desde el archivo de configuración. Pero la configuración de las cuatro fuerzas solo se puede realizar desde el archivo de configuración. Encima de estas lineas están cada un de los cuatro force-feedback y su nivel de fuerza representado en %. Con 0 anularemos el efecto
  • XInputConstForceThreshold = 30
  • XInputConstForceMax = 100
  • XInputVibrateMax = 100
Como muchos usaréis el mando de XBOX 360 cabe destacar que la de encima de estas lineas es la configuración específica para él. Por supuesto el mando solo emula dos de esas sensaciones y ambas están simuladas por la vibración, tanto la propia vibración (la carretera por ejemplo) como el efecto de fuerza constante. Los motores el pad de 360 tienen un funcionamiento asimétrico por lo que la sensación será un poco extraña. Lo suyo es que comprobéis en cada uno de los cinco títulos qué tipo de fuerza aplicada a cada uno de los efectos es la más conveniente. Personalmente no tengo volante con force-feedback con lo que haré pruebas con la vibración y la fuerza constante en un DS2

SALVAR PARTIDA Y NVRAM

Supermodel permite salvar partida en cualquier momento pulsando F5 y cargar partida con F7. Existen hasta 10 slots diferentes y pueden ser elegidos pulsando F6. Estas partidas son guardadas en la subcarpeta 'Saves'. Si un co-procesador (música, sonido o control) está deshabilitado al salvar partida este no volverá a funcionar al cargarla, aunque vuelva a estar re-habilitado

La memoria no-volátil (NVRAM) consiste en un backup de RAM que se mantiene activo con una batería y un chip EEPROM. Esta memoria guarda las puntuaciones y algunos aspecto de configuración de la máquina. Es salvada cada vez que se apaga la máquina y cargada al comenzar. Para borrar esta memoria deberemos pulsar ALT+N

LISTA DE COMPATIBILIDAD

A continuación haré una vídeo-lista de compatibilidad de los 16 juegos dumpeados del sistema, aunque si lo queréis más resumido con este cuadro creado por Bart basta

supermodel 0.2a bart compatibility list lista compatibilidad


VÍDEO-LISTA DE COMPATIBILIDAD

Get Bass / Sega Bass Fishing (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

La caña de pescar no está emulada (y no creo que llegue a estar a corto-medio plazo) con lo que es injugable, tan solo se puede ver el insultantemene largo attract-mode. Aún no siendo jugable también tiene problemas de flickering y de geometría que hace invisibles objetos en base a la distancia


Daytona USA 2 (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Tiene algún problema gráfico aislado con los GFX además de algún flickering y alguna vista interior que no está perfectamente colocada, pero en general funciona perfectamente y, aunque tiene algunas ralentizaciones, el framerate es estable. Pocos juegos donde sea tan necesario el auto-centrado xD


Daytona USA 2 : Power Edition (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Exactamente igual que Daytona USA 2. Esta edición tiene los circuitos del Daytona USA original


Dirt Devils (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Tiene numerosos fallos de shading, texturas y geometría. Parte del display es negro y la mayoría de texturas no se muestran mas el trazado sí y es en parte jugable. Digo en parte porque aunque los controles parecen estar emulados y en el modo test son reconocidos perfectamente, dentro del juego la subida/bajada de marchas no funciona. No se hasta que punto es problema de emulación o de configuración incorrecta, pero yendo todo el tiempo en marchas bajas es bastante injugable


Emergency Call Ambulance (Sega, 1999)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

En esta nueva versión ya es jugable y tiene sonido, mas sufre severas ralentizaciones en zonas con mucha carga gráfica, tiene mucho flickering y errores gráficos importantes. Se puede completar el modo principal sin problema. Probado sin multi-threading y con 50HZ de frecuencia


Fighting Vipers 2 (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Numerosos problemas gráficos de anteriores versiones han sido corregidos. Actualmente el estado de emulación es muy bueno y, salvo algún pequeño fallo gráfico, es totalmente jugable


Harley Davidson & L.A. Riders (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Tiene gran cantidad de problemas de geometría y texturas, la mayor parte del display es negro, existe un flickering continuo y la mayoría de los objetos están mal colocados. Los controles están emulados en esta versión pero, no pudiendo ver por donde vas, es totalmente injugable


L.A. Machineguns (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Gran cantidad de problemas de shading (la mayor parte de la pantalla es negra) y otros problemas de geometría. En todo caso es injugable debido a que la pistola no está emulada, irónicamente es posible finalizar la máquina pero requiere de mucha paciencia e infinidad de créditos. Atención al gameplay porque el sujeto del minuto 04:55 porque no tiene desperdicio


Le Mans 24 (Sega, 1998)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

Gráficos en su mayoría bien emulados (salvo los efectos de climatología y determinado shading) y juego totalmente jugable. Un juego que depende, más que ningún otro, de un buen analógico, con teclado -como podéis ver en el vídeo- es bastante injugable


Magical Truck Adventure (Sega, 1999)

Aunque Ville Linde (enlace) había mostrado, en Febrero de este año, capturas de MTA ejecutándose en Supermodel (al menos booteando) lo cierto es que no está emulado y ni tan siquiera pasa de la pantalla de carga de archivos, no es posible ver el attrac-mode y por supuesto no es jugable. Una lástima porque sus anteriores entregas "bastardas" (Rail Chase y Rail Chase 2) eran una pasada

The Lost World (Sega, 1997)

supermodel 3 0.2a compatibility list supermodel 3 0.2a compatibility list

El tercer mejor arcade al que he jugado nunca y, sin duda, el mejor rail'n gun que se haya realizado jamás. Está prácticamente emulado al 100% salvo por determinados fallos en texturas y en las dos o tres zonas donde el escenario se cubre de niebla. Zonas donde además el juego se ralentiza bastante debido a mostrar parte del escenario que no debería ser mostradas. En el gameplay finalizo el juego en modo "fácil" (jajaja...no). Es el único juego de pistola que es jugable y para recargar hay que mantener pulsado el botón derecho del ratón (offscreen) y pulsar el botón izquierdo (disparo)


ENTRADA PENDIENTE DE ACTUALIZAR, FALTA MUCHO MATERIAL

¡Saludos!

3 comentarios:

  1. Gracias por este pedazo de artículo sobre Supermodel. La verdad es que yo también llevaba años esperando a que por fin alguien se pusiera "en serio" con la emulación de Model 3, y parece que van avanzando a pasos de gigante hacia una emulación perfecta. Me guardo esto desde ya en favoritos. Sigue como hasta ahora, que aunque no suela comentar, te leo desde la sombra..jejeje.

    Saludos.

    ResponderEliminar
  2. Sin las aportaciones que han hecho otros coders a Supermodel la verdad es que Bart no hubiera conseguido esto. Ville Linde comenzó el proyecto Supermodel en 2003 y fue responsable de la emulación de la CPU de la placa. ElSemi hizo el emulador del sonido SCSP y Guru es quien está detrás del dumpeo y desencriptación de las roms, además de muchos otros coders. Realmente este Supermodel es la punta del iceberg, pero el trabajo de Bart ha sido alucinante y ha conseguido un nivel sorprendente en poco tiempo

    No es de mis placas favoritas pero en base a ella existe The Lost World y solo por eso merece toda mi atención xD (aunque realmente ya fuera finalizable en MAME, pero claro, esto está a un nivel infinitamente superior de desarrollo)

    Quedan aún juegos por subir y vídeos por poner. Gracias por el apoyo :-D

    Saludos

    ResponderEliminar
  3. Muy buen aporte recien se me paso hoy por la cabeza ponerme al dia con la emulacion y me tope con este pedazo de noticion :D muchas gracas

    ResponderEliminar