Tutorial de Hackeo de Isos/Roms genérico (8-8-07)

Este es un tutorial de action replay/gameshark/xploder/etc que he hecho para un amigo de TheTrioMaster.co.nr, tambien está posteado en:
http://www.newzonepsx.net/
http://gameland.6te.net/phpBB/
por si buscan mas informacion.

-Comienzo del tutorial-
Wenas, voy a exponer mis conocimientos lo más asequiblemente que
pueda, yo comenzé a trucar juegos gracias al XplorerFx (PSX) (la marca Xplorer luego pasó a llamarse Xploder, tema de derechos supongo ^_^U)
allá por 1999, yo tenia unos 10 años, despues
fue con un Action Replay de GBC, y así hasta ahora, cada vez los sistemas
nuevos impiden mas el que se puedan trucar los juegos a nivel de usuario
normal, y en casos como Ps2,Xbox, etc, la cosa está reservada a los
desarrolladores de cartuchos de trucos o cds (gameshark, action replay,etc)

¿que tiene de bueno aprender a trucar un juego?

Pasarte el juego sin complicaciones, facilitarte otras labores (por ejemplo si eres un traductor y no te apetece revisar un rpg con batallas cada 2 pasos)
o simplemente quieres explorar parte del juego que está oculto, como ejemplo los modo debug (para los programadores del juego)

Este tutorial quiero que sea generic
o, es decir que te valdrá para cualquier sistema que use este tipo de codigos.

cuando termine el tutorial, os pondré algunos trucos que
he sacao a lo largo del tiempo.
-----------------------------------------
Mientras tu juegas a un juego se van manejando variables, una variable
es un valor que varia (como su nombre indica) segun un estado.
por ejemplo, el en mario el tiempo, o el numero de monedas.

Pues bien un codigo, lo que hace es modificar esa variable.

¿Y como encontramos esa variable entre miles y miles?
Pues facilmente, descontando

hay 2 tipos de busquedas mas conocidos, unas son por valor conocido
y otras por valor desconocido.
los de valor conocido son mucho mas rapidos de buscar que desconocidos.

Valor conocido
Como el ejemplo de antes, tenemos el mario y tenemos
5 monedas, asi que con el buscador ponemos valor conocido
y ponemos 5 y le damos a buscar.
Eso lo que hara es que todo las variables que no tengan 5
se deshechen.
Suponiendo que aun hay muchas variables en la lista,
cogemos volvemos al juego y cogemos otra moneda,
volvemos al menu con las variables y ponemos 6.

Si se han restado y solo queda 1 o 2 codigos, pruebalos
(si puedes copiando antes los mismos en un papel por lo que pueda pasar)
Si lo has hecho bien y los has activado, al coger nuevas monedas
siempre tendrás la misma cantidad.

!Bien tu primer hackeo lo has conseguio neng! 8)

Valor Desconocido
La busqueda con el valor desconocido permite sacar codigos que no
sabemos el valor exacto que tienen, como es por ejemplo
el mario cuando le dan un toque, el momento en que está "transparente"

Para ello (poniendo de ejemplo el mario tambien), cogemos y
le damos a iniciar busqueda desconocida, ahora nos dejamos tocar con un enemigo (estando antes con mario en grande por supuesto :p)
y en el momento que esta parpadeando, vamos al menu de busqueda
rapidamente y ponemos el valor es diferente.
volvemos al juego, cuando mario este de nuevo normal, vamos de nuevo
al menu de busqueda y ponemos el valor es diferente.

asi sucesivamente hasta dar con el codigo, intentad no equivocaros
si poneis que el valor es diferente y en verdad es igual, porque sino
el codigo que buscamos tambien se descontará.

Ahora os cuento los diferentes tipos de busqueda por desconocido.
(los mas esenciales)

-El valor es mayor
-El valor es menor
-El valor es igual
-El valor es desconocido

Otro ejemplo, estamos con el resident evil, queremos energia infinita,
asi que le damos a iniciar busqueda, nos dejamos que nos muerda un zombi hasta que baje a "precaucion", ahora vamos al menu de busqueda
y ponemos "el valor es MENOR" (logico no?) ya que hemos perdido energia.
Ahora en el juego nos tomamos una hierba verde (no penseis mal xD) y recuperamos la salud, por lo tanto ahora el valor es MAYOR.

y cada vez que cambie de estado habria que ir descontando,
a veces pasa que cuesta que se descuenten, eso es porque ese valor
es muy tipico entre la "galeria de variables" por eso es recomendable
usar tambien valor igual a veces,
se da el caso en juegos que quizas tu quieres sacar el codigo de tiempo infinito y está cambiando y estás descontando poniendo el valor es diferente, y al final te salen unos 10 codigos, y uno es del tiempo
y los demas son para controlar los canales de sonido XD

