[Tutorial]Cheats de Gateway (apartir del GW soft 3.6)

Espero este intento de tutorial les sea util para hacer sus propios cheats,Ahi si en lo burdo del mismo encuentran una mejor manera de explicarlo les estare agradecido..Antes de empezar NO me hago responsable de daños en sus partidas o baneos provocados por darle mal uso a la informacion aqui proporcionada Una vez aclarado eso comencemos...

Materiales necesarios:
Una Nintendo 3ds/2ds/New3ds
Una Gateway con el update (launcher.dat en la SD de la consola) 3.6.1 de preferencia
Espacio en la SD (que va en la Gateway) preferentemente unos 300MB libres (esta memoria sera indispensable para una adecuada extraccion de nuestra RAM)
Un juego en emunand/Sysnand que deseen hackear (en este caso SMB3 de VCNes)
Una calculadora o convertidor hexagecimal (en caso de no saber como convertir valores)
Paciencia y muchas ganas de aprender

Comenzaremos encendiendo nuestra consola (mas que logico) y una vez cargada nuestra emunand (preferentemente trabajemos ahi) con nuestra GW puesta y con espacio suficiente, activaremos la seleccion de juegos pulsando select y el pad hacia arriba asi aparecera este menu:
Imagen
Procederemos a usar la combinacion de botones que mas nos acomode para activar nuestro "in game menu" y una vez seleccionadas nuestras preferencias elegiremos nuestro juego sea en formato 3ds o cia previamente instalado..
Imagen
Hecho esto comenzaremos con un cheat sencillo (aumentar vidas) y recien iniciado nuestro juego podremos visualizar este valor como podemos apreciar aqui
Imagen
Activaremos el in game menu y comenzaremos a buscar el valor de las vidas en este caso "4".seleccionaremos "Cheat finder" y de ahi "New 8bit exact search*"
Imagen
De ahi pondremos el valor a buscar,en este ejemplo el numero 4..
Imagen
Esperaremos que haga la primera busqueda y salimos de regreso al juego pulsando B varias veces..Hecho esto procederemos a jugar y dearnos eliminar para que el valor de las vidas pase a "3"
Imagen
Hecho esto volveremos al cheat finder y volveremos a buscar el valor exacto,Esta vez es 3
Imagen
Ahora nos vamos a "view hits" y podremos observar que hay varios resultados,asi que para reducirlos procederemos a repetir la operacion para que las vidas pasen a "2"
Imagen
En este caso ya solo quedo un solo resultado
Imagen
Procederemos a modificarlo pueden cambiarlo a 9 o si quieren a 99 PERO como han de saber NO podemos poner 99 como tal ya que esto podria en algunos juegos colapsar la memoria (hay juegos que NO permiten mas de cierta cantidad de vidas,objetos etc) como en el SMB1 que si pasabas de 100 vidas estas se convertian en cero (cuidado con eso)
Imagen
asi que usaremos nuestro convertidor hexagecimal y veremos que el valor Hex de 99 (este es 63),Asi cambiaremos el valor encontrado y observemos lo que ocurre
Imagen
Si el resultado es el adecuado o satisfactorio para nuestros propositos,podremos anotar la direccion en un block de notas para usos posteriores,¿Como? hacer un texto con el formato adecuado para que funcione diractamente con la GW (para no tener que estar repitiendo todo el procedimiento cada vez que se requiera)

Por el momento seria todo.. Mañana les enseño a buscar valores desconocidos (como como convertir a Mario con sus trajes)..Be happy!!

*Los valores de 8Bits van de 0 hasta FF=255
Los valores de 16Bits van ae 0 hasta FFFF=65535
Los valores de 32Bits van de 0 hasta FFFFFFFF=4294967295
Asi que depende del rango de valores a buscar tendremos que elegir la opcion adecuada..
asi que usaremos nuestro convertidor hexagecimal y veremos que el valor Hex de 99 (este es 63),Asi cambiaremos el valor encontrado y observemos lo que ocurre


No lo entiendo.
Gracias por tomarte el tiempo de hacerlo XD :)
me ha quedado algo mas claro, gracias! :D
Bueno, primer cheat encontrado. Para "Resident Evil: Revelations" el valor de 08a38ec0 son balas disponibles para la pistola, lo cambio a 1E y subo a 30 balas que es el maximo para este arma. Ahora bien, alguien sabe trasladar esto a un cheat editado???
trastorillo escribió:Bueno, primer cheat encontrado. Para "Resident Evil: Revelations" el valor de 08a38ec0 son balas disponibles para la pistola, lo cambio a 1E y subo a 30 balas que es el maximo para este arma. Ahora bien, alguien sabe trasladar esto a un cheat editado???

