<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Manuel Abadia's ASP.NET stuff - MAME</title>
    <link>http://www.manuelabadia.com/blog/</link>
    <description />
    <language>en-us</language>
    <copyright>Manuel Abadia</copyright>
    <lastBuildDate>Mon, 12 May 2008 09:13:01 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>blogcomments@manuelabadia.com</managingEditor>
    <webMaster>blogcomments@manuelabadia.com</webMaster>
    <item>
      <trackback:ping>http://www.manuelabadia.com/blog/Trackback.aspx?guid=51ac1b35-5246-4e8c-9ee6-41334480a54e</trackback:ping>
      <pingback:server>http://www.manuelabadia.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.manuelabadia.com/blog/CommentView,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx</wfw:comment>
      <wfw:commentRss>http://www.manuelabadia.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=51ac1b35-5246-4e8c-9ee6-41334480a54e</wfw:commentRss>
      <slash:comments>32</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This post is first in English and then in Spanish<br />
Esta noticia está primero en inglés y luego en español
</p>
        <p>
 
</p>
        <p>
World Rally emulation is complete. I implemented priorities (that were trickier than
I thought), shadows/highlights and a few missing bits in the video hardware. Here
are some screenshots of the finished driver:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic1.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic5.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic3.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic2.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic4.png" border="0" />
        </p>
        <p>
 
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic7.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic6.png" border="0" />
        </p>
        <p>
The game is fully playable from beginning to end without any problem as far as I can
tell. I thought there was a bug in the video hardware emulation somewhere when I saw
this:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem1.png" border="0" />
        </p>
        <p>
So I plugged my PCB and compared it to the driver:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic1.jpg" border="0" />
        </p>
        <p>
The problem is also in the original arcade game. Because of the way an arcade monitor
works, the problem is nearly unnoticeable in the original game. I also checked if
the original PCB had the same “shadow effect” for the tiles:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem2.png" border="0" />
        </p>
        <p>
As you can see, the hardware works that way:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic2.jpg" border="0" />
          <br />
 <br />
Something curious about the protection... Javier told ElSemi that the protection of
this game took 8 months of work, so imagine how complicated it was… even the dallas
has some code that performs some pseudorandom dummy accesses to the shared RAM to
make black box attacks even more difficult.
</p>
        <p>
To clarify a question about the other protected games, having the World Rally dallas
code does not help to emulate the protection of them.  As MAME now has a DS5002FP
core and the other games are almost fully emulated, if we get the dallas code for
a game, it will be playable quickly.
</p>
        <p>
Finally, I want to thank to all the people that made this possible. It was cool to
be part of this. It has brought me some good memories and healed my wounds with Gaelco.
</p>
        <p>
          <strong>Update</strong>: <a href="http://www.gaelco.com">Gaelco</a> made public
the ROMs for World Rally. You can get them from <a href="http://www.gaelco.com">their
web page</a></p>
        <p>
For reference here are all the posts about World Rally emulation:
</p>
        <p>
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx">Part
1</a>
          <br />
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx">Part
2</a>
          <br />
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx">Part
3</a>
          <br />
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx">Part
4</a>
        </p>
        <p>
        </p>
        <p>
          <hr />
          <br />
La emulación del World Rally está completada. He implementado las prioridades (que
han sido más difíciles de lo que pensaba), los focos y sombras, y algún detalle que
faltaba del hardware gráfico. A continuación se muestran unas pantallas del driver: 
</p>
        <p>
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic1.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic5.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic3.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic2.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic4.png" border="0" />
        </p>
        <p>
 
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic7.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrpic6.png" border="0" />
        </p>
        <p>
        </p>
        <p>
Es completamente  jugable sin que haya podido observar ningún problema. Pensé
que había algún fallo en la emulación del hardware gráfico cuando vi esto:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem1.png" border="0" />
        </p>
        <p>
Así que enchufé mi placa y la comparé al driver:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic1.jpg" border="0" />
        </p>
        <p>
Como se observa, el problema también está presente en el juego original. Debido a
la forma en la que funciona un monitor de recreativa, el pequeño fallo gráfico es
prácticamente inapreciable en el juego original. También comprobé si el juego original
hacía el mismo “efecto de sombra” de los puentes:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem2.png" border="0" />
        </p>
        <p>
Como se puede apreciar, el hardware funciona de esa manera:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic2.jpg" border="0" />
        </p>
        <p>
Algo curioso sobre la protección… Javier le dijo a ElSemi que la desarrollar protección
del juego llevó 8 meses de trabajo. Inmaginad cómo de complicada es la protección…
Incluso el dallas tiene código para realizar accesos pseudoaleatorios a la memoria
compartido con el único motivo de hacer que los ataques de tipo caja negra sean incluso
más difíciles.
</p>
        <p>
Sobre la pregunta de si tener el código del dallas para el World Rally sirve para
emular la protección de los otros juegos, la respuesta es que no. Se necesita el código
de cada uno para hacerlo funcionar. Como ahora el MAME ya dispone de un emulador de
DS5002FP y los juegos de Gaelco protegidos están ya emulados completamente, una vez
que obtengamos el código del dallas para un juego, será jugable rápidamente.
</p>
        <p>
Por último, me gustaría darle las gracias a toda la gente que ha hecho esto posible.
Ha sido muy interesante poder formar parte de esto. Me ha traído muy gratos recuerdos
y ha cerrado viejas heridas con Gaelco.
</p>
        <p>
          <strong>Actualización</strong>: <a href="http://www.gaelco.com">Gaelco</a> ha
hecho públicas las ROMs del World Rally. Puedes obtenerlas desde <a href="http://www.gaelco.com">su
página web</a></p>
        <p>
A modo de referencia, aquí están todas las noticias sobre la emulación del World Rally:
</p>
        <p>
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx">Parte
1</a>
          <br />
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx">Parte
2</a>
          <br />
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx">Parte
3</a>
          <br />
          <a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx">Parte
4</a>
        </p>
        <img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=51ac1b35-5246-4e8c-9ee6-41334480a54e" />
      </body>
      <title>World Rally emulation completed</title>
      <guid isPermaLink="false">http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx</guid>
      <link>http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx</link>
      <pubDate>Mon, 12 May 2008 09:13:01 GMT</pubDate>
      <description>&lt;p&gt;
