No pasaría de una mera anécdota si no fuera porque la han liado bien gorda. Todos conocemos a Atari, la otrora empresa de videojuegos líder del sector que hoy es casi una mera distribuidora de videojuegos. Hace un tiempo, Atari compró la empresa “Humongous Entertainment”, responsable de juegos de tipo “aventuras gráficas” para niños. Esa empresa era responsable de juegos como “Freddi fish”, “SPY Fox” o “Pajama Sam”, y Atari ha decidido reeditarlos para Wii. No pasaría de ser un “port” más para wii de otros tantos, si no fuera porque las cosas no se han hecho bien. Es más, se han hecho demasiado mal.
El juego ya está en las tiendas, y gracias a algunas herramientas algunos curiosos han podido sacar el “ejecutable” que viene con el juego. La sorpresa ha sido que se han encontrado con código perteneciente al proyecto “ScummVM”, conocido por muchos de nosotros por emular gran parte de las aventuras gráficas de antaño, entre las que se encuentran los juegos indicados al inicio. Ya está mal coger algo sin avisar, pero en este caso es código que está bajo licencia GPL (ojo, será gratis, pero no puedes hacer lo que te de la gana), que choca con las licencias de Nintendo. Ahora paso a explicar un poco más a fondo qué ha pasado, para los que queráis ver el artículo original, aquí tenéis el enlace:
Como dijo descartes vayamos por partes:
¿Qué es la GPL?
Quizás hayáis oído de ella al mirar algún readme de emuladores o si estáis metidos en el mundillo de Linux. La GNU GPL (GNU General Public License , o Licencia Pública General de GNU), es una licencia que se creó para protejer los derechos de libre distribución, modificación y uso del software libre. No quiero darle más vueltas, pero a grandes rasgos, la licencia GPL proteje los derechos anteriores de la siguiente manera:
- Obliga a que cualquier proyecto basado en un código existente bajo la licencia GPL, sea a su vez GPL
- Obliga a distribuir el código fuente modificado junto con el binario (bueno, aquí hay varias opciones, la idea es que esté disponible de alguna forma)
- Obliga a mantener la lista de todos los que han participado en el proyecto hasta ese momento. Es decir, si modificas algo y creas una nueva versión, deben aparecer los anteriores participantes.
A grandes rasgos, esa es la idea de la GPL. No he puesto todo, ya que algunas partes dependen de la versión de GPL que estemos tratando, y que la licencia es un poco larga. En este caso, scummvm está bajo la GPLv2, aquí tenéis el enlace a la licencia que viene junto con ScummVM:
Licencia
¿Qué hizo Atari?
Atari contrató a Majesco Entertainment, para que creara el port de su juego original. Majesco Entertainment, a su vez subcontrató a la empresa Mistic Soft, que fue la que hizo el trabajo final. Bueno, no exactamente. A ellos les suministraron el código fuente de los juegos originales, gráficos, etc… para que pudieran reproducir su trabajo sobre wii. Sin embargo ellos prefirieron tomar otro rumbo.
La Wii lleva un procesador PowerPc, y eso suele dar problemas a la hora de portar código de PC (normalmente X86). Según parece, el intérprete original podría tener problemas con eso, así que en vez de lidiar y resolver los problemas (hacer el port del juego, que era lo que les estaban pidiendo) decidieron que era más fácil coger el código de ScummVM (funciona perfectamente en powerpc). Hacer eso es relativamente más fácil, teniendo en cuenta que:
- Ya hay un port de ScummVM para wii
- El código de ScummVM es bastante fácil de configurar para otras plataformas
- Ellos contaban con el SDK de Nintendo
- Se les estaba pagando para ese trabajo, así que le podían dar una dedicación a tiempo completo
Según Sev, uno de los encargados del proyecto ScummVM, les debería haber llevado 2 semanas si le dedicaban todo el tiempo a eso.
¿Cómo los descubrieron?
Como ya os he comentado, es posible sacar el ejecutable de un juego de Wii, así que algunos desarrolladores curiosos decidieron ver qué había en ese ejecutable. La sorpresa fue que se encontraron muchas partes del código de ScummVM. La verdad es que demostrar que un código ha sido robado es una tarea bastante difícil. Tened en cuenta que lo más normal es encontrarse con “código máquina” dentro del ejecutable. Para que lo veáis más claro, os pongo los pasos para crear el ejecutable:
- Primero los programadores escriben el código fuente del programa en cuestión. Ese código es una serie de líneas de texto escritas en el lenguaje de programación que se desee usar (normalmente en C o C++).
- Después se traduce a código máquina. Ese paso se llama “compilar el código”, y se usa un programa llamado compilador. Ese compilador es el encargado de leer una linea de texto del programa escrito por el programador, y traducirlo al “idioma” que hablan las máquinas. Ese idioma consiste en una serie de instrucciones del lenguaje ensamblador (el de más bajo nivel para la máquina) ya traducidas al código que use el procesador en cuestión. Si no lo habéis entendido, dejadlo en que está en código binario.
Se puede recuperar el código fuente original en texto(más o menos) usando desensambladores. Esos programas se encargan de coger el código máquina y traducirlo a código ensamblador, algo más o menos entendible por el ser humano. Eso permitiría averiguar si un código está basado en otro anterior. Cuando se pusieron manos a la obra, encontraron suficientes pruebas:
- Cadenas de texto haciendo referencia al equipo ScummVM (que curiosamente estaba vacío)
- Cadenas de texto de debug, que hacían referencia a miembros del equipo de ScummVM. En concreto “This might be broken — please report where you encountered this to Fingolfin” (Esto puede estar roto, por favor dile a Fingolfin donde lo encontraste), o “Tell sev how to reproduce it” (Dile a Sev como reproducirlo).
Además, encontraron un bug que pertenece a las versiones 0.9.0 de ScummVM (las actuales lo tienen arreglado), en las que se puede ver una mancha en el ojo del pez Freddi en una de las escenas del juego. Con todo esto tenían pruebas suficientes para demostrar que habían usado su código fuente, y que además no habían sido muy cuidadosos para ocultarlo.
Medidas legales
De momento, las vías legales están abiertas. Según cuenta Sev en su blog, lo primero que hicieron fue hablar con abogados para ver en qué situación estaban. Después de eso le enviaron una carta a Atari-Alemania para ponerles en conocimiento los hechos. Al principio lo negaron todo, seguramente debido a que ni se darían cuenta. Los que de verdad trabajaron con el juego fueron los del equipo de Mistic Soft, así que las vías intermedias hasta llegar a atari únicamente se dedicaron a testear si el juego funcionaba y ver si habría algún error grave.
Al principio Atari pensaba que les iban a demandar por violación de derechos de autor, lo que significaría desembolsar una gran suma de dinero. Lo cierto es que el equipo de ScummVM solo quería que se les reconociera su trabajo, y que añadieran lo necesario para cumplir la GPL (publicar código fuente, logos de GPL, logos de ScummVM, reconocimiento de los colaboradores que hubieran participado …). Lo cierto es que aunque se trate de software libre, no hay nada que impida que se venda (scummvm ya se vende de forma legal a través de páginas de descarga de juegos antiguos, como gog.com). En ese momento, las cosas se relajaron, ya que parecía que para Atari esa era una solución fácil y rápida… hasta que se encontraron con una de las normas de las licencias de uso del SDK de Nintendo: Prohibido usar código código libre junto con su software. Es decir, que si aceptaban el acuerdo anterior, darían la voz de alarma en Nintendo, donde sí que les podrían sacar bastante dinero.
En respuesta al equipo de ScummVM, desde Atari les intentaron hacer chantaje. La parte de ScummVM que se encarga de hacer funcionar los juegos de “Humongous Entertainment” fue creada mediante ingeniería inversa sobre el ejecutable de los juegos. Como os conté unos párrafos más arriba, se puede sacar el código fuente a partir del código máquina. Hay muchas técnicas de ingeniería inversa, unas son más legales que otras, y en caso de demostrar que se ha violado alguna licencia al crear ScummVM mediante ingeniería inversa no legal podría crear un gran problema dentro del proyecto. Por ahora, según palabras de Sev, están en el dilema de seguir adelante con la demanda (confiando en que sus médodos de ingeniería inversa han sido los más correctos) o intentar llegar a un acuerdo con Atari.
Por lo tanto, lo único claro es:
- Atari ha violado la licencia GPL
- Atari no puede acatar la licencia GPL, debido a la licencia del SDK de Nintendo
- Atari no puede ignorar al equipo de ScummVM
- ScummVM no puede relicenciarse (al menos la parte de SCUMM)
- Y el equipo de ScummVM no quiere “dinero por callarse”
Por ahora, esto es todo lo que puede hacer el equipo de ScummVM, es decir, dar la noticia para que todo el que vea los juegos Pajama Sam, Freddi Fish o SPY Fox sepa que dentro lleva el ScummVM.
Finalmente, después de pensarlo Atari ha decidido llegar a un acuerdo, que consiste en una “donación” de dinero a la fundación de Software Libre, tendrán que parar la producción de esos juegos (los que llevan el software de Scummvm), se dejará un margen de tiempo para que se vendan las copias ya hechas, y habrá que destruir todo el stock que no esté en las tiendas. Por otro lado,atari correrá con los gastos de abogados.
Así que para aquellos que busquen rarezas, aquí tienen una tirada de juegos que tienen bastante más historia de la que cuentan, y que quizás lleguen a ser uno de esos “most wanted” del catálogo de wii.
Fuentes:
Anuncios desde la página de ScummVM:
http://www.scummvm.org/news/20090623/
http://www.scummvm.org/news/20090616/
Blog de Sev:
http://sev-notes.blogspot.com/2009/06/gpl-scummvm-and-violations.html
Muy buen post, gracias!
Muy buena historia y muy bien contada. Gracias
Es impresionante que se hayan atrevido a realizar tremenda chapuza XD, en fin, las licencias están para evitar esto. El problema está en toda esa gente que piensa que el soft libre significa “gente que da su esfuerzo pa q yo me forre”, cuando realmente significa “entre todos podemos conseguir algo bueno”.
Es una pena que una empresa que lo ha sido todo para los videojuegos use hora el juego sucio para lucrase, ¡vergonzoso!.
Es lo que pasa cuando pierden el control de sus proyectos subcontratando empresas que no tienen el mínimo reparo en timar al jefe. Aun le doy vueltas con el tema de que ni siquiera se hayan molestado en quitar los comentarios de debug del scummvm. Teniendo el código fuente original, las imágenes… todo, y les da por un copy&paste tan cantoso.
Excelente, muy bueno. Que bochorno por parte de Atari.