|
| Dirección para alternar los gráficos de Mario | |
| Autor | Mensaje |
---|
HexQZ Shelless Blue Koopa
Posts : 23
| Tema: Dirección para alternar los gráficos de Mario Lun Mar 09, 2015 2:51 am | |
| Holax 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. |
| | | lx5 Moderador Global
Posts : 2169
| Tema: 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. |
| | | HexQZ Shelless Blue Koopa
Posts : 23
| Tema: 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 |
| | | HexQZ Shelless Blue Koopa
Posts : 23
| Tema: 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. |
| | | lx5 Moderador Global
Posts : 2169
| Tema: Re: Dirección para alternar los gráficos de Mario Jue Mar 12, 2015 12:46 am | |
| Olvide considerar algo... 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 |
| | | HexQZ Shelless Blue Koopa
Posts : 23
| Tema: Re: Dirección para alternar los gráficos de Mario Jue Mar 12, 2015 1:00 am | |
| |
| | | Contenido patrocinado
| Tema: Re: Dirección para alternar los gráficos de Mario | |
| |
| | | | Dirección para alternar los gráficos de Mario | |
|
Temas similares | |
|
| Permisos de este foro: | No puedes responder a temas en este foro.
| |
| |
| Donaciones |
Quieres ayudar al foro? Siéntete libre de donar la cantidad que quieras!
|
|