This post is first in English and then in Spanish&lt;br&gt;
Esta noticia está primero en inglés y luego en español
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
World Rally emulation is complete. I implemented priorities (that were trickier than
I thought), shadows/highlights and a few missing bits in the video hardware. Here
are some screenshots of the finished driver:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic5.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic3.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic4.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic7.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic6.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The game is fully playable from beginning to end without any problem as far as I can
tell. I thought there was a bug in the video hardware emulation somewhere when I saw
this:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
So I plugged my PCB and compared it to the driver:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The problem is also in the original arcade game. Because of the way an arcade monitor
works, the problem is nearly unnoticeable in the original game. I also checked if
the original PCB had the same “shadow effect” for the tiles:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
As you can see, the hardware works that way:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic2.jpg" border=0&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Something curious about the protection... Javier told ElSemi that the protection of
this game took 8 months of work, so imagine how complicated it was… even the dallas
has some code that performs some pseudorandom dummy accesses to the shared RAM to
make black box attacks even more difficult.
&lt;/p&gt;
&lt;p&gt;
To clarify a question about the other protected games, having the World Rally dallas
code does not help to emulate the protection of them.&amp;nbsp; As MAME now has a DS5002FP
core and the other games are almost fully emulated, if we get the dallas code for
a game, it will be playable quickly.
&lt;/p&gt;
&lt;p&gt;
Finally, I want to thank to all the people that made this possible. It was cool to
be part of this. It has brought me some good memories and healed my wounds with Gaelco.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update&lt;/strong&gt;: &lt;a href="http://www.gaelco.com"&gt;Gaelco&lt;/a&gt;&amp;nbsp;made public
the ROMs for World Rally. You can get them from &lt;a href="http://www.gaelco.com"&gt;their
web page&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
For reference here are all the posts about World Rally emulation:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx"&gt;Part
1&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx"&gt;Part
2&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx"&gt;Part
3&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx"&gt;Part
4&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
&lt;hr&gt;
&lt;br&gt;
La emulación del World Rally está completada. He implementado las prioridades (que
han sido más difíciles de lo que pensaba), los focos y sombras, y algún detalle que
faltaba del hardware gráfico. A continuación se muestran unas pantallas del driver: 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic5.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic3.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic4.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic7.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrpic6.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Es completamente&amp;nbsp; jugable sin que haya podido observar ningún problema. Pensé
que había algún fallo en la emulación del hardware gráfico cuando vi esto:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Así que enchufé mi placa y la comparé al driver:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Como se observa, el problema también está presente en el juego original. Debido a
la forma en la que funciona un monitor de recreativa, el pequeño fallo gráfico es
prácticamente inapreciable en el juego original. También comprobé si el juego original
hacía el mismo “efecto de sombra” de los puentes:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/gfx_problem2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Como se puede apreciar, el hardware funciona de esa manera:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/pcb_pic2.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Algo curioso sobre la protección… Javier le dijo a ElSemi que la desarrollar protección
del juego llevó 8 meses de trabajo. Inmaginad cómo de complicada es la protección…
Incluso el dallas tiene código para realizar accesos pseudoaleatorios a la memoria
compartido con el único motivo de hacer que los ataques de tipo caja negra sean incluso
más difíciles.
&lt;/p&gt;
&lt;p&gt;
Sobre la pregunta de si tener el código del dallas para el World Rally sirve para
emular la protección de los otros juegos, la respuesta es que no. Se necesita el código
de cada uno para hacerlo funcionar. Como ahora el MAME ya dispone de un emulador de
DS5002FP y los juegos de Gaelco protegidos están ya emulados completamente, una vez
que obtengamos el código del dallas para un juego, será jugable rápidamente.
&lt;/p&gt;
&lt;p&gt;
Por último, me gustaría darle las gracias a toda la gente que ha hecho esto posible.
Ha sido muy interesante poder formar parte de esto. Me ha traído muy gratos recuerdos
y ha cerrado viejas heridas con Gaelco.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Actualización&lt;/strong&gt;: &lt;a href="http://www.gaelco.com"&gt;Gaelco&lt;/a&gt;&amp;nbsp;ha
hecho públicas las ROMs del World Rally. Puedes obtenerlas desde &lt;a href="http://www.gaelco.com"&gt;su
página web&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
A modo de referencia, aquí están todas las noticias sobre la emulación del World Rally:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx"&gt;Parte
1&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx"&gt;Parte
2&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx"&gt;Parte
3&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx"&gt;Parte
4&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=51ac1b35-5246-4e8c-9ee6-41334480a54e" /&gt;</description>
      <comments>http://www.manuelabadia.com/blog/CommentView,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx</comments>
      <category>Games;MAME</category>
    </item>
    <item>
      <trackback:ping>http://www.manuelabadia.com/blog/Trackback.aspx?guid=c7e7ab2e-fea4-4642-a9b7-e43a063662f1</trackback:ping>
      <pingback:server>http://www.manuelabadia.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.manuelabadia.com/blog/CommentView,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx</wfw:comment>
      <wfw:commentRss>http://www.manuelabadia.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c7e7ab2e-fea4-4642-a9b7-e43a063662f1</wfw:commentRss>
      <slash:comments>9</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This post is first in english and then in spanish.<br />
Esta noticia está primero en inglés y luego en castellano.
</p>
        <p>
Javier sent us (via ElSemi) detailed information about how the encryption process
worked. However, he told us that the sheets of paper that contained the encryption
info were a bit difficult to read in some places (remember that this protection was
designed 15 years ago) so probably there was some mistakes in the excel file he sent
us. ElSemi and I tried to add it with the information he gave us but we didn’t have
success. <a href="http://mamelife.blogspot.com/">Nicola Salmoria</a> did an excellent
work (as always) consolidating the information and obtaining the missing information.
He generated a working decryption function that not only works for World Rally, but
also for Squash and Thunder Hoop.
</p>
        <p>
Mike Coates also completed the interface to get the data from a World Rally PCB, so
he was able to supply the encrypted/decrypted data that was needed to get the specific
details to decrypt World Rally properly.
</p>
        <p>
Special mention to <a href="http://andreasnaive.blogspot.com/">Andreas Naive</a> too.
The high level information Javier told us a few days ago was already discovered by
Andreas and posted in his page a couple of months ago. Before Javier sent us detailed
information about how the encryption worked I contacted Andreas Naive about the encryption
and he told me that he didn’t have free time at the moment to look at it. However
he told me an intuition he had about the algorithm:
</p>
        <p>
"I remember that my last feeling was that to decipher each 16 bits block, it was done
in 3 chunks: a first 6 bits chunk and then two 5 bits chunks, each of them based in
a/some bits of the first chunk. I don't remember exactly which ones, but the first
chunk was the one with a simple structure (based on the tables I published), while
the other two were the ones that shown a more complex structure (and carry effects)".<br />
He was completely right as that was how it worked the encryption that Javier sent
us.<br />
 <br />
It is good to have geniouses around ;-)
</p>
        <p>
After adding the decryption to the driver the game looks like this:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0000.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0001.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0002.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0003.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0005.png" border="0" />
        </p>
        <p>
It has a few graphic glitches that will be fixed soon but it seems to be PLAYABLE ;-)
</p>
        <p>
          <strong>Update:</strong> more progress has been made. You can read about it <a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx"><font color="#003399">here</font></a></p>
        <p>
          <hr />
        </p>
        <p>
        </p>
        <p>
Javier nos ha mandado (via ElSemi) información detallada sobre cómo funciona el proceso
de encriptación. Sin embargo, las hojas donde tenía detallado el funcionamiento del
algoritmo eran difíciles de leer en algunos sitios (ya que la protección fue diseñada
hace 15 años) por lo que probablemente habría alguna errata en el fichero Excel que
nos mandó.  ElSemi y yo intentamos en vano añadir la información de Javier. <a href="http://mamelife.blogspot.com/">Nicola
Salmoria</a> ha realizado un trabajo excelente (como siempre) terminando de pulir
esa información y descubrir los detalles que faltaban. El ha implementado una función
de desencriptación que funciona no solo para el World Rally, sino también para el
Squash y el Thunder Hoop.
</p>
        <p>
Mike Coates terminó el interfaz para obtener datos de la placa del World Rally, suministrando
valores encriptados y sus correspondientes valores desencriptados, que permitieron
obtener los datos específicos necesarios para la correcta desencriptación del World
Rally.
</p>
        <p>
Mención especial a <a href="http://andreasnaive.blogspot.com/">Andreas Naive</a>.
La información de alto nivel que Javier nos dio hace unos días ya había sido descubierta
por Andreas, que la publicó en su página hace unos meses. Antes de que Javier nos
diera la información detallada sobre cómo funcionaba la encriptación, contacté con
Andreas Naive sobre el tema. Me dijo que ahora mismo no tenía tiempo disponible para
mirarlo. Sin embargo, me dijo que tenía un pálpito:
</p>
        <p>
