Messtiny

Otras participaciones no clasificadas

Moderador: Luis a

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny

Mensaje por pedrox » 10 Ene 2017 12:16

Messtiny se comporta como un motor con el protocolo Winboard y permite utilizar las roms de algunas máquinas dedicadas para utilizarlas en Windows en aquellas interfaces gráficas (GUI) compatibles con dicho protocolo en Windows, también gracias al adaptador Wb2uci permitirá jugar a dichas roms en las GUI compatibles con el protocolo uci.

La última versión de Messtiny es la versión 0.138d y las roms permitidas son: Amsterdam, Dallas (16 y 32 bits), MM4, MM5, MMRebel5 y Roma (32 bits).

Por supuesto hay un paquete que dispone de un montón de roms y permite jugar contra la máquina en un tablero incluso parecido al real, messtiny tiene sentido más que para enfrentarnos a una de las roms posibles para poder enfrentar estas roms a otros motores y que los juegos se desarrollen de forma automática. Esto permite por ejemplo enfrentar a motores que están listados en rankings conocidos como puede ser la CCRL y ver como lo hacen contra estas máquinas Mephisto.

Muchas veces se cuestiona si los valores de ELO de listas de motores como la CCRL son parecidos a la lista ELO FIDE y en esto nos puede ayudar a enfrentar a los motores de dicha lista contra las máquinas Mephisto, ya que estas máquinas han tenido más enfrentamientos contra los humanos y es más fácil dar un ELO FIDE a estas máquinas que a los motores. Gracias a esta posibilidad he podido hacer una regulación de mi propio motor y creo que puede ser bastante parecida al ELO FIDE y muy diferente a la de otros motores.

A la hora de utilizar estas máquinas dedicadas con messtiny, he visto que la gente comete una serie de errores y pasa por alto una serie de cosas, lo cual puede dar lugar a errores en los resultados. Por ese motivo voy a escribir unos pocos post con el funcionamiento y las experiencias que he tenido. Lo haré en varios post.
Última edición por pedrox el 10 Ene 2017 12:43, editado 1 vez en total.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Descarga

Mensaje por pedrox » 10 Ene 2017 12:26

Podemos descargar un paquete con las roms y messtiny desde la página de Ed Shroedder:

http://rebel13.nl/dedicated/dedicated%20as%20uci.html

Al descomprimir el archivo de descarga encontraremos una carpeta para cada una de las máquinas, podremos ver el archivo messtiny y las roms que son los archivos con extensión zip.

Para cada una de las máquinas hay un archivo ejecutable que es el que se debe instalar en la GUI, si observamos bien el paquete está preparado para utilizar las roms en GUIs con protocolo uci (están preparadas ya con el adaptador wb2uci).

Como instalar la máquina en una GUI con protocolo uci no es el objetivo de este post. Pero es posible que más adelante de la dirección de otro paquete que incluye ya una GUI y que los motores estén configurados.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Llamando a la rom

Mensaje por pedrox » 10 Ene 2017 12:43

Si instalamos la máquina dedicada como un motor uci, deberíamos comprobar como está configurada la máquina al ser cargada y que parámetros utiliza, esto es importante.

Cuando utilizamos Wb2uci para convertir un motor de protocolo Winboard a uci, la configuración se realiza en el archivo Wb2uci.eng, hay que abrir dicho archivo con un editor de textos y realizar las modificaciones deseadas.

Por ejemplo voy a ver el contenido del archivo Wb2uci.eng para la máquina Mephisto Roma32.

Código: Seleccionar todo

[ENGINE]
Name=Mephisto Roma 32 Bit
Author=Richard Lang
Filename=Roma32-UCI.exe

[OPTIONS]
Program=..\messtiny.exe roma32 -mmlog
Como se puede observar cuando se llama al archivo messtiny se le pasa el nombre de la rom que es roma32 y ésta se ejecuta con el parámetro -mmlog. El parámetro -mmlog sirve para que se cree un archivo log donde podremos ver el contenido de la comunicación entre la GUI y la rom.

Vamos a comprobar el inicio de uno de estos archivos generados cuando se juega una partida:

Código: Seleccionar todo

08 May 2016 21:47:46 - Mess Mephisto Version: 0.138.d Winboard (Jul  5 2010)

08 May 2016 21:47:46 - Mephisto Roma 32 Bit

08 May 2016 21:47:46 - Display: PLAy
08 May 2016 21:47:46 - Emulator org. clock : 14000000
08 May 2016 21:47:46 - Emulator curr.clock : 8000000
08 May 2016 21:47:46 - Speed factor clock  : 0.57

08 May 2016 21:47:46 - OS ticks_per_second : 3237190

