Códigos Cheats para Manic Miner

Page 1/6
| 2 | 3 | 4 | 5 | 6

By Mustang

Resident (49)

Mustang's picture

27-04-2020, 01:57

Buenas a Todos. Como por desgracia en estos días de confinamiento obligado estamos teniendo mucho tiempo libre, me he decidido a intentar pasarme el Manic Miner que en su día fui incapaz de terminar. Y por más horas que le he echado me atranco en el mismo sitio que entonces. Tras un buen rato consigo llegar limpio a la pantalla 17, The Warehouse, y pierdo todas mis vidas en un momento sin apenas conseguir avanzar. Desesperado ya, he decidido buscar un poco de ayuda en los códigos cheats. Me he puesto a buscar y he encontrado los códigos cheats de las versiones originales de Matthew Smith para Spectrum de Bug-Byte y de Software Project que son conocidos desde los años 80. Pero no funcionan en la versión de MSX debido a que el port lo realizó Cameron Else e introdujo algunos cambios. Me he puesto a buscar como loco por todo internet y no he encontrado ni rastro de los cheats. ¿Será posible que en 36 años nadie haya averiguado los códigos todavía?. ¿En serio?. Bueno, no lo sé, yo al menos no los he encontrado, y como no pienso seguir esperando más años he cambiado durante unas horas mi Sony hit-bit 75P por el openMSX y me he puesto manos a la obra con el debugger. Tras mucho menos tiempo del que he perdido en The Warehouse he descubierto los famosos códigos secretos que, seguro que esta vez sí, por fin me van a permitir aprender a pasar esa jod.... pantalla. Os los dejo por si alguien más los ha buscado y tampoco los ha encontrado.

Para introducir los códigos, a diferencia del Spectrum, en el MSX primero hay que pulsar la tecla W para pausar el juego en cualquier momento mientras nos encontremos jugando en alguna pantalla. Después si tecleamos el código XRAYTUBEI activamos las vidas infinitas. En la parte inferior izquierda de la pantalla, debajo de las vidas, aparecerá el texto INFINITE LIVES. Pulsando cualquier tecla de cursor quitamos la pausa y volvemos al juego. Si lo que tecleamos es el código XRAYTUBEC podemos cambiar a la pantalla que queramos. En la parte inferior derecha de la pantalla aparecerá el texto CHOOSE CAVERNS. De nuevo tenemos que pulsar cualquier tecla de cursor para volver al juego. Ahora, para cambiarnos a la pantalla que queramos, debemos mantener pulsadas simultáneamente una serie de teclas numéricas y pulsar la tecla 0. Aquí también hay una diferencia con las versiones de Spectrum, pues en ellas había que pulsar la tecla 6 (Bug-Byte) o la 9 (Software Project). Las combinaciones numéricas sí que son las mismas que para spectrum y las podéis encontrar en "https://tcrf.net/Manic_Miner_(ZX_Spectrum)". Por ejemplo, para acceder a The Warehouse, hay que mantener pulsada la tecla 5 y luego pulsar el 0. Para acceder a la pantalla final, The Final Barrier, tenemos que mantener pulsadas a la vez las teclas 5,2 y 1 y por último pulsar también el 0. Curiosamente en el openMSX la combinación para acceder a las pantallas 10 (The Endorian Forest), 12 (Return of Alien Kong Beast), 14 (Skylab Landing Bay), y 16 (The Sixteenth Cavern) no me funcionan, ignoro el porqué y si es cosa de mi instalación. Lo importante es que en el Sony HitBit original sí que funcionan. Y se va a enterar The Warehouse.... la venganza será terrible.

Login or register to post comments

By J.M.F

Resident (62)

J.M.F's picture

27-04-2020, 09:26

Muchas gracias, estas cosas me gusta saberlas.

By JamesBurton

Expert (96)

JamesBurton's picture

27-04-2020, 10:27

Muchas gracias por la información. Recuerdo que cuando jugué al Manic Miner hace 30 años esa pantalla me dio bastantes dolores de cabeza, tuve que empezar el juego de nuevo muchas veces pero al final conseguí hacerla.