“Al descifrar cada bloque de 16 bits, se hacía en tres trozos: un primer bloque de
6 bits y luego dos bloques de 5 bits, cada uno de ellos basados en un/unos bits del
primer bloque. No recuerdo cuáles eran cuáles, pero el primer bloque era el que tenía
una estructura más sencilla (según las tablas que publiqué), mientras que los otros
dos son los que mostraban estructura más compleja (y efectos de acarreo debidos a
alguna suma).”
</p>
        <p>
El algoritmo que nos había mandado Javier funciona exactamente de esa forma.
</p>
        <p>
Está bien estar rodeado de genios ;-)
</p>
        <p>
Después de añadir el algoritmo para desencriptar los datos, el juego mostraba este
aspecto:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0000.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0001.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0002.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0003.png" border="0" />
        </p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/0005.png" border="0" />
        </p>
        <p>
El juego tiene algunos fallos gráficos que se corregirán pronto pero es JUGABLE (lo
poco que he probado) ;-)
</p>
        <p>
          <strong>Update:</strong> se ha completado la emulación del World Rally. Puedes
leer sobre ello <a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx"><font color="#003399">aquí</font></a></p>
        <img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=c7e7ab2e-fea4-4642-a9b7-e43a063662f1" />
      </body>
      <title>Playable status reached</title>
      <guid isPermaLink="false">http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx</guid>
      <link>http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx</link>
      <pubDate>Sat, 10 May 2008 18:52:23 GMT</pubDate>
      <description>&lt;p&gt;
This post is first in english and then in spanish.&lt;br&gt;
Esta noticia está primero en inglés&amp;nbsp;y luego en castellano.
&lt;/p&gt;
&lt;p&gt;
Javier sent us (via ElSemi) detailed information about how the encryption process
worked. However, he told us that the sheets of paper that contained the encryption
info were a bit difficult to read in some places (remember that this protection was
designed 15 years ago) so probably there was some mistakes in the excel file he sent
us. ElSemi and I tried to add it with the information he gave us but we didn’t have
success. &lt;a href="http://mamelife.blogspot.com/"&gt;Nicola Salmoria&lt;/a&gt; did an excellent
work (as always) consolidating the information&amp;nbsp;and obtaining the missing information.
He generated a working decryption function that not only works for World Rally, but
also for Squash and Thunder Hoop.
&lt;/p&gt;
&lt;p&gt;
Mike Coates also completed the interface to get the data from a World Rally PCB, so
he was able to supply the encrypted/decrypted data that was needed to get the specific
details to decrypt World Rally properly.
&lt;/p&gt;
&lt;p&gt;
Special mention to&amp;nbsp;&lt;a href="http://andreasnaive.blogspot.com/"&gt;Andreas Naive&lt;/a&gt;&amp;nbsp;too.
The high level information Javier told us a few days ago was already discovered by
Andreas and posted in his page a couple of months ago. Before Javier sent us detailed
information about how the encryption worked I contacted Andreas Naive about the encryption
and he told me that he didn’t have free time at the moment to look at it. However
he told me an intuition he had about the algorithm:
&lt;/p&gt;
&lt;p&gt;
"I remember that my last feeling was that to decipher each 16 bits block, it was done
in 3 chunks: a first 6 bits chunk and then two 5 bits chunks, each of them based in
a/some bits of the first chunk. I don't remember exactly which ones, but the first
chunk was the one with a simple structure (based on the tables I published), while
the other two were the ones that shown a more complex structure (and carry effects)".&lt;br&gt;
He was completely right as that was how it worked the encryption that Javier sent
us.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
It is good to have geniouses around ;-)
&lt;/p&gt;
&lt;p&gt;
After adding the decryption to the driver the game looks like this:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0000.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0001.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0002.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0003.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0005.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
It has a few graphic glitches that will be fixed soon but it seems to be PLAYABLE&amp;nbsp;;-)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; more progress has been made. You can read about it &lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx"&gt;&lt;font color=#003399&gt;here&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Javier nos ha mandado (via ElSemi) información detallada sobre cómo funciona el proceso
de encriptación. Sin embargo, las hojas donde tenía detallado el funcionamiento del
algoritmo eran difíciles de leer en algunos sitios (ya que la protección fue diseñada
hace 15 años) por lo que probablemente habría alguna errata en el fichero Excel que
nos mandó.&amp;nbsp; ElSemi y yo intentamos en vano añadir la información de Javier. &lt;a href="http://mamelife.blogspot.com/"&gt;Nicola
Salmoria&lt;/a&gt; ha realizado un trabajo excelente (como siempre) terminando de pulir
esa información y descubrir los detalles que faltaban. El ha implementado una función
de desencriptación que funciona no solo para el World Rally, sino también para el
Squash y el Thunder Hoop.
&lt;/p&gt;
&lt;p&gt;
Mike Coates terminó el interfaz para obtener datos de la placa del World Rally, suministrando
valores encriptados y sus correspondientes valores desencriptados, que permitieron
obtener los datos específicos necesarios para la correcta desencriptación del World
Rally.
&lt;/p&gt;
&lt;p&gt;
Mención especial a&amp;nbsp;&lt;a href="http://andreasnaive.blogspot.com/"&gt;Andreas Naive&lt;/a&gt;.
La información de alto nivel que Javier nos dio hace unos días ya había sido descubierta
por Andreas, que la publicó en su página hace unos meses. Antes de que Javier nos
diera la información detallada sobre cómo funcionaba la encriptación, contacté con
Andreas Naive sobre el tema. Me dijo que ahora mismo no tenía tiempo disponible para
mirarlo. Sin embargo, me dijo que tenía un pálpito:
&lt;/p&gt;
&lt;p&gt;
“Al descifrar cada bloque de 16 bits, se hacía en tres trozos: un primer bloque de
6 bits y luego dos bloques de 5 bits, cada uno de ellos basados en un/unos bits del
primer bloque. No recuerdo cuáles eran cuáles, pero el primer bloque era el que tenía
una estructura más sencilla (según las tablas que publiqué), mientras que los otros
dos son los que mostraban estructura más compleja (y efectos de acarreo debidos a
alguna suma).”
&lt;/p&gt;
&lt;p&gt;
El algoritmo que nos había mandado Javier funciona exactamente de esa forma.
&lt;/p&gt;
&lt;p&gt;
Está bien estar rodeado de genios ;-)
&lt;/p&gt;
&lt;p&gt;
Después de añadir el algoritmo para desencriptar los datos, el juego mostraba este
aspecto:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0000.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0001.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0002.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0003.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/0005.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
El juego tiene algunos fallos gráficos que se corregirán pronto pero es JUGABLE (lo
poco que he probado) ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; se ha completado la emulación del World Rally.&amp;nbsp;Puedes
leer sobre ello&amp;nbsp;&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,51ac1b35-5246-4e8c-9ee6-41334480a54e.aspx"&gt;&lt;font color=#003399&gt;aquí&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=c7e7ab2e-fea4-4642-a9b7-e43a063662f1" /&gt;</description>
      <comments>http://www.manuelabadia.com/blog/CommentView,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx</comments>
      <category>Games;MAME</category>
    </item>
    <item>
      <trackback:ping>http://www.manuelabadia.com/blog/Trackback.aspx?guid=6aff4d5b-3e22-4a5d-af35-22dc8293e2f9</trackback:ping>
      <pingback:server>http://www.manuelabadia.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.manuelabadia.com/blog/CommentView,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx</wfw:comment>
      <wfw:commentRss>http://www.manuelabadia.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=6aff4d5b-3e22-4a5d-af35-22dc8293e2f9</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This post is first in English and then in Spanish<br />
Esta noticia está primero en inglés y luego en español
</p>
        <p>
