Algun mortal a visto el final de algun juego MSX?

Página 14/14
7 | 8 | 9 | 10 | 11 | 12 | 13 |

Por Manel46

Hero (647)

Imagen del Manel46

28-06-2022, 15:10

Zanac msx1, tiene un final fantástico. Pero quizás sea imposible verlo.
Lo suyo es conseguir que no se descuenten las vidas. Para ello escribir 0 en la posición #4654 de la rom.

Por manolito74

Paragon (1252)

Imagen del manolito74

01-07-2022, 19:52

Hola:

Pues pinta bien lo del Zanac. Da ganas de acabárselo (aunque sea haciendo trampas...)

Yo nunca llegué a acabarme ningún Juego (por mí mismo)

Sin embargo, recuerdo cuando jugué el Stardust (con Cargador de Vidas Infinitas) y era como que no me creía que fuera a ver el final del Juego... No sé, me pareció algo "increíble...": «¡voy a llegar al final del Juego...!, ¿qué pasará...?»

Sinceramente creo recordar que el final, bueno: estaba bien... pero sinceramente no me acuerdo mucho de como era... XD

Saludetes. ;-)

Por Manel46

Hero (647)

Imagen del Manel46

01-07-2022, 21:33

Hola manolito74:
Con este tema estuve a principios de los 90, mediante el des-ensamblador Mon. Buscar vidas infinitas en distintos juegos del msx primera generación, de 16 y 32 Kbs.
Si puede interesar, busco otros juegos que tenia parcheados y publico lo que hay que hacer.

Por manolito74

Paragon (1252)

Imagen del manolito74

01-07-2022, 21:42

Hola, @Manel46:

Ya que lo mencionas, sería interesante conocer qué Herramientas/Métodos de Trabajo sigues a la hora de buscar "pokes" a los Juegos. Siempre resulta un tema interesante. ;-)

Gracias & Saludetes. ;-)

Por Manel46

Hero (647)

Imagen del Manel46

01-07-2022, 22:03

Hola manolito74:
El Mon que venia en cinta junto al Gen (ensamblador), permitía si no recuerdo mal, modificar el código y ejecutarlo. Era todo desde cinta, eran roms pasadas a cinta, que cargaban en ram.
Se trata de localizar donde se se descuentan las vidas, y eliminar los bytes que hacen esto. Normalmente es una instrucción DEC A, o SUB 1. Entonces se sustituyen estos bytes, por NOP, o sea 0, y listos.

Por manolito74

Paragon (1252)

Imagen del manolito74

01-07-2022, 22:16

Hola de nuevo:

Ok. Muchas gracias por la info. ¿Y te funcionaba ese método?, ¿encontraste Pokes a muchos Juegos?

Gracias & Saludetes. ;-)

Por Manel46

Hero (647)

Imagen del Manel46

02-07-2022, 10:00

manolito74:
Si, encontré los pokes de bastantes juegos. Mas de 20 juegos de 32 Kbs. y algunos de 16 Kbs. No recuerdo bien.
Esto lo tengo en un un pc antiguo.
Saludos.

Por manolito74

Paragon (1252)

Imagen del manolito74

04-07-2022, 18:03

Hola de nuevo:

A modo de "curiosidad" comentar que en su día hice un "cutre Programa" con mis "cutre conocimientos de BASIC" para "automatizar" de alguna forma lo de la Búsqueda de Pokes (o al menos ayudar a "acotar" las direcciones a tener en cuenta/modificar)

El Programa era muy rudimentario y como no, en un alarde de originalidad lo llamé BPOKES.

Lo podéis descargar de aquí:

http://www.mediafire.com/file/lvohf0vlxrmyw00/Busca+Pokes.ds...

Es una imagen ".dsk" que contiene 3 versiones:

- BPOKES.BAS (Primera Versión)
- BPOKES2.BAS (Segunda Versión)
- BPOKES3.BAS (Tercera Versión)

Las 2 primeras versiones las hice por lo que veo allá por el 96... Es código en plan "guarro", todo junto, todo seguido, todo "arrejuntao"...

La Tercera Versión, sin ser ninguna maravilla, está un poco más pulida respecto al punto de vista de la Programación. Sigue siendo un "truño" y seguro que se puede mejorar muy mucho... pero usé Programación "Modular":