La que sí que odié a muerte en aquel momento (y todavía me queda el resquemor Smile ) es la pantalla 19 Solar Power Generator... el maldito rayo que atraviesa la pantalla quita muchísimo aire cuando te toca y se hace muy muy difícil completar la pantalla porque te quedas sin aire. Al menos a mí es la que más me costó pasar.

Gran juego el Manic Miner, y siempre preferiré 1000 veces la versión de MSX a la original de Spectrum. Igual me pasa con los Jet Set Willy...

By Mustang

Resident (49)

Mustang's picture

27-04-2020, 14:03

De nada. Ha sido divertido buscar los códigos. Y tuve la inestimable e inesperada ayuda del mismísimo Cameron Else. En mi infructuosa búsqueda inicial de los códigos en internet leí que Cameron había sido también el autor del port del Jet Set Willy. Y que en un vídeo en Youtube él mismo había desvelado el código para las vidas infinitas de ese juego, CUBICNATUREI que había que introducir tras pausar el juego pulsando la W. Y me dije: que te apuestas a que usó el mismo sistema en Manic Miner. Así que cargué el juego en el openMSX, lo pausé con la W y me puse a indagar con el debugger lo que hacía el juego en ese momento. Y bingo, lo que hace es un bucle en el que lee constantemente la matriz completa del teclado mediante llamadas a la función SNSMAT (#0141) de la BIOS. Luego comprueba los códigos de teclado devueltos por esa función contra una tabla situada entre las posiciones de memoria 9DC0 y 9DDB. Analizando los códigos que contiene esa tabla y buscando la pulsación de a qué tecla correspondía cada código llegué a XRAYTUBE. Finalmente el último código de teclado lo compara directamente con los códigos de pulsación de las teclas I y C y salta a la función correspondiente si todo se ha pulsado en orden. Como ya había leído también lo de las combinaciones numéricas del cheats del cambio de pantalla para la versión de Spectrum, sólo tuve que ponerme a tocar los números hasta ver que en MSX era el 0 la tecla que provoca el cambio de pantalla y que las combinaciones numéricas se correspondían con las de Spectrum.

Con los medios de hoy en día tiene poco merito descubrir estos secretillos. Lo que me sigo preguntando es cómo lo hacía la gente que descubría estos trucos (o en su defecto los cargadores con los pokes necesarios) en los años 80. Eso sí que era ser un auténtico crack. Me gustaría saber qué herramientas y métodos utilizaban para ello.

¿En serio que la pantalla 19 es mucho más difícil?. Anda que iba a poder pasarme entonces el juego sin los cheats....

By JamesBurton

Expert (96)

JamesBurton's picture

27-04-2020, 14:14

Para mí lo fue pero como cada persona es un mundo a lo mejor en tu caso es la 17 y una vez que pases de ella el resto del juego será un paseo Smile

By osises

Master (251)

osises's picture

28-04-2020, 15:01

Pues si te digo la verdad, yo que toqué un poco esos temas, a veces me dedicaba a desensamblar el código a ver que encontraba.

Había varios métodos, a cual más insensato, pero buscar código era lo más práctico, cansino y pérdida de tiempo que había.

Para cachondeo, yo que siempre he sido de MSX y ni pajolera de x86, una vez me pasaron un juego de PC que quería jugar con ansia (no recuerdo cuál). Tenía un cargador que pedía unas claves que, si no acertabas, no accedías. Desensamblé el cargador, que era muy corto, y me llevé una sorpresa: El tipo que lo había programado no parecía haber hecho un buen trabajo, hacía una llamada a una rutina que debía estar ubicada en algún lugar del código y luego volvía para continuar después del salto (como un GOSUB-RETURN); así que los dos o tres códigos que eran la llamada los sustituí por NOP y BINGO, jueguecito crackeado. Te juro que no lo he vuelto a hacer en ningún otro de PC, aquello fue pura potra.

No recuerdo muchas de las cosas que hice junto a mi hermano, pero si me acuerdo de una. Me dejaron un cartucho de un pinball (creo que de Hall Laboratory) y me hice una copia que se podía cargar desde cinta. Cuál es mi sorpresa que al ejecutar la copia entraba en un modo demo que se repetía una y otra vez sin dejar hacer nada. Nos quedamos ojipláticos. Al desensamblar descubrí que el código del programa escribía sobre si mismo modificando, creo recordar, la rutina de entrada de teclado desde el menú del juego impidiendo activar una partida. Claro, en el cartucho no tenía ningún efecto debido a que la rom era de solo lectura, así que parecía una forma de decirte "eh, tu, no piratees mi juego". Una auténtica cachondez.

By Mustang

Resident (49)

Mustang's picture

28-04-2020, 19:09

Buenas Osises. Yo de PC sí que he crackeado una pila de programas de todo tipo. Y hasta más recientemente de tablets y teléfonos. Luego el programa crackeado ni lo uso, lo que me divierte es crackearlo. Pero siempre con la ayuda de debuggers, escanners y demás herramientas que te permiten ver en tiempo real qué es lo que hacen los programas, ver la memoria, ejecutar paso a paso, añadir breakpoint y watchpoint, etc., etc. O con descompiladores que te proporcionan el código fuente en un lenguaje de alto nivel. Por eso siempre me he preguntado cómo se las arreglaban en aquellos tiempos para obtener los cheats y los cargadores con los pokes que te daban vidas infinitas y demás. Porque si en un MSX no se puede utilizar un debugger para analizar un juego en tiempo real y el lenguaje que se usaba era ensamblador, ¿el único método era desensamblar todo el código y ponerte a ver manualmente línea por línea lo que hacía?. Si es así eso tenía que ser durísimo y con muy pocas probabilidades de éxito. ¿O tal vez se ponían a probar a cambiar valores en el código a voleo a ver si de potra acertaban con la variable de las vidas o los niveles?. Tampoco mejora mucho las expectativas esta otra opción, francamente. De verdad que siempre me ha intrigado.

By osises

Master (251)

osises's picture

29-04-2020, 13:33

En el caso de algún juego, no en todos por supuesto, consistía en buscar en el código un byte que coincidiese con el número de vidas (por ejemplo). Así, si al comenzar te daban 3 vidas, buscabas en el código bytes que tuviesen el 3 como valor y lo modificabas. Si tenías suerte podías encontrar el campo dónde se almacenaban estas, por lo que podías aumentarlas a gusto.

Por supuesto esto no funcionaba siempre y cuando lo hacía era después de probar mil veces, con sus fallos, hasta que dabas con la dirección correspondiente. Por el mismo método se podía acceder a fases y otras cosillas, pero eran métodos de prueba y ensayo muy rudimentarias y un tanto desesperantes.

Creo recordar que para algún otro ordenador de la época, quizás ZX Spectrum, había alguna utilidad que generaba volcados de áreas de memoria. Eso como herramienta para examinar el código podría ser muy util. ¿No había cosas así para MSX? Quizás alguien las utilizaba.

Por supuesto también está el método de desensamblar todo el código y ver como funciona el programa, pero a parte de que se tarda mucho hay que ser un figura para llegar a obtener resultados. Y estoy convencido que en su momento hubo gente que lo hacía así.

By Mustang

Resident (49)

Mustang's picture

29-04-2020, 17:29

Es interesante eso que comentas del volcado de áreas de memoria. Es posible que hubiese algo de eso y quizás otras herramientas que desconocemos. Porque lo de probar suerte cambiando bytes podrían explicar algunos cargadores para vidas como el que se publicó en los 80 para el propio Manic Miner (https://www.msxclubmagazine.be/docs/ppt1.pdf - Página 7) que cambian sólo un byte. Y lo de desensamblar y mirar el código me creo que se usara para las protecciones anticopy por ejemplo que se cargan en el inicio y son rutinas relativamente pequeñas. Pero algunos cargadores eran bien sofisticados y cambiaban un chorro de bytes. En ese mismo PDF que he puesto antes aparecen unos cuantos. Me cuesta trabajo pensar que se pudieran llegar a crear utilizando sólo esas dos técnicas tan rudimentarias. Si era así, menudos máquinas. Quizás alguien que hiciera cosas avanzadas de estas en aquella época nos pueda arrojar más luz.

By manolito74

Paragon (1300)

manolito74's picture

30-04-2020, 15:44

HOla:

A mí el tema de Búsqueda de Pokes de Vidas y esas cosas siempre me llamó la atención.

A modo de curiosidad en su día me creé un Programa en Basic que en realidad constaba de 3 Módulos/Programas independientes:

- Uno te pedía la dirección de inicio de memoria y la dirección de fin que querías buscar y qué valor querías buscar (por ejemplo 3, que solía ser el valor estándar de vidas).

- Otro te permitía grabar en un Fichero esas Posiciones de Memoria que cumplían con ese valor que buscaste.

Luego cargabas el Juego y te dejabas matar una vida y reseteabas el Ordenador. Repetías de nuevo el proceso anterior, es decir: buscabas en las mismas direcciones de memoria que al principio pero esta vez buscabas el valor 2 y lo grababas en otro Fichero.

Con esto ya tenías 2 Ficheros. Luego entraba en función un tercer módulo que lo que hacía era cargar los 2 Ficheros y comparaba las Direcciones de Memoriacoincidentes que en el primer Fichero valían 3 y en el Segundo valían 2 y a su vez podías grabar los resultados en otro Fichero. Con un poco de suerte a lo mejor te quedabas con 5-6 direcciones así que luego era cuestión de ir probando y pokeando con esas direcciones una a una y poniendo el valor 255 por ejemplo...

Si aún así al comparar esos 2 Ficheros te aparecían muchas direcciones pues tendrías que cargar el Juego, dejándote matar 2 vidas, buscar ahora el valor 1 y luego comparar con el fichero anterior hasta acotar lo máximo posible...

Problemas de este método:

- Eran Programas BASIC, con lo cual ocupaban memoria y podían machacar parte del Código del Programa. Para tratar de paliar eso y que ocuparan lo menos posible por eso opté por hacer 3 "módulos" independientes para cada Tarea y no hacer un único Programa que hiciera todo....

- Evidentemente hay Juegos, la gran mayoría, que al ejecutarse reubican la memoria con lo cual ese método no vale...

- Luego había Juegos que usaban su propia codificación-reubicación de caracteres lo que dificultaba el método...

Era muy muy rudimentario pero.... servía para aprender a Programar y para pasar la tarde entera ocupado y entretenido.... porque en mi caso sólo disponía de es e Dispositivo Externo llamado Cassette y que era lento lento lento.... y desesperante... Si de aquella hubiera tenido Unidad de Disco le podría haber sacado mucho más provecho y haber hecho muchos más Programas de ese tipo y de otro tipo.

Una curiosidad.... También me dedicaba a "destripar" el texto de los Juegos, desensamblar e intentar ver los textos para descubrir por ejemplo códigos para pasar a otras fases y me hizo mucha gracia que hubo un Juego (no recuerdo cúal), que te decía en Inglés algo así como "no intentes buscar nada aquí porque no vas a encontrar nada...."

En fin....¡bendita infancia y qué buenos ratos nos dio el MSX....! Lo único que lamento fue no haber podido tener de aquella acceso a una Unida de Disco. :-(

Saludetes. ;-)

By Mustang

Resident (49)

Mustang's picture

30-04-2020, 17:44

¡Qué buen truco Manolito74!. Ni se me había ocurrido esa posibilidad, es realmente ingenioso para limitar las búsquedas a unos pocos valores. Vaya, ya no recordaba que tras un reset los datos quedaban en memoria. Es una forma, aunque como dices sea muy, muy rudimentaria, de poder hacer un mínimo de debbuging de los datos de la memoria que maneja el juego. La idea de aprovechar que los datos permanecen tras el reset para buscar diferencias en memoria me parece brillante. Al leerlo me ha venido a la memoria que yo sí usé en su día ese truco del reset para ver y copiar de algunos juegos en Screen 5 los tiles y demás gráficos que se quedaban en las páginas de la VRAM del MSX2. Pero nunca se me ocurrió darle la utilidad que le diste tú. ¡Qué bueno!.¡Gracias por la información!.

Page 1/6
| 2 | 3 | 4 | 5 | 6