The Dallas DS5002FP core is complete. The additions to the 8051 core are:
</p>
        <p>
- Extra Special Function Registers<br />
- Byte-wide Bus Support<br />
- Memory Partition and Memory Range<br />
- Bootstrap Configuration<br />
- Power Fail Interrupt<br />
- Timed Access<br />
- Stop Mode<br />
- Idle Mode
</p>
        <p>
I didn’t bother to add support for Peripherals, the Reprogrammable Peripheral Controller
or CRC-16 support because it isn’t used by the game.
</p>
        <p>
The communication between the Dallas and the main CPU seems to be working, however,
the game writes some bytes to the encrypted Video RAM, it reads them back and then
makes some calls based on the decrypted data. As the current decryption is wrong,
the game doesn’t work yet and never uses the dallas for anything interesting right
now.
</p>
        <p>
The decryption of the Video RAM is in the same state as it was. However, ElSemi asked
Javier for information about the decryption and he is trying to help us. He didn’t
remember how it was performed but we send him the information we got about it in 2002
(when Mike connected the PCB to the fluke) to refresh a bit his memory. Thanks to
that, he gave us another point of view about how the encryption may work. Even if
he is right, we still need to get data from the original PCB. Hopefully, somewhere
in the process we end up with a clean decrypt function that uses no tables.
</p>
        <p>
Understanding some code I was able to guess some decrypted values and get this:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrallypres.png" border="0" />
        </p>
        <p>
 
</p>
        <p>
It looks really ugly as the colors for the tiles aren’t decrypted properly but this
finally confirms that World Rally uses the same Video Hardware as Target Hits. The
only change seems to be the additional palette entries for the night races. I have
seen how the palette was configured in a night race and I have an idea of how the
palette works for the night races (not very different from World Rally 2), but we’ll
have to wait until the game works to implement it.
</p>
        <p>
So, the current status is that if the Video RAM is decrypted properly and we are lucky,
the game should work without the light effects (and maybe some priority problems)
and be playable. If we are not that lucky, hopefully the problems are not difficult
to find and fix.
</p>
        <p>
          <strong>Update:</strong> more progress has been made. You can read about it <a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx">here</a></p>
        <p>
          <hr />
        </p>
        <p>
        </p>
        <p>
El emulador del Dallas DS5002FP está completado. Lo que se ha añadido al emulador
del 8051es:
</p>
        <p>
- Registros de funciones especiales (SFRs) extra<br />
- Soporte del Byte-wide bus<br />
- Partición y Rango de memoria<br />
- Configuration de arranque<br />
- Interrupción por falta de energía<br />
- Acceso temporizado<br />
- Modo Stop<br />
- Modo Idle
</p>
        <p>
No he añadido soporte de periféricos ni el Controlador Reprogramable de Periféricos,
porque no son usados por el juego.
</p>
        <p>
La comunicación entre el Dallas y la CPU principal parece estar funcionando correctamente.
Sin embargo, el juego escribe algunos bytes a la memoria de Video encriptada, luego
los lee desencriptados y hace unos saltos dependiendo del valor desencriptado. Como
la desencriptación actual es incorrecta, el juego sigue sin funcionar todavía y no
utiliza el dallas para nada interesante todavía.
</p>
        <p>
La desencriptación de la memoria de Video sigue igual. Sin embargo, ElSemi le ha pedido
a Javier información sobre la encriptación y nos está tratando de ayudar. Javier no
recordaba cómo funcionaba la encriptación por lo que le hemos mandado la información
que obtuvimos en 2002 (cuando Mike conectó la placa al fluke) para refrescar su memoria.
Gracias a ello, Javier nos ha dado otro punto de vista de cómo podría funcionar la
encriptación. Aún si está en lo cierto, con lo que nos ha dicho aún necesitamos obtener
datos de la placa original. Con un poco de suerte, en algún momento terminaremos con
una función de desencriptación clara que no usa tablas.
</p>
        <p>
Entendiendo un poco de código he podido intuir unos cuantos valores desencriptados
y obtener esto:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrallypres.png" border="0" />
        </p>
        <p>
 
</p>
        <p>
Se ve realmente feo porque los colores de los bloques no están desencriptados correctamente
pero esto confirma finalmente que el World Rally utiliza el mismo hardware gráfico
que el Target Hits. El único cambio son unas entradas adicionales de la paleta para
las carreras nocturnas. He podido ver como se configuraba la paleta en una carrera
nocturna y tengo una idea de cómo va (parecido al World Rally 2), pero habrá
que esperar a que el juego funcione para poder implementarlo.
</p>
        <p>
Por lo tanto, el estado actual es que si la RAM de Video se desencripta correctamente
y tenemos un poco de suerte, el juego debería funcionar sin los efectos de luz (y
quizás con algún problema de prioridades), pero sería jugable. Si no somos tan afortunados,
con un poco más de trabajo encontraremos y arreglaremos los problemas que surjan.
</p>
        <p>
          <strong>Actualización:</strong> se ha avanzado un poco más. Puedes leer sobre
ello <a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx">aquí</a></p>
        <img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=6aff4d5b-3e22-4a5d-af35-22dc8293e2f9" />
      </body>
      <title>More World Rally news</title>
      <guid isPermaLink="false">http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx</guid>
      <link>http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx</link>
      <pubDate>Wed, 07 May 2008 06:18:05 GMT</pubDate>
      <description>&lt;p&gt;