eso es porque al igual que el valor del tiempo está siendo diferente
cada segundo, la musica que suena tambien lo puede ser.

Valores de los Codigos
Este punto es bastante importante, aqui explico como trabajan
los valores de las variables.

Los numeros que pongo abajo con FF, quiere decir que esos se pueden
cambiar, mas abajo pongo cuanto es cada con los mas valores mas usados.
Los valores de un codigo van segun los bytes:
1 byte (255 max valor) (usado por game boy y sistemas 8 bits)
ejemplo: 01FF0000 (8 digitos)
2 byte (65535 max valor) (usado por sistemas de 32 bits como psx)
80000000-FFFF

(los que hayan visto juegos como pokemon de gb, y alguien les haya enseñao un pokemon de nivel 255, y les decia que al subirlos un nivel
volvia a 0 ya saben porque pasa, jeje)

Los codigos trabajan en Hexadecimal, el hexadecimal
al diferencia con el sistema decimal, van del 0 a la F.
es decir.
Hex - Decimal
0 - 0
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9
A - 10
B - 11
C - 12
D - 13
E - 14
F - 15
10 - 16

etc
etc
Ahora os contaré los valores mas usados:(me acuerdo de memoria jeje)
Hex-Decimal
63-99
64-100
FF-255
03E7-999
270F-9999
FFFF-65535

estos son los valores que mas se suelen usar

ejemplos:
si sacamos un codigo de mucha exp tras batalla para un rpg, se suele usar
al final FFFF que nos dará lo maximo posible.

si trucamos el tiempo del mario, le pondriamos 03E7 y tendriamos
el tiempo siempre a 999.

-----------------------------------------------------------
Que herramientas uso para empezar?

Recomiendo empezar con el emulador Zsnes, es facil para
empezar, luego puedes probar con el Psx Emulation Cheater (pec) + Epsxe, pulsando ctrl+H durante el juego te sale el menú y puedes
buscar codigos, tambien puedes hacerlo solo con tu psx, con Xplorer FX (creo que es dificil de encontrar hoy dia)
y tambien puede probar con algun Xploder de GB, que son bastante faciles de usar

------------------------------------------------------------
Ejemplos de como sacar algunos codigos - Para finalizar el tutorial :)

-Llevar a Aeris o Sephiroth en Final Fantasy 7
Bueno esto no es tan dificil como parece (a mi parecer), simplemente
en el menu inicias una busqueda, y cambias el orden de los personajes.
y usas valor desconocido, cambiando entre unos y otros.
Hay que darse cuenta que en FF7 muchos valores van dobles,
es decir, de los 4 digitos de valor, 2 de ellos se reparten, es decir que
puede que del codigo cada par indique una posicion/personaje:

80000000-0102
| \
cloud barret
por ejemplo

hallando el codigo, cambiando esos pares de digitos,
podremos tener a los personajes que están registrados en la
base de datos del juego segun la pusieron los programadores 8)

si en el codigo ponemos de valor 0101, quiere decir que tendremos
a cloud en la primera y segunda posicion lol,
si ponemos 0202, tendremos dos barrets, aunque claro, si no hay
un cloud o tifa en el grupo seguramente se cuelge ya que
ellos no estan programados para andar como personajes en el mapa del mundo (tampoco lo sé seguro al 100% si alguien lo sabe lo podría comentar) :p

es algo similar a lo que pasa con el codigo de items del mismo juego.
2 valores indican el objeto, y los otros dos la cantidad del mismo :)
y el valor de la posicion es el anterior a los 4 digitos cambiados x 2
os sonará paranoico lo que os cuento XD

Selector de Enemigos en Batalla para Final Fantasy 6 (PS1)
Si pensamos en como puede estar creado el juego, nos daremos
cuenta que no están los enemigos solo registraos como 1, sino como
grupos, es decir que en batalla te pueden salir 2 ratas+ 1 robot
o 1 rata + 1 robot, cada uno de ellos es decidido con una variable
que cambia de valor, cada valor representa a un grupo.

El metodo de buscar es el siguiente:
Inicia batalla en el mapa del mundo por ejemplo, pon iniciar busqueda,
entra en otra batalla, si el grupo de enemigos es el mismo pon el valor es igual, entra en batallas contra enemigos diferentes y ve poniendo el valor es diferente para ir descontando.
Se puede hacer muy dificil descontar AVISO.

Por ello tienes que tener un poco de ingenio, y atreverte en momentos
por ejemplo, luchas contra 1 rata + robot, y pones el valor es diferente, luego te vas a una zona donde salen enemigos del FINAL (en el mapa del mundo) y luchas contra un dinosaurio, y pones el VALOR ES MAYOR.
En la mayoria de juegos de RPG en las bases de datos de los mismos
suelen poner los enemigos del juego mas avanzado en un valor mas alto,
aunque claro, esto no sirve siempre, puede variar segun el juego, y si
el valor de los codigos no va en base 00XX, si usa tambien los dos
valores antes de las XX esto que he mencionao del valor es mayor no
servirá...

