Seguimos dando caña a MAME debug. Esta vez para alterar PACMAN y ver como es posible sustituir nombres en juegos. No solamente nombres, en realidad bastantes cosas.
Esto permite traducir juegos. En este caso PACMAN.
Seguimos en la línea con otro post más sobre MAME.
Comenzamos 😀
Necesitamos unas cuantas herramientas. Todas son software.
- Tener mame instalado:
# apt-get install mame
- Tener instalado un editor hexadecimal:
# apt-get install le
- Disponer de la rom de pacman:
$ wget "https://56k.es/wp-content/uploads/2021/05/pacman.zip"
Una vez tengamos todo eso hemos de tener en cuenta esto:
– Mame es el emulador que con el argumento -debug nos permitirá buscar palabras una vez cargamos una rom.
– Pacman es la ROM del juego que queremos alterar. Necesitaremos descomprimirlo ya que suelen venir empaquetadas en .zip
– le es un editor de texto plano que con el argumento -h permite editar archivos binarios mostrando el contenido en hexadecimal.
VAMOS A LA MANDANGA YA
# apt-get install mame le
Eso instala el editor de texto y el emulador.
$ mkdir /tmp/pacman/
$ mkdir /tmp/pacman/original
$ mkdir /tmp/pacman/alterado
$ cd /tmp/pacman/original/
$ wget "https://56k.es/wp-content/uploads/2021/05/pacman.zip"
$ unzip pacman.zip -d /tmp/pacman/alterado/
Eso nos bajará la rom de pacman en el directorio /tmp/pacman/original/ y la descomprimirá en /tmp/pacman/alterado/ para que posteriormente podamos alterar el juego.
Vamos a ejecutar el juego original:
$ mame pacman -rompath /tmp/pacman/original/
Veremos algo como esto:
Si no metemos monedas (se meten con la tecla 5) lo veremos. Luego cuando metemos moneda elegimos el player (1, 2, …) pulsando 1 o 2 para multiplayer. Lo normal es jugar solo pulsando 1.
Salimos pulsando ESC.
Lo interesante de lo que hemos visto
Los nombres «Blinky, Pinky, Inky, Clyde» son los nombres de los fantasmas: en.wikipedia.org/wiki/Ghosts_(Pac-Man)
Curiosamente tienen un color asignado:
Son colores que podríamos asemejar a los colores de partidos políticos en España:
ROJO – PSOE
PINK – UPYD
CYAN/BLUE = PP
ORANGE = CIUDADANOS
Faltan unos cuantos. Verdes, morados, etc… pero para lo que queremos hacer va sirviendo :).
Salimos del juego pulsando ESC (Escape) y comenzamos a juankear a nuestro gusto.
JUANKEANDO A NUESTRA MANERA
No se si alguien dudaba que el motivo de querer alterar juegos no era otro que no tener que programar de 0 muchos clásicos y poder adecuarlos a situaciones políticas actuales.
Este tipo de posts tienen una finalidad muy clara: alterar juegos. Mostrar como hacerlo.
Alterar juegos clásicos que la gente tiene en su cabeza es una forma de transgredir y poder adecuarlos a un nuevo estado, a una nueva narración. Todo con poco esfuerzo (comparado con desarrollarlos de 0). El motivo por tanto no es ridículo. Aprender a alterar juegos de maquinas recreativas nos permite poder crear nuevas versiones de esos juegos e inventar narraciones diferentes.
Ejemplo:
Somos un nuevo partido político. Tenemos que comer el coco al resto de partidos sobre determinados temas. El resto de partidos son los fantasmas que nos persiguen por los pasillos del congreso. Escapar de que nos coman la cabeza supone seguir pantalla a pantalla ir progresando en los objetivos que persigue nuestro nuevo partido político. LETS GO !
Las narraciones de estos juegos
Suelen ser rescatar a una princesa, no morir, matar a lo que se mueva, … y poco más. Modificarlos por tanto nos permite añadir una nueva narrativa que permita al jugador vivir y disfrutar del mismo juego metiéndose en un personaje que maneja. Si no fuese pacman podríamos alterar al player para que rescatase a un príncipe y fuese el personaje una princesa o ser cualquiera y su finalidad es dar con el príncipe para no rescatarlo. Por ejemplo escupirle, destronarle, etc…
Todo cabe. La idea es alterar el juego. Tú inventas la narración.
VAMOS DE VERDAD A JUANKEAR PACMAN LEÑES
Ejecutamos el juego con el argumento -debug que se lo pasamos a mame:
$ mame pacman -rompath /tmp/pacman/original/ -debug
Allí podemos usar la ayuda para ver que comandos podemos usar. Por ejemplo:
help find
Y usar:
find 0,10000,"BLINKY"
Nos dará la dirección en memoria en la que podemos encontrar la palabra BLYNKY.
Control+M y nos vamos a la ventana en la que podemos ver la memoria y posicionarnos:
Esto está bien. Pero hemos de encontrar eso en los archivos del juego y alterarlo antes de ejecutar el juego para que si lo alteramos sea un cambio permanente, es decir, si cambiamos los nombres de los fantasmas por partidos políticos hemos de hacerlo sobre los archivos de la rom para que al ejecutar el juego salgan.
BUSCANDO CON STRINGS Y DESCOMPRIMIENDO LA ROM
Nos vamos al directorio en el que tenemos la ROM descomprimida:
$ cd /tmp/pacman/alterado/
$ ls
Y «grepeamos» (con strings podemos igualmente. si no lo tenemos lo instalamos):
$ grep "BLINKY"
* Coincidencia en el fichero binario pacman.6j
Nos dice que encuentra la palabra BLINKY en pacman.6j
Abrimos el archivo con «le» así:
$ le -h pacman.6j
Amigo/a ya sabes en que archivo está la mandanga que quieres alterar. Has de alterarla con un editor binario. Un editor que permita mostar ese archivo binario en hexadecimal. En este post hemos optado por «le» con el argumento -h.
Editar el archivo es usar la tecla «insert» bien. y vas alterando.
Para alterar puedes usar un conversor de ascci-to-text : www.rapidtables.com/convert/number/ascii-to-hex.html
La cosa es alterar las posiciones de las letras por otras letras. El espacio puede ser 40 en hex.
Una vez realizado guardas cambios. Puedes usar control + x y seleccionar guardar si crees que lo has alterado bien.
Esto requiere un poco de practicar con el editor.
Una vez alterado comprimes a zip y ejecutas.
FANTA EN HEXADECIMAL: 46 41 4e 54 41
Y para no alargar una captura:
Se ha de grabar (control + x ) y luego comprimir en zip. Y ejecutar el nuevo zip.
Con eso y más trabajo tendríamos un pacman de partidos políticos.
Saludos cordiales.