Bueno Hay un tuto de referencia en GBATemp en forth y creo que en los foros de GW (espero agregarlo pronto al tutorial),Solo bastaria con ponerlo tal cual (Claro viendo que este no interfiera con otro valor) Ejemplo:
[Balas]
08a38ec0 0000001E
Claro que tener valores fijos en los juegos puede ser contraproducente asi que lo recomendable seria poner un activador y activarlo cuando se necesite..
[Balas l+x+y]
DD000000 00000E00
08a38ec0 0000001E
D0000000 00000000
Como consejo (para evitar confusiones) recomiendo pongamos el ID (este lo veran en el "in game menu" y lo necesitaremos para hacer nuestro cheat) la region y version del juego (en ciertos juegos aplica) ya que aquel que quiera usarlo necesitara un ID.,.Igual recomendaria si el cheat es experimental ponerlo en negritas (para evitar malos entendidos)..Otra situacion igual es ver cual podria ser un valor maximo y experimentar (eso es prueba y error)
O si ya lo probaron y generaron, mejor pongamos el "TXT" en adjuntos para compartir el cheat (listo para usar) mas de uno lo agradecera..
Una pregunta: ¿Alguien sabe por qué el hex editor de GW empieza desde el offset 00723000?

He mirado algunos dumpeos en el PC, y encontré posibles direcciones válidas, pero están por debajo del 00723000. Es decir, puedo revisarlos en mi pc pero no modificarlos en el menu GW

Tampoco puede buscar cambios en la RAM con el menu de trucos porque se me queda pillado constantemente o soltándome mensajes de error
@Dr Katts
Supongo que seria mejor poner los codigos y que alguien los ponga todos en un solo mensaje, ya en formato txt.

Por ejemplo:
El profesor layton y la mascara de los prodigios (eur)
00040000000A8900
[Monedas encontradas]
00433FBE 000003E7
[Monedas actuales]
00433FC0 000003E7

@trastorillo
El valor de las balas cambia de posicion en cada fase, tendrias que indicar para que nivel es. Solo he mirado en 2 fases y ninguna coincide con la tuya.

@lookmeandnotouchme
En mi consola el hexeditor empieza en 008AA000, supongo que la memoria anterior es reservada para el sistema operativo, y al realizar los dumpeos los hace de la parte de la memoria que si usan los juegos.
No se que error te pone, y como no indique claramente lo que pasa, tendrias que reportarlo al grupo de gateway para que te den alguna solucion, aun asi parece un problema escribiendo en la sd, prueba a usar otra micro-SD en el cartucho gateway (si es clase 10 mejor) y ten un par de gigas libres para los archivos temporales.

@Pichake
Abres la calculadora de windows, en la pestaña ver eliges cientifica, pinchas en Dec, escribes el numero que quieres insertar en la consola y despues pinchas en Hex, y ya tienes el valor a insertar en la consola.
Dr Katts escribió:[Balas l+x+y]
DD000000 00000E00
08a38ec0 0000001E
D0000000 00000000

Aunque estoy ligeramente oxidadillo en programación, entiendo casi todo del código excepto lo que pongo en negrita.
¿Es decir 00000E00 representa la combinación de teclas l+x+y? ¿Donde viene el valor de cada combinación de botones (Entre la info de GW no encuentro esto)?
Tengo algunos códigos pero quisiera ponerles alguna combinación personalizada/distinta
lookmeandnotouchme escribió:
Dr Katts escribió:[Balas l+x+y]
DD000000 00000E00
08a38ec0 0000001E
D0000000 00000000

Aunque estoy ligeramente oxidadillo en programación, entiendo casi todo del código excepto lo que pongo en negrita.
¿Es decir 00000E00 representa la combinación de teclas l+x+y? ¿Donde viene el valor de cada combinación de botones (Entre la info de GW no encuentro esto)?
Tengo algunos códigos pero quisiera ponerles alguna combinación personalizada/distinta


Special Codes:
DD000000 XXXXXXXX – if KEYPAD has value XXXXXXXX execute next block
Special Keypad Code
As for the Special KEYPAD cheat code, the keypad value can be any combination of the following:
0x1 A
0x2 B
0x4 Select
0x8 Start
0x10 Right
0x20 Left
0x40 Up
0x80 Down
0x100 R
0x200 L
0x400 X
0x800 Y


Para los botones que quieras, solo tienes que sumar.

