27 enero 2011

GameShark, los cheats de hace algunos años

Hace algunos meses hablábamos en SbD sobre como probar un ejemplo sencillo de hacking de videojuegos. Si recordamos la publicación, se trataba de usar una herramienta para encontrar y modificar valores en memoria que cambian el comportamiento del juego según lo que deseemos. Para ello utilizábamos la herramienta Cheat Engine.

Ésto no es nada nuevo, hace bastantes años existían dispositivos capaces de hacer lo mismo en consolas clásicas. Por aquel entonces no había tantas protecciones anti-cheating, pero por otro lado la razón de existencia de los cheaters era menor ya que los juegos eran locales, no había multijugador remoto, además de que la capacidad de compartir información sobre el funcionamiento técnico era mucho más reducida y los escenarios más cerrados, por lo que el desarrollo y uso de cheats no estaba extendido de forma masiva.

Uno de estos dispositivos clásicos es GameShark, una herramienta que tuvo su boom con la Nintendo 64, y que permitía hacer algo muy parecido a lo que hace Cheat Engine. No es la única, ni para la única consola, pero puede que sea una de las más conocidas.

GameShark en versión Nintendo 64 es un cartucho que se inserta en la consola, para luego insertar el cartucho del videojuego en la parte superior. De esta forma, el dispositivo se interpone entre la consola y el videojuego.

GameShark Pro para N64

Para modificar el comportamiento de los videojuegos, GameShark modifica valores en direcciones de memoria. El propio dispositivo tiene una lista de cheats preconfigurados para bastantes títulos. También podemos crear nuestros propios cheats sabiendo una dirección de memoria y cambiando el valor por uno válido, por ejemplo:

En Star Wars: Rogue Squadron debemos completar una serie de misiones, y según nuestra calificación pueden compensarnos con una medalla (entre oro, plata y bronce). Sabiendo las direcciones de memoria en las que se aloja el valor que define la medalla en cada misión podemos modificarlas y colgarnos las medallas que queramos:

[Dirección] [Valor] [Misión]

88130B1C 00XX     Ambush at Mos Eisley
88130B1D 00XX     Rendezvou on Bankhesh
88130B1E 00XX     The Search For The Noonnah
88130B1F 00XX     Defection At Corellia
88130B20 00XX     Liberation V
88130B21 00XX     The Jade Moon
88130B22 00XX     Imperial Construction Yard
88130B23 00XX     Assault on Kile II
88130B24 00XX     Rescue on Kessel
88130B25 00XX     Prisons on Kessel
88130B26 00XX     Battle Above Taloraan
88130B27 00XX     Escape From Fest
88130B28 00XX     Blockade on Chandrila
88130B29 00XX     Raid on Sullust
88130B2A 00XX     Moff Seerdon's Revenge
88130B2B 00XX     The Battle of Calamari
88130B2C 00XX     Beggar's Canyon
88130B2D 00XX     The Death Star Trench Run
88130B2E 00XX     Battle of Hoth

Replace XX with:
00     None
01     Bronze Medal
02     Silver Medal
03     Gold Medal

Por supuesto, también tenemos los cheats clásicos para modificarnos atributos como escudo, vida, etc. Todo se basa en encontrar la dirección de memoria que guarda el valor.

[Dirección] [Valor] [Efecto]

81137E7C 4316     Extra Shields
80130B4D 007E     All Levels / Ships
80130B10 0008     Infinite Lives
8010CA32 0008     Infinite Secondary Weapons
80130B87 0063     99 Bonus Collected
80130B85 0063     99 Kills
80130B86 0063     99 Saves
81137E7C 4136     1-Hit Death
81137E7C 4316     Infinite Health


Si ésto para la mayoría de nosotros ya era "lo más" en aquella época, con GameShark Pro llegó algo mejor.

La edición Pro nos permitía hacer búsquedas de valores en la memoria y localizar sus direcciones. Con esta característica podríamos desarrollar nuestros propios cheats sin ayuda de ninguna lista de direcciones. El proceso era localizar un valor (por ejemplo, munición), buscarlo en memoria, modificar el valor (gastando algo de munición) y hacer una nueva búsqueda sobre la anterior. De esta forma encontraríamos la dirección de memoria que guarda el valor y podríamos alterarlo a nuestro gusto.

También nos permitía buscar valores que crecen o decrecen, para encontrar direcciones de memoria que no son un valor determinado visible en el juego, como por ejemplo una barra de vida.

Hay herramientas GameShark para la mayoría de consolas punteras de aquella época, para algunas más modernas, y aún siguen saliendo dispositivos que permiten tweaks para las más nuevas bajo el mismo nombre, aunque ya no tienen la potencia de antes.

- Referencias:
"How to hack like a Pro", videotutorial de Gameshark para N64 (Partes 1, 2, 3).

4 comments :

RoMaNSoFt dijo...

Qué tiempos los del "Action Replay"...

http://en.wikipedia.org/wiki/Action_Replay

Anónimo dijo...

Interesante :D

Alex Millà dijo...

Nunca llegué a tener siquiera un Action Replay en mi NES (que fue cuando salió por primera ves si no recuerdo mal) y ganas no faltaban ya que había cada jueguecito más dificil.

Aunque no he sido nunca de utilizar trucos. Ya en juegos On Line como Counter Strike por poner un juego en red a algunos daban ganas de matarlos de verdad por sus trampas.

Anónimo dijo...

Sigue habiendo grandes obras de ingeniería inversa paara videosjuegos. Las baterías Pandora para la PSP, las tarjetas R4/Acekard entre otras para DS, el Matrix Infinity para PS2 ...

El ingenio humano siempre se abre paso.