08 May 2016 21:47:46 - Time in ms for 1 sec: 54
08 May 2016 21:47:46 - Speed factor time   : 18.52

08 May 2016 21:47:46 - Speed factor total  : 10.58

08 May 2016 21:47:46 - ReferenceTimePerSec : 94 (This system has: 54)
08 May 2016 21:47:46 - Factor time corr.   : 0.57
08 May 2016 21:47:46 - g_tc_delay (ms)     : 1148
La Mephisto Roma32 trabaja en una frecuencia de 14 MHz, podemos observar que el reloj no está configurado a esa frecuencia.
Speed factor total : 10.58 --> esto nos dice que la emulación de la Mephisto está trabajando 10.58 veces más rápido que la original, aquí la Mephisto Roma32 no está limitada por la velocidad original sino por la máxima velocidad que puede conseguir en mi ordenador, es casi como tener en mi caso una roma32 a 140 MHz.

Este es el primer fallo que cometen algunas personas, prueban la Mephisto pero no lo están haciendo con la velocidad original, sino con la máxima velocidad proporcionada por su ordenador.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Velocidad original de la rom

Mensaje por pedrox » 10 Ene 2017 12:59

Para llamar a la rom en su velocidad original debemos añadir el parámetro -nommunlimited de la siguiente forma.

Código: Seleccionar todo

[ENGINE]
Name=Mephisto Roma 32 Bit
Author=Richard Lang
Filename=Roma32-UCI.exe

[OPTIONS]
Program=..\messtiny.exe roma32 -mmlog -nommunlimited
Vamos a comprobar el efecto de esto en el archivo log, bueno en este caso corresponde al archivo debug generado por Winboard, pero debería ser similar:

Código: Seleccionar todo

StartChildProcess (dir="..") "./messtiny.exe" roma32 -nommunlimited
897 >first : xboard
protover 2
923 <first : Mess Mephisto Version: 0.138.d Winboard (Jul  5 2010)
923 <first : 
923 <first : Mephisto Roma 32 Bit
924 <first : 
924 <first : Emulator org. clock : 14000000
924 <first : Emulator curr.clock : 14000000
924 <first : Speed factor clock  : 1.00
925 <first : 
925 <first : OS ticks_per_second : 3237188
925 <first : 
925 <first : Supported Levels:
925 <first : 
925 <first : Level 0: 3   seconds/move   -> st 3
926 <first : Level 1: 5   seconds/move   -> st 5
926 <first : Level 2: 10  seconds/move   -> st 10
926 <first : Level 3: 20  seconds/move   -> st 20
926 <first : Level 4: 60  seconds/move   -> st 60
927 <first : Level 5: 120 seconds/move   -> st 120
927 <first : Level 6: 40 move in 2 hours -> level 40 120 0
Aquí ya podemos ver que la frecuencia del reloj es la misma que la original, los 14 MHz.

Lo que también podemos ver es que nos avisa es que en este modo de velocidad original solo soporta unos determinados niveles de juego, esto también es importante.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Pruebas con la rom

Mensaje por pedrox » 10 Ene 2017 13:17

He incluido la Mephisto Roma32 en una lista de ELO, los valores de dicha lista coinciden más o menos con los valores de la lista CCRL, vamos a comprobar como se comporta la Mephisto Roma32 original y la versión no limitada a la frecuencia original.

https://sites.google.com/site/motoresde ... lo-compleo

En dicha lista podemos observar un ELO para la Mephisto Roma32 14 MHz de 1608 y un ELO para la Mephisto Roma32 140 MHz (en mi ordenador) de 1794.

Tengo que decir que la versión de 140 MHz jugó con el control de tiempo de 2 minutos más 2 segundos de incremento al igual que el resto de motores de la lista. Si messtiny juega con la máxima velocidad del ordenador, creo que pone a la máquina en un modo de análisis y en realidad el tiempo de control no es gestionado por la máquina original, sino que es realizado por el propio messtiny. En estas circunstancias la máquina puede jugar con cualquier tipo de control.

Sin embargo la versión original no juega cualquier tipo de control como vimos en el post anterior, tuve que hacerla jugar con 5 minutos más 5 segundos de incremento ya que sino perdía en el tiempo. Más adelante explicaré mejor esto.

Hay algunos estudios que dicen que estas máquinas ganaban más o menos 60 puntos de ELO cada vez que doblamos el reloj,

14 MHz --> 1608
28 MHz --> 1668
56 MHz --> 1728
112 MHz --> 1788
140 MHz aproximadamente 1794

Así que parece que los resultados para las 2 versiones salen bastante bien con respecto a la teoría.