- BPOKES3.BAS digamos que es el Módulo Principal y luego según la opción que elijamos se llama al Módulo GRABAR (para grabar los Pokes a Fichero) o al Módulo LEER (para leer y comparar los Pokes/Direcciones de Memoria)

Nota: Tanto GRABAR como LEER son Programas en BASIC aunque no les incluí la Extensión.

Su "filosofia de funcionamiento" es:

- Cargamos el Bloque del Juego en Memoria.
- Ejecutamos el "BPOKES3.BAS"
- Buscamos en todas las direcciones que ocupa el Código del Juego el valor del número de vidas. por ejemplo 3.
- El Programa nos mostrará todas las Direcciones que cumplen ese "criterio": que almacenan el valor 3 así que grabamos esas direcciones de memoria con la opción de "GRABAR".
- Luego, cargamos el Juego y nos dejamos matar una vida. Si vuestro MSX dispone de botón de Reset haced un Reset y sino: apagad y encended el Ordenador rápidamente. Con ello se debería mantener el Código del Juego "tal cual". Así que ahora tocaría buscar todas las Direcciones de Memoria que tengan el "número de vidas menos uno", es decir buscar todas las direcciones que tienen el valor 2 y las grabamos en un Fichero.
-Luego, creo que era con la opción "LEER" lo que hace es comparar las Direcciones de nuestro primer Fichero que tenían el valor 3 y las compara con las Direcciones de nuestro segundo Fichero (las que tenían el valor 2)

De esta forma al final nos quedaremos con una (o varias) Dirección/es que cumplan ese Criterio y que "aparentemente" sería donde se almacena el número de vidas. Luego bastaría ir probando esas direcciones de memoria y por ejemplo asignarles el número 200... (con lo cual si es la dirección correcta empezaríamos el Juego con 200 vidas...)

Cuando hice el Programa lo hice pensado para usarse con y desde Cinta. NO obstante entiendo que la Versión 3 ya la preparé para usarse con y desde Disco.

Si alguien se aburre muy mucho y se atreve a probar semejante "truño" de Programa.... espero que le sirva de algo.

Como digo seguro que es muy muy mejorable. Podría compactarse más para ocupar el menor espacio de la memoria posible para que no interfiera con el Código de los Juegos e incluso programarse en Ensamblador (pero eso ya escapa a mis competencias...)

Funcionar funciona, puesto que en su día lo probé y funcionaba incluso con Juegos de Konami grabados en Cinta. Lo que me suena que había que tener en cuenta que si el Código del Juego se "reubica", habría que tener en cuenta ese "salto" a la hora de calcular las Direcciones para los Pokes.

Suerte & Saludetes. ;-)

Por Manel46

Hero (647)

Imagen del Manel46

05-07-2022, 09:01

Hola de nuevo:
Vaya curro te pegaste. Yo de basic, lo justo. Programo en lenguaje ensamblador.
Una consideración; Si se trata de una rom, aunque esté pasada a cinta, debes vuscar las memorias a partir de #C000. Las roms usan la página 3 de la ram para las variables.
Saludos.

Por manolito74

Paragon (1252)

Imagen del manolito74

05-07-2022, 18:38

¡Hola @Manel46!

Gracias por tu comentario y sugerencia. ;-)

Aquello lo programé cuando era un "pipiolo"... (ahora mismo sería incapaz de hacerlo, jajaja)

Al final acababa buscando prácticamente en toda la memoria, no sólo en las direcciones del Juego y a base de comparaciones ibas "acotando" cada vez más...

- Generaba el Fichero1 con las direcciones y valores buscados.
- Generaba el Fichero2.....
- Comparaba Fichero1 y Fichero2 y las coincidencias las guardaba creando el Fichero3.
- Luego generaba el Fichero4....
- Luego comparaba el Fichero3 y el Fichero4 con lo que lograba acotar/obtener un número de direcciones coincidentes más reducido...
- Y así "sustantivamente"...

Era todo como muy artesanal pero algunos resultados conseguía. Eso sí: te tirabas toda la tarde mientras cargabas de Cinta... (¡lo que hubiera tenido por tener una Disquetera en aquella época...!)

De paso alguna cosilla aprendía y pasaba la tarde ocupado..., jajaja

Gracias & Saludetes. ;-)

Página 14/14
7 | 8 | 9 | 10 | 11 | 12 | 13 |