![]() |
Guía básica para la creación de trucos (cheats) para juegos de la
PlayStation Portable, mejor conocida como PSP
Actualizado 👉 Mejorada la guía para crear trucos con cualquier
combinación de teclas y se añadieron los cheats de 60fps! 😃
|
En este tuto mostraré como crear cheats para juegos de PSP, en esta ocasión
me enfocaré solo en cheats que alteran valores en el juego, por ejemplo
dinero o puntos infinitos y otros valores similares, a medida que vaya
aprendiendo a crear cheats más avanzados actualizaré la entrada
Cabe destacar que si tienes ciertos conocimientos sobre el tema te será fácil
poner el tuto en práctica, sino debes leerlo atentamente para que tu cheat
pueda funcionar y así puedas crearlo sin que te tome mucho tiempo
Bien, comencemos:
Lo primero es saber que hay varios tipos de cheats, hay unos que reemplazan
valores, otros reemplazan bloques completos, otros incluso te permiten activar
y desactivar el truco usando una combinación de teclas, pero primero lo
básico, el formato:
|
_C0 es el
identificador del nombre del cheat,
_C0
significa que el cheat se encuentra desactivado,
_C1
significa que se encuentra activado,
_L es el
identificador del código cheat
El primer valor de _L es la dirección en memoria, más adelante mostraré como conseguir dicho valor, el segundo es el valor con el cual se desea reemplazar los datos, en el primer valor se debe especificar el tipo de dato:
|
Es importante fijar correctamente el tamaño del valor ya que si reemplazas un
valor de 32 bits por uno de 8 el valor resultante sería erróneo o si lo haces
al contrario acabarías reemplazando los datos que le siguen generando así
errores en el juego así que es importante saberlo!
Comúnmente los datos que se suelen reemplazar en los juegos suelen estar
alojados en variables sin firmar (unsigned), como por ejemplo el dinero o puntos que ganas en el juego, pero hay
ocasiones que los valores suelen estar alojados en variables firmadas (signed), compara el valor máximo que puedes conseguir en el juego y si dicho valor
puede llegar a ser negativo y compáralo con el tamaño de los valores que dejé
arriba para saber el valor máximo que puedes usar por tipo de datos
Ahora lo que sigue parece complicado pero no lo es en lo absoluto, en este
caso necesitaremos la ayuda de un emulador capaz de dumpear (copiar a un
archivo) la RAM emulada (por ejemplo para este tuto usaré el
PPSSPP) y un editor hexadecimal (El mejor para esto,
HxD Hex Editor):
|
Cambia el valor que quieres en el juego, por ejemplo si es un ítem compra
uno más, si es vida gana o pierde un poco, luego repite los pasos anteriores
para dumpear nuevamente la memoria. Si quieres puedes cambiar nuevamente el
valor deseado y dumpear nuevamente la memoria, aunque en muchas ocasiones (o
en la mayoría...) basta con dumpearla 2 veces, en otras hay que hacerlo 3 o
incluso más veces, hazlo solo si no logras dar con los datos usando 2 copias
de la RAM.
Recuerda anotar cada valor antes de dumpear la memoria o cambiar los
valores! Además deberás usar algún programa por ejemplo la calculadora en
modo programador para convertir dicho valor en hexadecimal para poder
localizarlo en la memoria
(Tip: puedes pulsar sobre las imágenes para ampliarlas)
En este caso creé 3 respaldos de memoria, en el primero el valor del ítem
Cojín de Corazón era
1 (0x01), en el segundo era
2 (0x02) y en el tercero
3 (0x03) (obvio :P), pues es hora de abrir esos archivos con el editor hexadecimal
para buscar esos valores...
Pulsamos CTRL+K y selecciona los
dos primeros archivos, luego pulsa en
Aceptar, con esto podrás comparar ambos archivos para localizar sus diferencias,
pulsa F6 para pasar a la
siguiente diferencia o
MAYUS+F6 para pasar a la
anterior, así no tendrás que buscar por todo el archivo ya que solo
navegarías por las diferencias que existen entre ambos archivos 👌
Aquí pude localizar una diferencia que concuerda con los valores que busco,
este se encuentra en el offset
0x50B77D, procedemos a crear el cheat y probarlo, en este caso lo reemplazaré por
127 ya que
el juego usa un tipo de dato firmado (signed):
_C0 Cojín de Corazón infinito
_L 0x0050B77D 0x0000007F
|
Y como ven, tenemos ahora
127
cojines de corazones 👍 ahora a quién regalárselos queda a cuenta de cada
uno de ustedes, yo por ejemplo se los daría a Luka 😍 Vaaaaaleee, a las
otras chicas también 😅
Si tienes dudas de si los datos son firmados o sin firma (signed o unsigned)
prueba un valor, si resulta negativo es firmado, por ejemplo en datos de
8bits 0x7F es 127, 0x80
es -128, 0x81 es -127... 0xFF
es
-1, en los datos sin firmar nunca hay valores negativos
Actualización (24/07/2021):
Esta vez les mostraré como activar cheats usando teclas o combinaciones de
teclas, aunque aún no lo he probado creo que es posible también activar un
cheat cuando insertas la Memory Stick™ o incluso cuando insertas una
UMD, no lo sé, según la SDK de la PSP estos también son
eventos del control así que puede que funcione...
Primero que todo el cheat:
|
_L 0xD0000000 0x1#######
= Este es el código (llamémoslo
Verificador) que permitirá detectar las teclas pulsadas y ejecutar el cheat, el primer
valor corresponde al verificador, el segundo es la tecla o combinación de
teclas que usarás
_L 0x######## 0x########
= Esto es lo que le sigue, es el cheat que deseas activar
(Actualizado) Como habrás podido notar se pueden mezclar varios
cheats en uno solo, de esa manera solo activas uno solo en el menú de trucos
y para activarlos durante el juego usa las combinaciones de teclas, como si
de un truco nativo del juego se tratase
Es posible crear combinaciones de teclas independientes para cada
verificador en un mismo cheat, en este caso podrás combinar cuantos trucos
quieras en un solo bloque y cada truco se activaría usando su propia
combinación, para ello debes contar las líneas de código que componen el
cheat que deseas habilitar con esa combinación de teclas, le restas
1 y el resultado se lo
sumas al primer valor del verificador, por ejemplo:
Si son 14 líneas restas
1 quedan
13, convertidos a hexadecimal es
0x0D, en ese caso el primer valor del verificador sería 0xD000000D
Si es solo una línea, 1-1=0, en ese caso el primer valor sería... es obvio no? :P
Aclarado esto, comencemos con la obtención de las teclas (gracias a los
desarrolladores del MinPSPW por
los códigos de teclas):
Teclas principales:
SELECT =
0x000001
START =
0x000008
DPAD_UP =
0x000010 (Pad digital |
Botón arriba)
DPAD_RIGHT =
0x000020 (Pad digital |
Botón derecha)
DPAD_DOWN =
0x000040 (Pad digital |
Botón abajo)
DPAD_LEFT =
0x000080 (Pad digital |
Botón izquierda)
LTRIGGER =
0x000100 (Gatillo izquierdo
| L)
RTRIGGER =
0x000200 (Gatillo derecho
| R)
TRIANGLE =
0x001000 (Triángulo)
CIRCLE =
0x002000
(Círculo)
CROSS =
0x004000
(Cruz, o Equis (X))
SQUARE =
0x008000
(Cuadrado)
|
Otros más (No sé para que querrás hacer un truco con ellos pero te los dejo igual)
HOME =
0x010000 (El botón HOME)
HOLD =
0x020000 (El botón HOLD)
NOTE =
0x800000 (El botón de la
Nota Musical)
SCREEN =
0x400000 (El botón SCREEN (el cuadradito junto
a la nota musical))
VOLUP =
0x100000 (El botón Subir Volumen)
VOLDOWN =
0x200000 (El botón Bajar Volumen)
WLAN_UP =
0x040000 (pulsación prolongada mientras el
Swith WLAN esté arriba)
REMOTE =
0x080000 (pulsación prolongada mientras
REMOTE esté en HOLD)
DISC =
0x1000000 (pulsación prolongada mientras
la UMD esté presente)
MS =
0x2000000 (pulsación prolongada
mientras la Memory Stick™ esté presente)
|
Suma el valor de cualquier tecla con
0x10000000
y ese es el segundo valor del verificador, si quieres usar teclas combinadas
suma sus valores (Ojo, son valores
hexadecimales!), por ejemplo para
[L]+[R]+[∆]
suma
0x000100 +
0x000200 +
0x001000, esto da como resultado
0x001300, súmale los
0x10000000
y con eso ya tienes la combinación lista, lo añades al verificador y voilà!
Probemos con el cheat de los corazones:
_C0 Cojín de Corazón infinito
_L 0xD0000000 0x10001100
_L 0x0050B77D 0x0000007F
_L 0xD0000000 0x10001200
_L 0x0050B77D 0x00000000
|
Fíjate bien como está, el primero se activa con
[L]+[∆]
y nos da los
127 ítems,
el segundo con
[R]+[∆] y nos lo quita todos 😭
Como ven el cheat se compone de dos verificadores y una sola línea de código
por verificador, en este caso su valor es
0 ya que obviamente a
1 le restamos
1 y con eso el verificador
queda en 0xD0000000
Nota importante! Si el cheat
requiere que el código sea reescrito muchas veces (son los casos donde el
valor es cambiado constantemente por el proceso del juego) no es
recomendable usar este método ya que en ese caso el cheat solo funcionaría
si mantienes pulsado la tecla o las combinaciones de teclas, si los sueltas
el cheat no funcionará ya que el sistema verificará el estado de las teclas
y si el resultado es falso omitirá el código que le sigue...
Nota importante 2! Si usas la
Calculadora de Windows 10 (no se
si las de los otros windows también)
no copies el valor directamente!, esto debido a que se copiará un byte extra que aunque no lo verás
generará errores, para solucionar esto escribe el valor de la calculadora
a mano en el archivo de cheats
Aquí os dejo los cheats de 60fps para el Project DIVA 1st, 2nd, 2nd# y Extend
Créditos: todos a excepción del cheat del 2nd# fueron publicados por LunaMoo
en
>> Este Foro <<, el del 2nd# lo he creado usando los de los demás juegos como base
Para usar los 60fps activa el que dice 60 fps, el que dice 60 fps [Disable]
es para desactivar el anterior sin necesidad de reiniciar el juego
Copia y pega estos códigos en el archivo de cheats correspondiente:
ULJM05472.ini para el 1st, ULJM05681.ini para el
2nd, NPJH50475.ini para el 2nd# y NPJH50465.ini para el Extend, no
lo mezcles con otros! ve la imagen de abajo para más detalles...
Si aprendo algo más os aviso! 👌
Espero les haya gustado el tuto. Nos leemos en los comentarios 😉👌
No comments:
Post a Comment
Tell us what you think