Por supuesto estos valores son comparados con la lista CCRL, se podría haber hecho algo similar por ejemplo con la lista Aktiv, solo trato de mostrar la relación de fuerza entre motores de la lista CCRL y estas máquinas. Es decir la lista CCRL y otras hoy en día dan valores muy bajos a los motores si estos se enfrentarían contra humanos.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Controles de tiempo

Mensaje por pedrox » 10 Ene 2017 13:56

En el post anterior comentaba que cuando la Mephisto juega a fuerza completa del ordenador, en ese caso puede utilizar cualquier tipo de control de tiempo ya que la gestión es realizada por messtiny y no la máquina (si creo recordar bien, hace mucho que creo que leí o vi eso).

Pero si la Mephisto juega con la velocidad original entonces no nos vale cualquier tipo de control, para esto nos tenemos que fijar en lo que nos dice messtiny y el manual de la propia Mephisto.

Código: Seleccionar todo

925 <first : Supported Levels:
925 <first : 
925 <first : Level 0: 3   seconds/move   -> st 3
926 <first : Level 1: 5   seconds/move   -> st 5
926 <first : Level 2: 10  seconds/move   -> st 10
926 <first : Level 3: 20  seconds/move   -> st 20
926 <first : Level 4: 60  seconds/move   -> st 60
927 <first : Level 5: 120 seconds/move   -> st 120
927 <first : Level 6: 40 move in 2 hours -> level 40 120 0
Messtiny nos dice que soporta esos 7 niveles, 6 niveles st donde hay un número de segundos por cada movimiento y un nivel de torneo de 120 minutos para 40 jugadas. Si no configuramos uno de esos niveles, la máquina Mephisto es puesta al nivel por defecto que es LE02. Desgraciadamente el nivel de torneo lleva mucho tiempo para jugar y en los niveles por segundos por cada jugada ocurre que la Mephisto no piensa exactamente ese número de segundos, sino que hace una media, en unas jugadas responde instantáneamente y en otras se puede tirar hasta minutos, la sensación que da es que utiliza mucho más tiempo que el motor.

Para conocer mejor la Mephisto Roma32 y sus controles de tiempo podemos ver el manual de dicha máquina en la página de Alain Zainchetta:
http://alain.zanchetta.free.fr/docs/mep ... oma_EN.pdf

LE02 = 3 segundos / movimiento

Así que tenemos que tener cuidado con el control de tiempo que configuramos. Para revisar el nivel en el que la máquina juega se debería observar el archivo log y ver finalmente el nivel seleccionado.

Código: Seleccionar todo

1827 <first : PLAy
1892 <first : LE37
1939 <first : A1--
1995 <first : A1  
2051 <first : PLAy
2162 <first : pong 1
En este ejemplo por ejemplo se puede ver que la máquina juega con el nivel LE37. Este nivel si vemos en el manual corresponde a una partida blitz de 30 minutos por juego. En realidad el nivel de tiempo puesto en la GUI fue de 30 minutos más 5 segundos de incremento, puse el incremento ya que de lo contrario la Mephisto podría perder por tiempo. En este modo el motor y la Mephisto parecen utilizar una gestión de tiempo parecida.

Otro tipo de control que he conseguido utilizar ha sido 5+3 (o 5+5), en este caso la máquina se configura como nivel LE32 que corresponde a blitz de 5 minutos por juego y la gestión del tiempo es muy parecida a la del motor, ambos parecen utilizar el mismo tiempo, con 5+3 la Mephisto pierde alguna partida por tiempo, se deberían revisar las partidas para establecer el resultado.

No he conseguido utilizar otros controles de tiempo para la velocidad original, si configuro algo como 2+2 o algo como 3+3, la Mephisto no reconoce el control de tiempo y configura el nivel por defecto LE02.

Bueno, todo lo indicado ha sido para la Mephisto Roma32, si en lugar de la Roma utilizamos la Mephisto Amsterdam, la situación es peor, la Mephisto Amsterdam tiene muchos menos niveles que la Roma y parece que solo es posible jugar uno de 7 niveles propuestos. Si utilizamos por ejemplo st5, el motor siempre juega 5 segundos por jugada pero la Mephisto hace esa media y la impresión es que la Mephisto utiliza mucho más tiempo que el motor por lo que puede parecer más fuerte. Por este motivo seleccioné la Mephisto Roma32 para hacer los test de elo y no la Mephisto Amsterdam.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Problemas con las subpromociones

Mensaje por pedrox » 10 Ene 2017 14:19

En la siguiente partida hay una promoción de la Mephisto Roma32 a un caballo, aquí parece que hay un problema con messtiny porque parece que considera que se ha promocionado a dama y luego realiza un movimiento ilegal como si jugara ésta.


