Fortaleza Reznor
¡Bienvenido a Fortaleza Reznor!
¿Que es Fortaleza Reznor?
Fortaleza Reznor es un foro de SMWH (Super Mario World Hacking) Aquí modificamos (hackeamos) el juego de Mario World a nuestro gusto y enseñamos a otros a saber a manejar el hacking de SMW usando la famosa herramienta "Lunar Magic".

¡Regístrate!
Únete a nuestra comunidad!, te ayudaremos en cada duda que tengas respecto al SMWH. Aparte podrás participar en eventos que hay en el foro y descargar los recursos que crean nuestros usuarios.

¡ANÍMATE! ¡Te divertirás en nuestro foro!

Atte:
La administracion.


¡Super Mario World Hacking en español! ¡Ayuda, tips, diversión y más!
 
ÍndiceCalendarioMiembrosRegistrarseConectarseFAQBuscar

Comparte | .
 

 Dirección para alternar los gráficos de Mario

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
HexQZ
Shelless Blue Koopa
Shelless Blue Koopa
avatar

Posts Posts : 23


MensajeTema: Dirección para alternar los gráficos de Mario   Lun Mar 09, 2015 2:51 am

Holax Razz

Me gustaría saber cuál es la dirección o método para cambiar los gráficos de Mario. La idea es crear un bloque que al tocarlo por encima cambie la imagen (tila) de Mario por otra que esté en el mismo archivo GFX32.bin y que después de un retardo de x tiempo cambie a otra del mismo archivo, como si estuviese bailando pues jaja.
Lo del retardo creo que es con el comando LSR, pero la dirección que mencioné antes no la he encontrado aún.

Espero haberme explicado bien. Saludos.
Volver arriba Ir abajo
lx5
Moderador Global
Moderador Global
avatar

Posts Posts : 2045


MensajeTema: Re: Dirección para alternar los gráficos de Mario   Lun Mar 09, 2015 10:49 pm

Para cambiar la pose usas la RAM $13E0, aqui hay un diagrama que puede ayudar: [Tienes que estar registrado y conectado para ver este vínculo]

Nota: el diagrama, o tabla, solo muestra las poses de Mario grande, pero si eres Mario pequeño y "activas" esas poses, veras que se veran muy similares, pero obviamente, con los graficos de Mario pequeño. Esto es porque en algun lugar del bank 00 la RAM $13E0 es utilizada como indice (junto con otros factores, entre ellos el status de Mario (RAM $19)) en una tabla gigante que te sirve para señalar la localizacion de los graficos de Mario.

Para lo del retardo y lo del bloque lo mejor seria usar una freeram.

El bloque seria algo asi:

Código:
db $42
JMP MarioBelow : JMP MarioAbove : JMP MarioSide
JMP SpriteV : JMP SpriteH : JMP MarioCape : JMP MarioFireball
JMP TopCorner : JMP BodyInside : JMP HeadInside

MarioBelow:
MarioAbove:
MarioSide:

TopCorner:
BodyInside:
HeadInside:
LDA $63
BNE SpriteV
LDA #$01
STA $63
LDA #$04
STA $14AC
SpriteV:
SpriteH:

MarioCape:
MarioFireball:
RTL

Y tambien tendrias que usar levelasm:

Código:
levelinitxx:
STZ $63
STZ $62
RTS

Código:
levelxx:
LDA $63
BEQ .rts
LDA $14AC
BNE .rts
LDX $62
LDA.w Poses,x
STA $13E0
LDA.w Duraciones,x
STA $14AC
INC $62
LDA $62
CMP.b #(Poses_end-Poses)
BCC .rts
STZ $14AC
STZ $63
STZ $62
.rts
RTS
Poses:
db $00,$01,$02,$01,$00,$01,$02,$01,$00,$01,$02,$01,$00,$01,$02,$01
.end
Duraciones:
db $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04

Los codigos de arriba van en el levelasm, como mencione, lo puedes encontrar en el pack del UberASM de p4plus2 en SMWC.

Lo que hace el conjunto de codigos es:

1) Al inicio del nivel un codigo (levelinit) inicializa unas RAMs que usaremos.

