Registrarse

Solo para altos intelectos

Estado
Cerrado para nuevas respuestas.

Sayer301!

UnityLord!
Miembro de honor
Veréis, estaba probando el sistema de paletas dinámicas que trajo Ruki, y tengo metido el sistema de cambio de minis de JPAN.

El caso es que al hacer cualquier cambio de mini, la paleta de este no cambia a no ser que refresque la pantalla. Este es el problema.

Ahora, ya se que puedo refrescar, pero quedaría bastante mal, y como con el método de JPAN de cambiar minis se usa un callasm para que el cambio de mini se produzca al instante, me pregunto... ¿No habrá algún callasm o similar para hacer este cambio de paleta al instante, como el cambio de mini?
 

Kaktus

Miembro insignia
Miembro insignia
Pues a ver, no es que me de precisamente por aludido respecto al título, pero hablaré en base a lo que comprendo. No sé que hará en concreto ese callasm, pero me figuro que será cargar la imagen y la paleta, y tras esto refresca pantalla, mas al parecer, como usas el sistema de paletas dinámicas, lo que ocurre es que el juego tan solo carga las actuales, y las que no están en el campo de visión no son cargadas, la función de ese callasm es traer la imagen y la paleta como bien dije, pero si el sistema dinámico no la ve por ningún lado, lo que pasa es que la retira o simplemente no la carga, por ello se debe refrescar la pantalla, para que los datos carguen de nuevo y no pueda excluir la paleta actual, mas lo que ocurre es que directamente carga todos los datos actuales, así que me figuro que la solución sería coger el callasm de llamar al nuevo minisprite, y añadir tras la carga de todo algo para refrescar pantalla. Por desgracia solo sé usar los comandos más básicos en ASM y estoy aprendiendo, por ello te brindo el problema pero la solución a medias ;)
 

Sayer301!

UnityLord!
Miembro de honor
Tengo el mismo problema, y no me quedó de otra mas que el chapuza fadescreen y refrescado :c
No me jodas, justo esperaba que fueses tu el que apareciese aquí con un respuestón perfecto tipo...:

No seas noob de mierda usa el comando callasm 0x8PENES jajaja

Pues a ver si @eing @javi4315 o algunos de esos jefes me ayudan XD

EDITO: mensaje para @~Ruki! que es el otro perjudicado, Blax me ha comentado que con WBTO se podría solucionar hasta que se refresque la pantalla y ya aparezca el cambio definitivo de paletas, me parece una solución muy logica y cojonuda aunque aun no le ha probado, te lo dejo aquí por si te interesa. (K)
 
Última edición:

Dani_SR_17

¡Pokémon LionHeart!
No me jodas, justo esperaba que fueses tu el que apareciese aquí con un respuestón perfecto tipo...:

No seas noob de mierda usa el comando callasm 0x8PENES jajaja

Pues a ver si @eing @javi4315 o algunos de esos jefes me ayudan XD

EDITO: mensaje para @~Ruki! que es el otro perjudicado, Blax me ha comentado que con WBTO se podría solucionar hasta que se refresque la pantalla y ya aparezca el cambio definitivo de paletas, me parece una solución muy logica y cojonuda aunque aun no le ha probado, te lo dejo aquí por si te interesa. (K)
He probado lo que se ha comentado usado los WBTO y tengo que decir que si funciona, solo tiene un pequeño bug, pero funciona.
El bug en cuestión por asi llamarlo, es que al entrar en el menú por ejemplo de la mochila durante un instante se ve la paleta sin cambiar.

Dejo uns scans y los scripts que he usado:

Scans:


Script del policia de la derecha:
Código:
#dynamic 0x800000

'---------------
#org @start
Setvar 0x4054 0x3C
callasm 0x805BE61
end

Script del policia de la izquierda:
Código:
#dynamic 0x800000

'---------------
#org @start
writebytetooffset 0x5F 0x20377FA
writebytetooffset 0x5B 0x20377FB
writebytetooffset 0xFE 0x20377FC
writebytetooffset 0x4A 0x20377FD
writebytetooffset 0x5B 0x20377FE
writebytetooffset 0x3A 0x20377FF
writebytetooffset 0xF 0x2037800
writebytetooffset 0x21 0x2037801
writebytetooffset 0x7F 0x2037802
writebytetooffset 0x27 0x2037803
writebytetooffset 0xBA 0x2037804
writebytetooffset 0x12 0x2037805
writebytetooffset 0x90 0x2037806
writebytetooffset 0x1 0x2037807
writebytetooffset 0x34 0x2037808
writebytetooffset 0x76 0x2037809
writebytetooffset 0x4D 0x203780A
writebytetooffset 0x5D 0x203780B
writebytetooffset 0xE8 0x203780C
writebytetooffset 0x30 0x203780D
writebytetooffset 0xDD 0x203780E
writebytetooffset 0x21 0x203780F
writebytetooffset 0x15 0x2037810
writebytetooffset 0x1D 0x2037811
writebytetooffset 0xC9 0x2037812
writebytetooffset 0x18 0x2037813
writebytetooffset 0xFF 0x2037814
writebytetooffset 0x7F 0x2037815
writebytetooffset 0x0 0x2037816
writebytetooffset 0x0 0x2037817
end
Bug:




Para aquellos interesados que no conozcan esto:
 

eing

Miembro de honor
Miembro de honor
No me jodas, justo esperaba que fueses tu el que apareciese aquí con un respuestón perfecto tipo...:

No seas noob de mierda usa el comando callasm 0x8PENES jajaja

Pues a ver si @eing @javi4315 o algunos de esos jefes me ayudan XD

EDITO: mensaje para @~Ruki! que es el otro perjudicado, Blax me ha comentado que con WBTO se podría solucionar hasta que se refresque la pantalla y ya aparezca el cambio definitivo de paletas, me parece una solución muy logica y cojonuda aunque aun no le ha probado, te lo dejo aquí por si te interesa. (K)
No se como runcionan esas rutinas, no me las he mirado pero te dire que uses el mismo metodo que uso yo.
Envia la paleta a la ram directamente. Y que se cargue desce alli.
Por ejemplo:

Paleta real = 083FAA10
Pointer a paleta rral = 0803FACC
Entonces cambiamos el valor de ese pointer (10AA3F08) por uno que sea de la ram como seria (XXXXXX02)
Y ya, estara negro al primcipio pero una vez escribas un valor es fijo.
(Yo uso una rutina para esto, pero puedes usar simples wbto, que se queda ahi fija..)

Por ultimo, ponerlo dentro de la SRAM. No se cual es ej fr pero supongo que con el save block de jpan teneis mucho libre xD
 
Estado
Cerrado para nuevas respuestas.
Arriba