jfppal
Senior
Senior
Mensajes: 69
Registrado: 23 Mar 2014 21:14
Ubicación: Valencia

Re: Messtiny

Mensaje por jfppal » 10 Ene 2017 18:03

Interesantísima aportación, pedrox.
Llevo ya como un par de años realizando partidas entre módulos UCI y WB correspondientes a máquinas emuladas (Las que has citado más la Glasgow, que al parecer fue retirada a petición de los que ostentaban los derechos sobre el programa) y máquinas reales que soportan comunicación RS-232 (Novag: Sappbhire, Diamond II, Star Diamond y Citrine - Saitek: Maestro A, B, C, D, D+, D++ a 4, 6, 8 y 10 MHZ -Programas de Kaplan- y Kasparovv Brute Force -de Franz Mörsch-) utilizando la plataforma Arena. Por ahora llevan jugadas casi 4.000 partidas que puedo compartir con quien me las solicite.
El hecho de que se trate de torneos sin intervención de operador le confiere una fiabilidad extra, no alcanzable por los sistemas tradicionales de atención manual de las jugadas. Es más, se llega a la curiosa situación de encontrarte de vez en cuando con partidas duplicadas -que son eliminadas, obviamente, de mi base de datos- lo que indica que el proceso de "pensamiento" de los módulos se ejecuta siempre de idéntica manera.
Quiero agradecer desde aquí a nuestro compañero de foro Berger, gracias a cuyos artilugios -interfaces de conexión USB/Serie- he podido hacer intervenir las máquinas físicas en este "megatorneo". Gracias también a Achim Pietig por el desarrollo del software de comunicación que ha permitido utilizar los módulos de Saitek. Y a los creadores de Arena, especialmente por el soporte de la conexión de máquinas Novag que incluye sin el que no habría sido posible incluir los modelos de Kittinger.
Ojalá se extendiera a otras roms (Polgar, Vancouver, programas de Spracklen, etc.) el proyecto messtiny aunque me temo, por desgracia, que las personas que lo hicieron posible en su día -mi agradecimiento también para ellos- lo dejaron aparcado tal como lo conocemos ahora tal vez sin el incentivo suficiente para retormarlo.
¿Alguien -con los conocimientos de programación adecuados- se anima a resucitarlo?
Saludos

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Re: Messtiny

Mensaje por pedrox » 11 Ene 2017 13:04

Es interesante todos los juegos que has realizado, voy a enviarte un mensaje privado para ver si es posible acceder a la base de datos. No sabía que se habían podido jugar partidas automáticas de esta forma.

Messtiny parece estar muerto, la última versión 0.138d tiene varios años, comparadas con las roms que han conseguido utilizar en NAME son pocas y hay algunos errores, por ejemplo no es posible utilizar en la velocidad original muchos controles de tiempo, puede haber perdidas por tiempo, el error que parece que hay tras una sub-promoción, algunas de las máquinas creo que no juegan con uno de los 2 colores. Uno de los motivos por los que he escrito estos post a pesar de que no se actualice es porque hay gente que todavía lo utiliza para hacer pruebas y he visto que muchas personas utilizan la fuerza completa según su ordenador en lugar de la velocidad original que es lo que trataban de hacer.

Creo que hace años vi el código fuente de messtiny, no recuerdo donde lo vi y no recuerdo muy bien el código, no recuerdo si era sencillo configurarlo para otras máquinas, pero me imagino que no porque no se ha hecho.

pedrox
Veterano
Veterano
Mensajes: 122
Registrado: 20 Ene 2013 20:03

Messtiny - Juegos

Mensaje por pedrox » 11 Ene 2017 15:51

Aquí dejo unos pocos juegos para probar las distintas máquinas, he utilizado para ello DanaSah 6.4 limitada a una fuerza de 2146 puntos de ELO en modo humano (ELO FIDE), 2146 puntos que he utilizado como referencia es el ELO supuesto para la Mephisto Roma32 (elo aktiv + 70), creo que es la máquina de mayor ELO del paquete.

El control utilizado para todos los juegos fue de 3 segundos por movimiento, el motor juega exactamente este tiempo pero las máquinas Mephisto pueden hacer una media.

Las máquinas Mephisto MM4 yMM51 no juegan con negras, dan error cuando lo hacen y el juego se para, además la MM4 también dio error cuando iba a recibir mate en 1 y también paró.

Por curiosidad decir que la Mephisto Dallas 16 bit siempre parece tener un resultado un poco mejor que la versión de 32 bits, aunque no jugué un número grande de juegos para comprobarlo exactamente.


Responder