2) Cuando Mario toca el bloque por cualquier lado se activara el codigo que hay en levelasm y pondra un temporizador (otra RAM) que se encarga de administrar que tanto tiempo se mostrara el frame en pantalla.

3) Cuando el codigo de levelasm es activado, lo que hace este es esperar a que el temporizador llegue a cero, el cual se decrementa en 1 cada 4 frames (un segundo real = 60 frames; un segundo del SMW = 40 frames), cuando sea cero la pose de Mario se cambiara segun la tabla llamada "Poses" y el mismo indice sirve para determinar la duracion del frame (tabla "Duraciones"

Los valores por defecto de la tabla Duraciones es $04, lo que significa que son 16 frames porque:

$04*4 = 16

El minimo que puedes tener $01, lo que significa que tu menor duracion de la pose posible es 4 frames.

La tabla Poses funciona asi:
- Cada cierta cantidad de frames cambiara la pose. Cuando cambia la pose, otra RAM es incrementada en 1 para aumentar el indice (RAM $62, es freeram) usado en la tabla y no repetir poses.
- Cuando se llega a la pose del final de la tabla se acabara la animacion.

------

El codigo esta sin probar, asi que cualquier cosa rara que pase me dices.

__________________________________________________
Si tienes Wii U, Wii, 3DS o DS, ¡postea en tus friend codes en [Tienes que estar registrado y conectado para ver este vínculo] tema para hacernos amigos!
Espacio en renta.
Volver arriba Ir abajo
HexQZ
Shelless Blue Koopa
Shelless Blue Koopa
avatar

Posts Posts : 23


MensajeTema: Re: Dirección para alternar los gráficos de Mario   Mar Mar 10, 2015 9:19 am

Y yo que pensé que no sería algo muy complicado jaja. Bueno primero checo como usar el levelasm y si me atoro con algo lo menciono.
Gracias TheLX5 =D
Volver arriba Ir abajo
HexQZ
Shelless Blue Koopa
Shelless Blue Koopa
avatar

Posts Posts : 23


MensajeTema: Re: Dirección para alternar los gráficos de Mario   Jue Mar 12, 2015 12:38 am

Hay un detalle que hace que la animación original se sobreponga con la del bloque, haciendo que la animación del bloque apenas se perciba. Modifiqué el tiempo de duración a #$01 pero aun así se alcanza a ver.
Volver arriba Ir abajo
lx5
Moderador Global
Moderador Global
avatar

Posts Posts : 2045


MensajeTema: Re: Dirección para alternar los gráficos de Mario   Jue Mar 12, 2015 12:46 am

Olvide considerar algo... Razz

Intenta con este:

Código:
levelxx:
LDA $63
BEQ .rts
LDX $62
LDA.w Poses,x
STA $13E0
LDA $14AC
BNE .rts
LDA.w Duraciones,x
STA $14AC
INC $62
LDA $62
CMP.b #(Poses_end-Poses)
BCC .rts
STZ $14AC
STZ $63
STZ $62
.rts
RTS
Poses:
db $00,$01,$02,$01,$00,$01,$02,$01,$00,$01,$02,$01,$00,$01,$02,$01
.end
Duraciones:
db $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04

__________________________________________________
Si tienes Wii U, Wii, 3DS o DS, ¡postea en tus friend codes en [Tienes que estar registrado y conectado para ver este vínculo] tema para hacernos amigos!
Espacio en renta.
Volver arriba Ir abajo
HexQZ
Shelless Blue Koopa
Shelless Blue Koopa
avatar

Posts Posts : 23


MensajeTema: Re: Dirección para alternar los gráficos de Mario   Jue Mar 12, 2015 1:00 am

¡Funciona perfectamente! ¡¡¡ Muchas Gracias !!! VeryHappy VeryHappy VeryHappy
Volver arriba Ir abajo
Contenido patrocinado




MensajeTema: Re: Dirección para alternar los gráficos de Mario   

Volver arriba Ir abajo
 

Dirección para alternar los gráficos de Mario

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Fortaleza Reznor ::  Ayuda y Recursos de SMW Hacking :: Foro de ayuda-