This post is first in English and then in Spanish&lt;br&gt;
Esta noticia está primero en inglés y luego en español
&lt;/p&gt;
&lt;p&gt;
The Dallas DS5002FP core is complete. The additions to the 8051 core are:
&lt;/p&gt;
&lt;p&gt;
- Extra Special Function Registers&lt;br&gt;
- Byte-wide Bus Support&lt;br&gt;
- Memory Partition and Memory Range&lt;br&gt;
- Bootstrap Configuration&lt;br&gt;
- Power Fail Interrupt&lt;br&gt;
- Timed Access&lt;br&gt;
- Stop Mode&lt;br&gt;
- Idle Mode
&lt;/p&gt;
&lt;p&gt;
I didn’t bother to add support for Peripherals, the Reprogrammable Peripheral Controller
or CRC-16 support because it isn’t used by the game.
&lt;/p&gt;
&lt;p&gt;
The communication between the Dallas and the main CPU seems to be working, however,
the game writes some bytes to the encrypted Video RAM, it reads them back and then
makes some calls based on the decrypted data. As the current decryption is wrong,
the game doesn’t work yet and never uses the dallas for anything interesting right
now.
&lt;/p&gt;
&lt;p&gt;
The decryption of the Video RAM is in the same state as it was. However, ElSemi asked
Javier for information about the decryption and he is trying to help us. He didn’t
remember how it was performed but we send him the information we got about it in 2002
(when Mike connected the PCB to the fluke) to refresh a bit his memory. Thanks to
that, he gave us another point of view about how the encryption may work. Even if
he is right, we still need to get data from the original PCB. Hopefully, somewhere
in the process we end up with a clean decrypt function that uses no tables.
&lt;/p&gt;
&lt;p&gt;
Understanding some code I was able to guess some decrypted values and get this:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrallypres.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
It looks really ugly as the colors for the tiles aren’t decrypted properly but this
finally confirms that World Rally uses the same Video Hardware as Target Hits. The
only change seems to be the additional palette entries for the night races. I have
seen how the palette was configured in a night race and I have an idea of how the
palette works for the night races (not very different from World Rally 2), but we’ll
have to wait until the game works to implement it.
&lt;/p&gt;
&lt;p&gt;
So, the current status is that if the Video RAM is decrypted properly and we are lucky,
the game should work without the light effects (and maybe some priority problems)
and be playable. If we are not that lucky, hopefully the problems are not difficult
to find and fix.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; more progress has been made. You can read about it &lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx"&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
El emulador del Dallas DS5002FP está completado. Lo que se ha añadido al emulador
del 8051es:
&lt;/p&gt;
&lt;p&gt;
- Registros de funciones especiales (SFRs) extra&lt;br&gt;
- Soporte del Byte-wide bus&lt;br&gt;
- Partición y Rango de memoria&lt;br&gt;
- Configuration de arranque&lt;br&gt;
- Interrupción por falta de energía&lt;br&gt;
- Acceso temporizado&lt;br&gt;
- Modo Stop&lt;br&gt;
- Modo Idle
&lt;/p&gt;
&lt;p&gt;
No he añadido soporte de periféricos ni el Controlador Reprogramable de Periféricos,
porque no son usados por el juego.
&lt;/p&gt;
&lt;p&gt;
La comunicación entre el Dallas y la CPU principal parece estar funcionando correctamente.
Sin embargo, el juego escribe algunos bytes a la memoria de Video encriptada, luego
los lee desencriptados y hace unos saltos dependiendo del valor desencriptado. Como
la desencriptación actual es incorrecta, el juego sigue sin funcionar todavía y no
utiliza el dallas para nada interesante todavía.
&lt;/p&gt;
&lt;p&gt;
La desencriptación de la memoria de Video sigue igual. Sin embargo, ElSemi le ha pedido
a Javier información sobre la encriptación y nos está tratando de ayudar. Javier no
recordaba cómo funcionaba la encriptación por lo que le hemos mandado la información
que obtuvimos en 2002 (cuando Mike conectó la placa al fluke) para refrescar su memoria.
Gracias a ello, Javier nos ha dado otro punto de vista de cómo podría funcionar la
encriptación. Aún si está en lo cierto, con lo que nos ha dicho aún necesitamos obtener
datos de la placa original. Con un poco de suerte, en algún momento terminaremos con
una función de desencriptación clara que no usa tablas.
&lt;/p&gt;
&lt;p&gt;
Entendiendo un poco de código he podido intuir unos cuantos valores desencriptados
y obtener esto:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrallypres.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Se ve realmente feo porque los colores de los bloques no están desencriptados correctamente
pero esto confirma finalmente que el World Rally utiliza el mismo hardware gráfico
que el Target Hits. El único cambio son unas entradas adicionales de la paleta para
las carreras nocturnas. He podido ver como se configuraba la paleta en una carrera
nocturna y tengo una idea de cómo&amp;nbsp;va (parecido al World Rally 2), pero habrá
que esperar a que el juego funcione para poder implementarlo.
&lt;/p&gt;
&lt;p&gt;
Por lo tanto, el estado actual es que si la RAM de Video se desencripta correctamente
y tenemos un poco de suerte, el juego debería funcionar sin los efectos de luz (y
quizás con algún problema de prioridades), pero sería jugable. Si no somos tan afortunados,
con un poco más de trabajo&amp;nbsp;encontraremos y arreglaremos los problemas que surjan.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Actualización:&lt;/strong&gt; se ha avanzado un poco más.&amp;nbsp;Puedes leer sobre
ello &lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx"&gt;aquí&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=6aff4d5b-3e22-4a5d-af35-22dc8293e2f9" /&gt;</description>
      <comments>http://www.manuelabadia.com/blog/CommentView,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx</comments>
      <category>Games;MAME</category>
    </item>
    <item>
      <trackback:ping>http://www.manuelabadia.com/blog/Trackback.aspx?guid=c20ef5fd-9018-4b83-bba6-63ce3edb5ba5</trackback:ping>
      <pingback:server>http://www.manuelabadia.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.manuelabadia.com/blog/CommentView,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx</wfw:comment>
      <wfw:commentRss>http://www.manuelabadia.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c20ef5fd-9018-4b83-bba6-63ce3edb5ba5</wfw:commentRss>
      <slash:comments>19</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This post is first in English and then in Spanish<br />
Esta noticia está primero en inglés y luego en español
</p>
        <p>
If you have tried to execute World Rally since it was added to MAME you have seen
the precarious state of the driver. The protection of World Rally is double:
</p>
        <p>
          <strong>Encrypted Video RAM:</strong>
        </p>
        <p>
The encrypted Video RAM transforms a 32 bits value written to it to another value
that is really complex to derive from the original value. This protection was also
used in Thunder Hoop and Squash. Mike Coates connected a fluke to his PCBs and got
a 4 GB file will all possible combinations (2^32) for Thunder Hoop and Squash. 
Using that file, the encryption process was replicated.  However, it was not
very practical to require a 16 GB file to run the game. Nicola Salmoria studied
the file and generated some code (about 400 lines) that replicated the original encryption.
That’s why you can play Thunder Hoop and Squash.
</p>
        <p>
Why World Rally encryption is incomplete? All of us wanted to see World Rally running
before any other game, so we started studying World Rally before Squash and Thunder
Hoop. In that time, we thought that the encryption was only performed in 16 bits,
not 32. Unfortunately, when Mike got all decrypted values (2^16), the code was clearly
showing that the decrypted values were not correct in most cases (for example, one
of the methods that draws the tiles uses a decrypted value for the number of tiles
to draw. That’s why the power on self test results and other screens look horrible
right now).  After we find that out, the decryption efforts were centered in
the other games. As World Rally was not going to be playable unless the dallas code
was dumped (something that seemed unlikely), it has remained that way.
</p>
        <p>
          <strong>Dallas DS5002FP secure MCU:</strong>
        </p>
        <p>
The Dallas MCU in the Gaelco games has some critical code that handles inputs, objects
manipulation and other complex calculations that prevent the game from working properly
(Take a look at World Rally 2 if you don’t know what I mean). The DS5002FP MCU has
been one of the best chips for protecting information on its era making emulation
of these games impossible for now. There are some specialized labs that claim to be
able to get the code from a DS5002FP but it is an incredibly expensive process we
can’t afford.
</p>
        <p>
I have to admit that I thought that I’d never see World Rally emulated, as I approached
some people at Gaelco and Zigurat for the Dallas code without luck. However, the other
day I received an email that changed my mind. Miguel Angel Horna (ElSemi) did a talk
at Lleida Lan Party about emulation. At the party he met one of the Gaelco founders
(Javier Valero) that was there to speak about the arcade game industry. ElSemi and
Javier talked about the protection in some Gaelco games and Javier was kind enough
to provide the dallas code for World Rally. With the internal code of the DS5002FP
it is just a matter of time to finally have a working driver in MAME.
</p>
        <p>
I have been completely inactive from <a href="http://mamedev.org/">MAME</a> development
for a while but as I worked on the drivers of all the Gaelco 2D games (except Master
Boy) and I spent a lot of time and money on them, I thought it was a good time to
resume my work on MAME. 
</p>
        <p>
Mike Coates is trying to get all the possible values from World Rally Video RAM so
we can advance in that area too.
</p>
        <p>
Currently I am writing a DS5002FP core to run the dallas code. The DS5002FP is just
a 8051 MCU with some additions and as MAME already has a 8051 core things are going
fast. For example, the initial coprocessor test works (although it is a trivial test
to pass without the dallas code):
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrally1.png" border="0" />
        </p>
        <p>
Also, adding the Power Fail Interrupt of the dallas I managed to see this screen that
is supposed to be seen when the dallas is dying:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrally2.png" border="0" />
        </p>
        <p>
