14122-Cambiar_al_prota
#19
eing 12479
Vale fallo garrafal mío, por falta de práctica.
La estructura de un offset, que apunta a otra dirección es un offset permutado.
Es decir, en la dirección de la ram, hayarás la direccion fisica donde se haya el gráfico, pero permutada.

Así mismo, el offset que carga el mini:
02020648 --> A0 00 3A 08 (si te fijas es la dirección fisica que buscamos en el search for cheats, pero permutada)
Así que como estamos en la ram, hay que editar esa dirección, mediante WBTO, poniendo la nueva direccion fisica de nuestro nuevo mini.

Así que deberiamos colocarlo así..

writebytetooffset 0x40 0x02020648
writebytetooffset 0x0C 0x02020649
writebytetooffset 0x3A 0x0202064A

De manera que si vamos al visual viewer a la dirección "02020648", encontraremos la siguiente combinacion de bytes. --> 40 0C 3A 08

Y guala! ya tendremos nuestro sprite cambiado con éxito -Si es la misma paleta-
Si no es la misma paleta, tocará poner unos 30 WBTO más para cambiar toda la paleta del sprite, ya que no he podido encontrar como carga la paleta el sprite..

PD:Ah, y no olvides poner scripts de nivel en TODOS los mapas donde interactues con el mini cambiado, con el WBTO, ya que al refrescar la pantalla, los cambios se pierden y vuelven al por defecto.

PD2: De paso, te pondré para que sirve cada pointer..
ANIM POINTER= Animacion del mini. (Te aconsejo cambiarla si el mini no tiene la misma animacion, para evitar problemas)
POINTER 1 = WIDTH del mini
POINTER 2= HEIGHT del mini
POINTER 3= Informacion de mini. (con todas sus frames)


PD3: Adjunto foto...

(No cambie la paleta, por eso se ve con la paleta del protagonista.. para eso como dije anteriormente hacen falta 30 wbto más.. si los quieres hacer allá tu, pero es mejor usar distinto mini, misma paleta..)


-----------------------------

EDIT:
Me he molestado en hacer yo TOOODO el script, para obtener un cambio de mini del protagonista, al policia de FR..

IMAGEN:


Y el script os lo dejo en un spoiler ^^


Espacio minimo necesitado (en bytes): 198 bytes.
(Lo que viene a ser 12 lineas de código..)
¿Mucho? Sí, pero el espacio está para gastarlo ¿no?

PD: Esto también se podría hacer por ASM... y se vería notablemente reducido el espacio usado, ya que con asm puedes manejar cadenas de 32 bits (4bytes) y tan solo ocupariamos un par de lineas, ya que con una funcion cargamos el mini anterior, cargamos el mini nuevo, y con 4 funciones mas cargamos toda una paleta.. (4x4=16^^)

Saludos..