--------------------------------------------------
Hints:

Freeze
Freeze (congelar) es como le llaman en algunas herramientas
a dejar un codigo sin que se modifique, vamos, "ON"

Imagen

Set
Set es como llamo yo y no sé si otra gente a la accion de activar
y de desactivar un codigo seguidamente, para que éste no cause
un problema.
Es el ejemplo de un codigo para entrar en un modo debug, si
no se hace Set, no podrás entrar a otras salas de la misma, ya
que el codigo hace que siempre te mande a la misma habitacion.

Usar valores de mas de 2 bytes en PSX (segun pec, 4bytes),
bueno esto me salió de casualidad, yo al no haber aprendio
esto de un libro sino de experiencia pues te pasan cosas asi jeje.
Ejemplo de un codigo:

801354D4-FFFF

Este codigo tiene 4 valores, FFFF que son 65535 en decimal,
pero supongamos que en un RPG trucamos el dinero, y queremos
tener mas de 65535 porque no nos alcanza para comprar algunas
armas.

Pues el numero anterior a los 4 valores le sumamos un 1.
se quedaria asi

801354D5-FFFF

Ahora tendriamos unos 2 millones 700 mil+
una barbaridad vamos (segun pec mas de 2 mil millones), yo recomiendo que a la hora de subir el valor
le resteis un poco a las FFFF y la pongais en E000 o algo asi
por si puede dar algun problema.

Valores relacionados (PSX)
Esto tambien lo he desarrollao yo con el tiempo,
resulta que en muchos juegos los valores estan muy cercanos.

si sacamos el codigo de HP infinito de un RPG, podemos
probar a el numero anterior a los 4 valores, sumarle 2
y es probable que obtengas el codigo de energia total es decir,
tendras el codigo de

HP 9999/9999
| \
Energia inf Energia total

asi como otras muchas variaciones, recuerda, que teniendo
un codigo de un aspecto visible del juego, cambiando valores
de 2 en 2 como he dicho antes (hacia arriba o hacia abajo)
te pueden salir cosas muy interesantes.

Yo llegé con esto hasta a tener en el Tony Hawk 2 al patinador sin cabeza
y con ésta en la rodilla XD


--------------------------------------------------
Bueno el tutorial yo lo veo completo,
lo que queda es que .uds cogan un juego e intenten trucar algunas
cosas, empezando por cosas sencillas de valor conocido, y despues de valor desconocido.
No siempre se encuentra el codigo deseado, puede llevar varias veces hacer la busqueda, tambien existen juegos protegidos contra este hackin como por ejemplo, el Star Ocean 2 The Second Story de PSX, que las variables de la energia infinita y otros aspectos, cambian cada vez que
inicias partida.
Y weno os deseo suerte

~The Legend Will Never Die~
Eternal Shadow
:wink:
Que tiempos en los que en EOL un hilo amarillismo de X es mejor que Y se caia en el olvido y los tutoriales e hilos e ayudas siempre estaban en lo mas alto.
Es una pena que ahora los hilos troll siempre este flameantes en los primeros puestos e hilos como este caigan hasta el final de la página sin un mero agradecimiento.

gadesx, enhorabuena por el curro, nunca habia visto un tuto de este tema y siempre me habia picado la curiosidad.[oki]
Yo recuerdo que saque´una vez los algoritmos de códigos del lolo2 jajaja, ya que seguian una logica demasiado aplastante..... [carcajad]

Un saludo y enhorabuena por el curro.
Aunque no tenga ni idea de este mundillo te doy mis 5 estrellas porque te has pegado un curro bastante curioso ;)
Muchas gracias por el aporte tio, voy a echar un buen vistazo
Tiene una pintaza el tema. Lastima que no ande sobrado de tiempo para trastear un rato...
Marchando una de 5 estrellas! Muy buen curro!

Salu2!
Qué lástima que estos temas se hundan en la inmensidad foril.. ;-)
A pesar de no haber trasteado nunca con codigos de este tipo e entendido perfectamente casi todo lo que decias, muy bueno, 5 estrellas
me has recordado mi epoca con el xploder y el pokemon rojo xDDD. tenia un libro de codigos para el, pero de una revista alemana, y los nombres de los pokemon estaban en aleman.y los objetos ni te cuento.

luego aprendi a usarlo con otros juegos (contra,terminator,etc) con los ke por fin pude pasarme los juegos (bendita vida infinita)


lo de buscar valor desconocido nunca se me dio bien, es muy dificil


pd: buen curre,si señor
7 respuestas