After the both protections are emulated the driver will need more work as probably
the video hardware emulation isn’t complete and needs some tweaks here and there but
I’m confident that World Rally will be playable in a not so distant future. I don’t
know if Javier will give us more dallas code or not, but hats off to him for this
one. Also, thanks a lot to ElSemi for being able to get the dallas code from him.
</p>
        <p>
          <strong>Update:</strong> more progress has been made. You can read about it <a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx">here</a></p>
        <p>
          <hr />
        </p>
        <p>
        </p>
        <p>
Si has tratado de ejecutar el World Rally desde que fue añadido al MAME habrás visto
el estado tan precario del driver. La protección del World Rally es doble:
</p>
        <p>
          <strong>Memoria de Video Encriptada:</strong>
        </p>
        <p>
La memoria de video encriptada transforma los valores de 32 bits que se escriben en
ella, de forma que el valor resultante es extremadamente difícil de obtenerlo dado
el valor original. Esta protección también se utilizó en el Thunder Hoop y en el Squash.
Mike Coates conecto un fluke a su placa y obtuvo un archivo de 4 GB con todas las
combinaciones posibles (2^32). Usando ese archivo, se pudo replicar la encriptación.
Sin embargo, no era muy práctico necesitar un archivo de 16 GB para ejecutar
el juego. Nicola Salmoria estudió el archivo y obtuvo un código (cerca de 400 líneas)
que obtenía los mismos valores de la encriptación. Por ello se puede jugar al Thunder
Hoop y al Squash actualmente.
</p>
        <p>
¿Por qué la encriptación del World Rally está incompleta? Todos queríamos ver el World
Rally funcionando antes que cualquier otro juego, por lo que empezamos a estudiar
el World Rally antes que el Squash y el Thunder Hoop. En esa época, pensábamos que
la encriptación solo era de 16 bits, no de 32. Cuando Mike obtuvo los valores desencriptados
(2^16) pudimos comprobar la cruda realidad. El código mostraba claramente que los
valores desencriptados no eran correctos en la mayoría de los casos (por ejemplo,
uno de los métodos que dibuja los fondos de las pantallas usa un valor desencriptado
como el número de bloques a dibujar. Por eso la carta de ajuste inicial que muestra
los resultados de los tests iniciales se ve tan mal actualmente). Después de percatarnos
de nuestro error, los esfuerzos se centraron en el resto de juegos. Como el World
Rally no iba a ser jugable a no ser que el código del dallas se obtuviera  (cosa
que parecía altamente improbable), se ha mantenido como estaba.
</p>
        <p>
          <strong>Microcontrollador Dallas DS5002FP:</strong>
        </p>
        <p>
El Microcontrolador Dallas en los juegos de Gaelco contiene código crítico que maneja
la entradas de los jugadores, la manipulación de objetos u otros cálculos complejos
que hacen que los juegos no funcionen correctamente (prueba el World Rally 2 si no
sabes a lo que me refiero). El DS5002FP ha sido uno de los chips con más éxito a la
hora de proteger información en su época, haciendo que la emulación de estos juegos
fuera imposible. Hay laboratorios especializados que presumen de poder obtener el
código de un DS5002FP pero es un proceso increíblemente caro que no nos podemos permitir.
</p>
        <p>
Debo admitir que pensé que nunca vería el Word Rally emulado, ya que contacté con
varias personas de Gaelco y Zigurat preguntando por el código del Dallas pero no hubo
suerte en ese momento. Sin embargo, el otro día recibí un email que me hizo cambiar
de opinión. Miguel Angel Horna (ElSemi) dio una charla en la Lleida Lan Party sobre
emulación. En la party conoció a uno de los fundadores de Gaelco (Javier Valero) que
estaba allí para hablar acerca de la industria de los juegos recreativos. ElSemi y
Javier hablaron sobre la protección en algunos juegos de Gaelco y Javier tuvo el detalle
de dar el código del dallas que usa el World Rally. Con el código interno del DS5002FP
es sólo una cuestión de tiempo de que finalmente el juego pueda funcionar correctamente
en el MAME.
</p>
        <p>
He estado completamente inactivo en el desarrollo de cosas para el <a href="http://mamedev.org/">MAME</a> bastante
tiempo, pero como trabajé en los drivers de todos los juegos 2D de Gaelco (excepto
el Master Boy) y me he dejado un montón de tiempo y dinero en ellos, he pensado que
sería un buen momento para trabajar un poco más en el MAME.
</p>
        <p>
Mike Coates está tratando de obtener los posibles valores de la memoria encriptada
del World Rally para ir avanzando en ese aspecto.
</p>
        <p>
Por mi parte, estoy escribiendo un core para el procesador DS5002FP de forma que se
pueda ejecutar el código del dallas en MAME. El DS5002FP es un microcontrolador 8051
con ligeros cambios, y como ya hay un core del 8051 en MAME, la cosa avanza rápido.
Por ejemplo, las comprobaciones iniciales del coprocesador funcionan (aunque es un
test tan sencillo, que se puede parchear sin tener el código del dallas, pero bueno):
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrally1.png" border="0" />
        </p>
        <p>
Emulando la interrupción de fallo de tension del dallas, he conseguido ver esta pantalla
que se muestra cuando se le acaba la pila al dallas y su contenido deja de funcionar:
</p>
        <p>
          <img src="http://www.manuelabadia.com/blog/content/binary/wrally2.png" border="0" />
        </p>
        <p>
Después de que ámbas protecciones hayan sido emuladas el driver necesitara un poco
más de trabajo porque probablemente la emulación de video requiera unas mejoras pero
estoy convencido de que el World Rally será jugable en un futuro no muy lejano. No
se si Javier nos pasará más códigos del dallas para otros juegos o no, pero me quito
el sombrero por lo que ya nos ha dado. Muchísimas gracias a ElSemi por conseguir el
código del Dallas.
</p>
        <p>
          <strong>Actualización:</strong> se ha avanzado un poco más. Puedes leer sobre
ello <a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx">aquí</a></p>
        <img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=c20ef5fd-9018-4b83-bba6-63ce3edb5ba5" />
      </body>
      <title>World Rally, finally</title>
      <guid isPermaLink="false">http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx</guid>
      <link>http://www.manuelabadia.com/blog/PermaLink,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx</link>
      <pubDate>Mon, 05 May 2008 19:19:39 GMT</pubDate>
      <description>&lt;p&gt;