La ultima linea D0's no se que hace, supongo que se le colaria.
Ha salido la version 3.6.2 que soluciona cuelgues al realizar busquedas.
eXcuX escribió:Para los botones que quieras, solo tienes que sumar.

La ultima linea D0's no se que hace, supongo que se le colaria.
Ha salido la version 3.6.2 que soluciona cuelgues al realizar busquedas.

¿Sumar? Si llego a saber que era tan fácil... Gracias :)

La última linea es para marcar un "Fin de la instrucción"
El codigo de las balas lo encontre en el comienzo de la partida, en losmprimeros minutos del juego, pero la verdad es que salvo los dos primeros digitos y los dos ultimos, cada vez que reinicio el juego cambian los cuatro digitos centrales.
@
lookmeandnotouchme escribió:La última linea es para marcar un "Fin de la instrucción"

Exactamente
eXcuX escribió:
Special Codes:
DD000000 XXXXXXXX – if KEYPAD has value XXXXXXXX execute next block
Special Keypad Code
As for the Special KEYPAD cheat code, the keypad value can be any combination of the following:
0x1 A
0x2 B
0x4 Select
0x8 Start
0x10 Right
0x20 Left
0x40 Up
0x80 Down
0x100 R
0x200 L
0x400 X
0x800 Y


Para los botones que quieras, solo tienes que sumar.

La ultima linea D0's no se que hace, supongo que se le colaria.
Ha salido la version 3.6.2 que soluciona cuelgues al realizar busquedas.

Gracias por los datos (que los agregare cuando saque mejores imagenes para mas ejemplos) mientras tanto ire preparando algunos tips para sacar mejores resultados..Sirve que explico lo ultimo del referente de la pag de GW
Memory Writes:
0XXXXXXX YYYYYYYY – 32bit write to [XXXXXXX + offset]
1XXXXXXX 0000YYYY – 16bit write to [XXXXXXX + offset]
2XXXXXXX 000000YY – 8bit write to [XXXXXXX + offset]

Conditional 32bit codes:
3XXXXXXX YYYYYYYY – Greater Than (YYYYYYYY > [XXXXXXX + offset])
4XXXXXXX YYYYYYYY – Less Than (YYYYYYYY < [XXXXXXX + offset])
5XXXXXXX YYYYYYYY – Equal To (YYYYYYYY == [XXXXXXX + offset])
6XXXXXXX YYYYYYYY – Not Equal To (YYYYYYYY != [XXXXXXX + offset])

Conditional 16bit deref + write codes:
7XXXXXXX ZZZZYYYY – Greater Than
8XXXXXXX ZZZZYYYY – Less Than
9XXXXXXX ZZZZYYYY – Equal To
AXXXXXXX ZZZZYYYY – Not Equal To

Offset Codes:
BXXXXXXX 00000000 – offset = *(xxx)
D3000000 XXXXXXXX – set offset to immediate value
DC000000 XXXXXXXX – Adds an value to the current offset

Loop Code:
C0000000 YYYYYYYY – Sets the repeat value to ‘YYYYYYYY’
D1000000 00000000 – Loop execute
D0000000 00000000 – Terminator code

Data Register Codes:
D4000000 XXXXXXXX – Adds XXXXXXXX to the data register
D5000000 XXXXXXXX – Sets the data register to XXXXXXXX
D6000000 XXXXXXXX – (32bit) [XXXXXXXX+offset] = data ; offset += 4
D7000000 XXXXXXXX – (16bit) [XXXXXXXX+offset] = data & 0xffff ; offset += 2
D8000000 XXXXXXXX – (8bit) [XXXXXXXX+offset] = data & 0xff ; offset++
D9000000 XXXXXXXX – (32bit) sets data to [XXXXXXXX+offset]
DA000000 XXXXXXXX – (16bit) sets data to [XXXXXXXX+offset] & 0xffff
DB000000 XXXXXXXX – (8bit) sets data to [XXXXXXXX+offset] & 0xff

Special Codes:
DD000000 XXXXXXXX – if KEYPAD has value XXXXXXXX execute next block

lookmeandnotouchme escribió:Aunque estoy ligeramente oxidadillo en programación, entiendo casi todo del código excepto lo que pongo en negrita.
¿Es decir 00000E00 representa la combinación de teclas l+x+y? ¿Donde viene el valor de cada combinación de botones (Entre la info de GW no encuentro esto)?

Estaba con las mejoras del soft 3.5
¿Alguien en el MH4U conoce el offset para editar la comida felyne?
13 respuestas