This post is first in English and then in Spanish&lt;br&gt;
Esta noticia está primero en inglés y luego en español
&lt;/p&gt;
&lt;p&gt;
If you have tried to execute World Rally since it was added to MAME you have seen
the precarious state of the driver. The protection of World Rally is double:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Encrypted Video RAM:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The encrypted Video RAM transforms a 32 bits value written to it to another value
that is really complex to derive from the original value. This protection was also
used in Thunder Hoop and Squash. Mike Coates connected a fluke to his PCBs and got
a 4 GB file will all possible combinations (2^32) for Thunder Hoop and Squash.&amp;nbsp;
Using that file, the encryption process was replicated.&amp;nbsp; However, it was not
very practical to require a&amp;nbsp;16 GB file to run the game. Nicola Salmoria studied
the file and generated some code (about 400 lines) that replicated the original encryption.
That’s why you can play Thunder Hoop and Squash.
&lt;/p&gt;
&lt;p&gt;
Why World Rally encryption is incomplete? All of us wanted to see World Rally running
before any other game, so we started studying World Rally before Squash and Thunder
Hoop. In that time, we thought that the encryption was only performed in 16 bits,
not 32. Unfortunately, when Mike got all decrypted values (2^16), the code was clearly
showing that the decrypted values were not correct in most cases (for example, one
of the methods that draws the tiles uses a decrypted value for the number of tiles
to draw. That’s why the power on self test results and other screens look horrible
right now).&amp;nbsp; After we find that out, the decryption efforts were centered in
the other games. As World Rally was not going to be playable unless the dallas code
was dumped (something that seemed unlikely), it has remained that way.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dallas DS5002FP secure MCU:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The Dallas MCU in the Gaelco games has some critical code that handles inputs, objects
manipulation and other complex calculations that prevent the game from working properly
(Take a look at World Rally 2 if you don’t know what I mean). The DS5002FP MCU has
been one of the best chips for protecting information on its era making emulation
of these games impossible for now. There are some specialized labs that claim to be
able to get the code from a DS5002FP but it is an incredibly expensive process we
can’t afford.
&lt;/p&gt;
&lt;p&gt;
I have to admit that I thought that I’d never see World Rally emulated, as I approached
some people at Gaelco and Zigurat for the Dallas code without luck. However, the other
day I received an email that changed my mind. Miguel Angel Horna (ElSemi) did a talk
at Lleida Lan Party about emulation. At the party he met one of the Gaelco founders
(Javier Valero) that was there to speak about the arcade game industry. ElSemi and
Javier talked about the protection in some Gaelco games and Javier was kind enough
to provide the dallas code for World Rally. With the internal code of the DS5002FP
it is just a matter of time to finally have a working driver in MAME.
&lt;/p&gt;
&lt;p&gt;
I have been completely inactive from &lt;a href="http://mamedev.org/"&gt;MAME&lt;/a&gt; development
for a while but as I worked on the drivers of all the Gaelco 2D games (except Master
Boy) and I spent a lot of time and money on them, I thought it was a good time to
resume my work on MAME. 
&lt;/p&gt;
&lt;p&gt;
Mike Coates is trying to get all the possible values from World Rally Video RAM so
we can advance in that area too.
&lt;/p&gt;
&lt;p&gt;
Currently I am writing a DS5002FP core to run the dallas code. The DS5002FP is just
a 8051 MCU with some additions and as MAME already has a 8051 core things are going
fast. For example, the initial coprocessor test works (although it is a trivial test
to pass without the dallas code):
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrally1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Also, adding the Power Fail Interrupt of the dallas I managed to see this screen that
is supposed to be seen when the dallas is dying:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrally2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
After the both protections are emulated the driver will need more work as probably
the video hardware emulation isn’t complete and needs some tweaks here and there but
I’m confident that World Rally will be playable in a not so distant future. I don’t
know if Javier will give us more dallas code or not, but hats off to him for this
one. Also, thanks a lot to ElSemi for being able to get the dallas code from him.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; more progress has been made. You can read about it &lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx"&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;hr&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Si has tratado de ejecutar el World Rally desde que fue añadido al MAME habrás visto
el estado tan precario del driver. La protección del World Rally es doble:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Memoria de Video Encriptada:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
La memoria de video encriptada transforma los valores de 32 bits que se escriben en
ella, de forma que el valor resultante es extremadamente difícil de obtenerlo dado
el valor original. Esta protección también se utilizó en el Thunder Hoop y en el Squash.
Mike Coates conecto un fluke a su placa y obtuvo un archivo de 4 GB con todas las
combinaciones posibles (2^32). Usando ese archivo, se pudo replicar la encriptación.
Sin embargo, no era muy práctico necesitar un archivo de&amp;nbsp;16 GB para ejecutar
el juego. Nicola Salmoria estudió el archivo y obtuvo un código (cerca de 400 líneas)
que obtenía los mismos valores de la encriptación. Por ello se puede jugar al Thunder
Hoop y al Squash actualmente.
&lt;/p&gt;
&lt;p&gt;
¿Por qué la encriptación del World Rally está incompleta? Todos queríamos ver el World
Rally funcionando antes que cualquier otro juego, por lo que empezamos a estudiar
el World Rally antes que el Squash y el Thunder Hoop. En esa época, pensábamos que
la encriptación solo era de 16 bits, no de 32. Cuando Mike obtuvo los valores desencriptados
(2^16) pudimos comprobar la cruda realidad. El código mostraba claramente que los
valores desencriptados no eran correctos en la mayoría de los casos (por ejemplo,
uno de los métodos que dibuja los fondos de las pantallas usa un valor desencriptado
como el número de bloques a dibujar. Por eso la carta de ajuste inicial que muestra
los resultados de los tests iniciales se ve tan mal actualmente). Después de percatarnos
de nuestro error, los esfuerzos se centraron en el resto de juegos. Como el World
Rally no iba a ser jugable a no ser que el código del dallas se obtuviera&amp;nbsp; (cosa
que parecía altamente improbable), se ha mantenido como estaba.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Microcontrollador Dallas DS5002FP:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
El Microcontrolador Dallas en los juegos de Gaelco contiene código crítico que maneja
la entradas de los jugadores, la manipulación de objetos u otros cálculos complejos
que hacen que los juegos no funcionen correctamente (prueba el World Rally 2 si no
sabes a lo que me refiero). El DS5002FP ha sido uno de los chips con más éxito a la
hora de proteger información en su época, haciendo que la emulación de estos juegos
fuera imposible. Hay laboratorios especializados que presumen de poder obtener el
código de un DS5002FP pero es un proceso increíblemente caro que no nos podemos permitir.
&lt;/p&gt;
&lt;p&gt;
Debo admitir que pensé que nunca vería el Word Rally emulado, ya que contacté con
varias personas de Gaelco y Zigurat preguntando por el código del Dallas pero no hubo
suerte en ese momento. Sin embargo, el otro día recibí un email que me hizo cambiar
de opinión. Miguel Angel Horna (ElSemi) dio una charla en la Lleida Lan Party sobre
emulación. En la party conoció a uno de los fundadores de Gaelco (Javier Valero) que
estaba allí para hablar acerca de la industria de los juegos recreativos. ElSemi y
Javier hablaron sobre la protección en algunos juegos de Gaelco y Javier tuvo el detalle
de dar el código del dallas que usa el World Rally. Con el código interno del DS5002FP
es sólo una cuestión de tiempo de que finalmente el juego pueda funcionar correctamente
en el MAME.
&lt;/p&gt;
&lt;p&gt;
He estado completamente inactivo en el desarrollo de cosas para el &lt;a href="http://mamedev.org/"&gt;MAME&lt;/a&gt; bastante
tiempo, pero como trabajé en los drivers de todos los juegos 2D de Gaelco (excepto
el Master Boy) y me he dejado un montón de tiempo y dinero en ellos, he pensado que
sería un buen momento para trabajar un poco más en el MAME.
&lt;/p&gt;
&lt;p&gt;
Mike Coates está tratando de obtener los posibles valores de la memoria encriptada
del World Rally para ir avanzando en ese aspecto.
&lt;/p&gt;
&lt;p&gt;
Por mi parte, estoy escribiendo un core para el procesador DS5002FP de forma que se
pueda ejecutar el código del dallas en MAME. El DS5002FP es un microcontrolador 8051
con ligeros cambios, y como ya hay un core del 8051 en MAME, la cosa avanza rápido.
Por ejemplo, las comprobaciones iniciales del coprocesador funcionan (aunque es un
test tan sencillo, que se puede parchear sin tener el código del dallas, pero bueno):
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrally1.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Emulando la interrupción de fallo de tension del dallas, he conseguido ver esta pantalla
que se muestra cuando se le acaba la pila al dallas y su contenido deja de funcionar:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.manuelabadia.com/blog/content/binary/wrally2.png" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Después de que ámbas protecciones hayan sido emuladas el driver necesitara un poco
más de trabajo porque probablemente la emulación de video requiera unas mejoras pero
estoy convencido de que el World Rally será jugable en un futuro no muy lejano. No
se si Javier nos pasará más códigos del dallas para otros juegos o no, pero me quito
el sombrero por lo que ya nos ha dado. Muchísimas gracias a ElSemi por conseguir el
código del Dallas.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Actualización:&lt;/strong&gt; se ha avanzado un poco más.&amp;nbsp;Puedes leer sobre
ello&amp;nbsp;&lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,6aff4d5b-3e22-4a5d-af35-22dc8293e2f9.aspx"&gt;aquí&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=c20ef5fd-9018-4b83-bba6-63ce3edb5ba5" /&gt;</description>
      <comments>http://www.manuelabadia.com/blog/CommentView,guid,c20ef5fd-9018-4b83-bba6-63ce3edb5ba5.aspx</comments>
      <category>Games;MAME</category>
    </item>
    <item>
      <trackback:ping>http://www.manuelabadia.com/blog/Trackback.aspx?guid=06f3713c-2978-4f13-9c53-1bcfbd55a0b2</trackback:ping>
      <pingback:server>http://www.manuelabadia.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.manuelabadia.com/blog/PermaLink,guid,06f3713c-2978-4f13-9c53-1bcfbd55a0b2.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.manuelabadia.com/blog/CommentView,guid,06f3713c-2978-4f13-9c53-1bcfbd55a0b2.aspx</wfw:comment>
      <wfw:commentRss>http://www.manuelabadia.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=06f3713c-2978-4f13-9c53-1bcfbd55a0b2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Andreas Naive, the spanish guy behind one of the greatest decryption jobs of all time,
the <a href="http://en.wikipedia.org/wiki/CPS-2">Capcom Play System 2 (CPS2)</a>,
has done it again!
</p>
        <p>
In a really short period of time, and with virtually no data to work with, he was
able to crack the <a href="http://en.wikipedia.org/wiki/CPS-3">CPS3</a> encryption.
You can read how it happened in his blog (spanish only):
</p>
        <p>
          <a href="http://andreasnaive.blogspot.com/">http://andreasnaive.blogspot.com/</a>
        </p>
        <p>
If you don't speak spanish, probably you will not understand anything. Don't worry,
even if I'm spanish it is very difficult to follow his conversations because he's
a genious and a step for him could be 4 or 5 steps for a "normal person".
</p>
        <p>
Congrats Andrea.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=06f3713c-2978-4f13-9c53-1bcfbd55a0b2" />
      </body>
      <title>CPS3 decrypted</title>
      <guid isPermaLink="false">http://www.manuelabadia.com/blog/PermaLink,guid,06f3713c-2978-4f13-9c53-1bcfbd55a0b2.aspx</guid>
      <link>http://www.manuelabadia.com/blog/PermaLink,guid,06f3713c-2978-4f13-9c53-1bcfbd55a0b2.aspx</link>
      <pubDate>Mon, 11 Jun 2007 06:17:04 GMT</pubDate>
      <description>&lt;p&gt;
Andreas Naive, the spanish guy behind one of the greatest decryption jobs of all time,
the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/CPS-2"&gt;Capcom Play System 2 (CPS2)&lt;/a&gt;,
has done it again!
&lt;/p&gt;
&lt;p&gt;
In a really short period of time, and with virtually no data to work with, he was
able to crack the &lt;a href="http://en.wikipedia.org/wiki/CPS-3"&gt;CPS3&lt;/a&gt; encryption.
You can read how it happened in his blog (spanish only):
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://andreasnaive.blogspot.com/"&gt;http://andreasnaive.blogspot.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
If you don't speak spanish, probably you will not understand anything. Don't worry,
even if I'm spanish it is very difficult to follow his conversations because he's
a genious and a step for him could be 4 or 5 steps for a "normal person".
&lt;/p&gt;
&lt;p&gt;
Congrats Andrea.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=06f3713c-2978-4f13-9c53-1bcfbd55a0b2" /&gt;</description>
      <comments>http://www.manuelabadia.com/blog/CommentView,guid,06f3713c-2978-4f13-9c53-1bcfbd55a0b2.aspx</comments>
      <category>MAME</category>
    </item>
    <item>
      <trackback:ping>http://www.manuelabadia.com/blog/Trackback.aspx?guid=a44d4086-0b51-4a94-93c0-313f51ecb86e</trackback:ping>
      <pingback:server>http://www.manuelabadia.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.manuelabadia.com/blog/PermaLink,guid,a44d4086-0b51-4a94-93c0-313f51ecb86e.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.manuelabadia.com/blog/CommentView,guid,a44d4086-0b51-4a94-93c0-313f51ecb86e.aspx</wfw:comment>
      <wfw:commentRss>http://www.manuelabadia.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a44d4086-0b51-4a94-93c0-313f51ecb86e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Nicola Salmoria was able to decrypt a complete CPS2 game algorithmically without using
any table!
</p>
        <p>
Well, to be fair Andreas Naive played a key role here. Andreas started with the Feistel
Network theory and lead the break out. It is amazing what you can get making two genius
work together!
</p>
        <p>
In case you haven't heard of Andreas, he's a very clever spanish guy that also helped
to reverse engineer the DSP-1 chip used in Mario Kart and the S-DD1 used in Star Ocean.
</p>
        <p>
There are some pieces of the puzzle to complete to fully understand the encryption
but having reached that far it can only get better ;-)
</p>
        <p>
Take a detailed look at their blogs to know more about this amazing achievement!
</p>
        <p>
          <a href="http://andreasnaive.blogspot.com/">http://andreasnaive.blogspot.com/</a>
        </p>
        <p>
          <a href="http://mamelife.blogspot.com/">http://mamelife.blogspot.com/</a>
        </p>
        <p>
Hats off to you guys!<br /></p>
        <img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=a44d4086-0b51-4a94-93c0-313f51ecb86e" />
      </body>
      <title>CPS2 Encryption (almost) understood!</title>
      <guid isPermaLink="false">http://www.manuelabadia.com/blog/PermaLink,guid,a44d4086-0b51-4a94-93c0-313f51ecb86e.aspx</guid>
      <link>http://www.manuelabadia.com/blog/PermaLink,guid,a44d4086-0b51-4a94-93c0-313f51ecb86e.aspx</link>
      <pubDate>Tue, 09 Jan 2007 23:44:38 GMT</pubDate>
      <description>&lt;p&gt;
Nicola Salmoria was able to decrypt a complete CPS2 game algorithmically without using
any table!
&lt;/p&gt;
&lt;p&gt;
Well, to be fair Andreas Naive played a key role here. Andreas started with the Feistel
Network theory and lead the break out. It is amazing what you can get making two genius
work together!
&lt;/p&gt;
&lt;p&gt;
In case you haven't heard of Andreas, he's a very clever spanish guy that also helped
to reverse engineer the DSP-1 chip used in Mario Kart and the S-DD1 used in Star Ocean.
&lt;/p&gt;
&lt;p&gt;
There are some pieces of the puzzle to complete to fully understand the encryption
but having reached that far it can only get better ;-)
&lt;/p&gt;
&lt;p&gt;
Take a detailed look at their blogs to know more about this amazing achievement!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://andreasnaive.blogspot.com/"&gt;http://andreasnaive.blogspot.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://mamelife.blogspot.com/"&gt;http://mamelife.blogspot.com/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Hats off to you guys!&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.manuelabadia.com/blog/aggbug.ashx?id=a44d4086-0b51-4a94-93c0-313f51ecb86e" /&gt;</description>
      <comments>http://www.manuelabadia.com/blog/CommentView,guid,a44d4086-0b51-4a94-93c0-313f51ecb86e.aspx</comments>
      <category>Games;MAME</category>
    </item>
  </channel>
</rss>