Registrarse

[RH - Gráficos] Menú Star

Estado
Cerrado para nuevas respuestas.

Eaas

Profesional de WaH
Menu 5ta GEN.png
Alguien puede ayudarme si tienen alguna forma de conseguir que esté sea el menú star
Sé lo agradecería
 

Eaas

Profesional de WaH
No me deja descargar los archivos del tuto:rolleyes:

Gracias igual x tu ayuda también veré qué me hago o le pediré a alguien que resuba los link
 

Eaas

Profesional de WaH
Ya lo logré gracias solo cambie algunas cosas de la rutina que muestra la imagen y ya

Y si al script se le da el wbto de transparencia es perfecto muchas gracias a los dos
 

Eaas

Profesional de WaH
Yo tengo uno de los dos pero para mejor no realizas las rutinas y así lo ubicas en el offset que desees y de paso lo eficaz como desees al final la idea es que hagas un menú a tu gusto y con un gráfico que compaginar con tu hack

Para los que preguntaron voy a hacer lo más expecifico para que entiendan lo que hice denme un momento

Bueno si alguien se dedicó a revisar la rutina puede ser que me entiendan sino bueno revísela no es díficil solo tienen que buscarle la lógica

Para los que no saben lo que comparefarbytetobyte es un comando que trabaja comparando el offset de algún byte de la ram o de la ROM no me acuerdo pero bueno 0x4000130 es el offset que que se asigna a las teclas o los botones como quieran en fin a , b , derecha etc. Bueno la rutina trabaja de esa forma pero sin esos comando por lo tanto usa unos comandos que hacen lo mismo pero desde la rutina si revisan la rutina llama a una tabla en la cual se ubican los gráficos del menú de forma xxxxyyyy donde xxxx es la imagen y yyyy la paleta la rutina checkea si tienes la flag de Pokédex y menú para según depende de esto salga una imagen o otra para que entiendan sino tienen la Pokédex se vería mal que saliera en el menú el icono de dicha bueno lo que quiero decir es que en el parche de descarga hay un readme con todos los offset utilizados y para que son utilizados lo que hice fue cambiar los offset de la rutina por lo tanto en vez de llamar a esa taba llamará a la mía realizando la de la xxxxyyyy que ya dice y lo que cambien fue el script si revisan un poco el script puede ser que me entiendan mejor pero sin siguen sin entender es que no tienen mucho conocimiento de script y hex y me tomaré la molestia de hacerles un tuto bien explicado y con imagines para que todos puedan entender
 

ACE10

Héroe de WaH
Bueno si alguien se dedicó a revisar la rutina puede ser que me entiendan sino bueno revísela no es díficil solo tienen que buscarle la lógica

Para los que no saben lo que comparefarbytetobyte es un comando que trabaja comparando el offset de algún byte de la ram o de la ROM no me acuerdo pero bueno 0x4000130 es el offset que que se asigna a las teclas o los botones como quieran en fin a , b , derecha etc. Bueno la rutina trabaja de esa forma pero sin esos comando por lo tanto usa unos comandos que hacen lo mismo pero desde la rutina si revisan la rutina llama a una tabla en la cual se ubican los gráficos del menú de forma xxxxyyyy donde xxxx es la imagen y yyyy la paleta la rutina checkea si tienes la flag de Pokédex y menú para según depende de esto salga una imagen o otra para que entiendan sino tienen la Pokédex se vería mal que saliera en el menú el icono de dicha bueno lo que quiero decir es que en el parche de descarga hay un readme con todos los offset utilizados y para que son utilizados lo que hice fue cambiar los offset de la rutina por lo tanto en vez de llamar a esa taba llamará a la mía realizando la de la xxxxyyyy que ya dice y lo que cambien fue el script si revisan un poco el script puede ser que me entiendan mejor pero sin siguen sin entender es que no tienen mucho conocimiento de script y hex y me tomaré la molestia de hacerles un tuto bien explicado y con imagines para que todos puedan entender
Honestamente mejor has el tutorial explicando a detalle las cosas y con imagenes para que lo entiendan mejor
Además de que por falta de tiempo puede que no puedas responder dudas
 

ACE10

Héroe de WaH
Son muchos mensajes
Edita el post y agrega lo que quieras en el en ves de mandar mensajes
 

Eaas

Profesional de WaH
MENU PERSONALIZADO

Primero quiero que sepan que me voy a basar en el parche A porque es que mejor encontré para explicar pero si saben trabajar con uno ya sabrán trabajar con el otro.

Segundo no soy de hacer tutoriales pq no me explico muy bien ,pero tratare de ser lo mejor entendible posible.

Tercero lo mejor que pueden hacer es darle este tuto a alguien con esperencia para que lo estudie y tal vez puede explicarlo mejor que yo y ensenarles más cosas de la que yo puedo .

Cuarto lo que voy hacer no es un tuto en si sino explicarles las cosas que no se les explican en ese tuto que para muchos tal vez sea fácil pero para otros por lo que note le es bastante difícil aunque también tengo reconocer que me expreso muy mal.

Quinto no pienso dedicarme a realizar tutoriales por lo que pueden criticar este si quieren no hay problema yo solo los trato de ayudar un poco.

Lo que quiero explicar es como trabajar todas las cosas del parche como imágenes, rutina,etc

Lo primero que deben tener son sus imágenes Las cuales deben tener como todos saben 16 colores (Cosas de GBA aunque me gusta ya que es un buen reto el introducir buenos gráfico con esa limitación)
Les voy a dar una muestra de mis imágenes para que Tengan una idea y si las quieren usar me las pueden pedir y ya.


Empezando para introducir las imágenes en el juego yo uso NSE 2.0 pero pueden usar unlz GBA

Bueno lo que yo hago para ahorarme tiempo o bueno lo que hice pq es la primera vez que hago esto es hacer mis imágenes en 240x160
En fin 240 ancho y 160 de alto para los que no saben el pq esta es la medida de la pantalla de GBA en fin editan sus imágenes en este tamaño y suponen que así mismo es como c vera en el juego.

En fin tienen que crear todas las imagines Sin menú pokemon y sin pokemon como también las que si lo tienen.
Pq es esto?
Bueno creo yo no c que si aun no tienes el menú pokemon se vería mal estéticamente que apareciera un apartado con dicha opción.
Después de crear todas las imagines aunque creo que ya muchos la tienen o las pueden descargar no c, las insertan en el juego en espacio libre y anotan el offset de cada imagen.
Ya con los offset de cada imagen lo que hacen es insertar la paleta de sus imágenes que creo que es la misma paleta para todas a no ser que hagan otro método.
No les voy a enseñar como indexar imágenes pq creo que ya todos saben pero si alguien no sabe solo dejan su imagen a 16 colores y el primer color de la paleta que sea el del fondo para que el ROM lo tome como que es transparente.

Una vez que tengan los offset de las imágenes lo que van hacer es que par que entienda mejor permuten los offset.
Por ejempló si una imagen está en el offset 0x80 00 00 lo que hacen es voltearlo
Quedaría así
00 00 80
Y de paso le agregan un 08 al final ósea asi
00 00 80 08

Ahora el orden de la tabla es muy lógico solo deben razonar un poco.
La primera imagen debe ser la que no tiene ni pokedex ni pokemon y seguido la que selecciona la mochila, trainer card, save, opciones.
00 00 72 08 40 D9 73 08 E0 03 72 08 40 D9 73 08 B0 07 72 08 40 D9 73 08 90 0B 72 08 40 D9 73 08 70 0F 72 08 40 D9 73 08 40 13 72 08 40 D9 73 08 70 17 72 08 40 D9 73 08 A0 1B 72 08 40 D9 73 08 E0 1F 72 08 40 D9 73 08 20 24 72 08 40 D9 73 08 60 28 72 08 40 D9 73 08 90 2C 72 08 40 D9 73 08 30 31 72 08 40 D9 73 08 D0 35 72 08 40 D9 73 08 80 3A 72 08 40 D9 73 08 30 3F 72 08 40 D9 73 08 D0 43 72 08 40 D9 73 08 80 48 72 08 40 D9 73 08 20 4D 72 08 40 D9 73 08 C0 51 72 08 40 D9 73 08 70 56 72 08 40 D9 73 08 20 5B 72 08 40 D9 73 08 D0 5F 72 08 40 D9 73 08 80 64 72 08 40 D9 73 08 30 69 72 08 40 D9 73 08

Esta es la tabla del parche 1
Que trabaja de esta forma
XX XX XX 08 YY YY YY 08
Lo del 08 es pq nos referimos a que es un pointer de la ROM por lo que lo único que deben saber es que obligatorio si no funciona.
XX XX XX: es la imagen
YY YY YY : es la paleta

Entonces pondrán los offset permutados de cada imagen y acontinuacion la de la paleta que si c fijan es la misma paleta en toda la tabla ya que se supone que todas las imágenes tengan los mismo colores.
(A se me olvidaba por si usan paint para estas cosas mejor usen el de XP ya que el de 7,8 etc. No trabaja muy bien con las paletas)
Ahora el orden exacto de la tabla este

*.Imagen sin el menú pokemon y sin pokedex mas paleta
1.Imagen seleccionado Mochila mas paleta
2. Imagen seleccionado trainer card mas paleta
3. Imagen seleccionado save mas paleta
4. Imagen seleccionado options mas paleta

*.Imagen con el menú pokemon sin al pokedex mas paleta
1. Imagen seleccionado Pokemon mas paleta
2. Imagen seleccionado Mochila mas paleta
3. Imagen seleccionado trainer card mas paleta
4. Imagen seleccionado save mas paleta
5. Imagen seleccionado options mas paleta
*Imagen con todas las opciones mas paleta
1. Imagen seleccionado Pkedex mas paleta
2. Imagen seleccionado Pokemon mas paleta
3. Imagen seleccionado Mochila mas paleta
4. Imagen seleccionado trainer card mas paleta
5. Imagen seleccionado save mas paleta
6. Imagen seleccionado options mas paleta

Creo que no puedo explicarlo mejor.
Y su tabal quedara igual que la de arriba.

Ahora después de eso vamos a revisar la rutina del parche.
Hay tres rutinas que son mejor ni modificarlas pq de que no hace falta no lo hace pero bueno si alguien quieres revisarlas toda suya.

La que modificaremos es la que muestra la imagen.






.equiv table_location, 0x0873f600 (offset donde se encuentra tu tabla)
.thumb
push {r4-r5,lr}
sub sp, sp, #0x18
mov r1, #0
mov r2, #0
mov r3, #0
mov r0, #30 (ancho de las imágenes)
str r0, [sp]
mov r0, #20 (largo de las imágenes)
str r0, [sp, #4]
mov r0, #0xd
str r0, [sp, #8]
mov r0, #0x40
str r0, [sp, #0xc]
add r0, sp, #0x10
ldr r4, =0x810FE51
bl bx_r4
add r0, sp, #0x10
ldr r4, =0x8003CE5
bl bx_r4
ldr r4, =0x2039990
strb r0, [r4]
ldr r4, =0x8003FA1
bl bx_r4
ldr r0, =0x20370C0
ldrh r0, [r0]
ldr r1, =table_location
lsl r0, r0, #3
add r0, r0, r1
ldr r5, [r0, #4]
ldr r0, [r0]
ldr r1, =0x6008800
swi 0x12
mov r0, r5
mov r1, #0xd0
mov r2, #0x20
ldr r4, =0x80703A9
bl bx_r4
mov r0, #0
ldr r4, =0x80020BD
bl bx_r4
add sp, sp, #0x18
pop {r4-r5, pc}

bx_r4: bx r4


Como pueden ver les deje unos apartados entre () para que que sepan que son.
En equiv table_location, 0x0873f600
Lo que hacen es poner el offset de su tabla que este caso en el parche es
0x0873f600 pero ustedes pondrán el suyo.

En mov r0, #30 lo que hacen es poner el ancho de su tabla y en mov r0, #20 colocan el largo para menos complicaciones 30y20 que son las que tiene este ejemplo es igual 240x160 por lo que no hace falta que lo toquen si me hacen caso
Y de paso ya en esta rutina están las posiciones xy para que se vean en el medio por lo que no hace falta explicar eso y eso es lo que deben cambiar de la rutina.
Vamos a pasar a lo mas complejo se puede decir que no lo es tanto cuando lo entienden.
No pienso informarles mucho acerca de eso ya que deben haber tutos sobre esto en el foro
.
Comparefarbytetobyte
Que es este comando?
Bueno lo que hace es comparar el valor de un dato de la RAM el que ha implementado alguna vez el DNS con sepmaptile no les será ningún problema entender, los parámetros son los siguientes .
Comparefarbytetobyte 0x4000130 0x0
If 0x1 goto @pointer

Haber si me explico a lo que me refiero en la RAM para que entiendan mejor hay un sitio donde se encuentra la asignación a tleclas o botones como quieran llamarlo ,el offset 0x4000130 es respectivamente donde están esas funciones , 0x0 es la tecla que le asignamos y lo del if goto y eso ya den saber que es.
Las teclas son estas.
ARRIBA-BF
ABAJO-7F
IZQUIERDA-DF
DERECHA-EF
A-FE
B-FD
SELECT-FB
START-F7
Para entendernos mejor
Si yo pongo
Comparefarbytetobyte 0x4000130 0xF7
If 0x1 goto @pointer

Lo que hago es que si pulso start se dirigía a un pointer en concreto.
El script que se usa en este parche trabaja de esta manera
Para que?
Mejor comprensión todavía.
Imaginense que abrimos el menú de las imágenes que les mostré en especial para que lo entiendan mejor la imagen que tiene pokedex y pokemon y todo.
Lo que hacemos con esto es si damos derecha vamos a la imagen de pokemon si damos abajo vamos a la imagen de trainer card si tocamos B salimos si damos A entramos en la trainer card.
Creo que mejor no puedo explicarlo.

Bueno en si el script usa unos comando llamando a la rutina pero como lo que me hacía falta lo encontré no me puse a revisar tanto la rutina.
Estos comando hacen lo mismo que el comparebytetobyte 0x4000130 pero con otros comando así que si los cambiamos por los comparebytetobyte haríamos lo mismo que ellos.
La script deben tenerlo o bueno deben tener el offset de el pero como quiera les voy a ensenar el script y se los explico pero por favor bastante paciencia les pido en esta parte.

El comienzo del script es este.


#dynamic 0x900000

'---------------
#org @start
lock
callasm 0x806F541
compare 0x406E 0x2
if 0x1 goto @snippet1
checkflag 0x829
if 0x1 goto @snippet2
checkflag 0x828
if 0x1 goto @snippet3
setvar 0x8004 0x0
callasm 0x873F8D1
goto @snippet4


bueno si se fijan lo que hace esta parte es revisar si tienes ciertas condiciones para ensenar una imagen otra por ejemplo si se fijan hay un checkflag 0x828 que lo que hace es revisar si tenemos dicha flag activada para ensenarnos una imagen de nuestro menú (esa es la flag de activación del menú pokemon )por lo que si tenemos la flag activada nos ensenara la imagen del menú que tiene el menú pokemon lo mismo es con la flag 0x829 que revisa si tenemos la pokedex y si es asi nos envía a la imagen donde esta la pokedex y todas las demás .
en fin el menú personalizado puede tener todos los apartados que quieras mientras le hagas las imágenes y insertes los códigos que lo llaman como por ejemplo pueden hacer una imagen que tenga un icono con unos tenis y si le otorgas la flag que activa las zapatillas tendrán las zapatillas en su menú por lo que todo es imaginación, pura imaginación como puede ser la bici etc.
Esto no es bueno tocarlo ya que esta bien hecho lo que pueden hacer es agregarle cosas como les acabo de explicar.
Ahora para no liarlos y entiendan bien voy a coger un ejemplo y creo que así van a entender en totalidad su script.

checkflag 0x829
if 0x1 goto @snippet2

Aquí como dije el esta revisando si tenemos la flag que activa la pokedex y nos dice que si es asi no enviara al pointer @snippet2
#org @snippet2
setvar 0x8004 0xB
callasm 0x873F8D1
goto @snippet6

este es el el @snippet2 que lo que hace es activar una rutina que sería mostrar una imagen en dicho caso la que tiene la pokedex y nos envía al pointer @snippet6

#org @snippet6
sound 0x5
callasm 0x873F991
pause 0x1
setvar 0x8004 0xC
callasm 0x873F8D1
waitkeypress
compare 0x8000 0x1
if 0x1 goto @snippet13
compare 0x8000 0x10
if 0x1 goto @snippet14
compare 0x8000 0x20
if 0x1 goto @snippet15
compare 0x8000 0x2
if 0x1 goto @snippet12
compare 0x8000 0x8
if 0x1 goto @snippet12
goto @snippet6

este es el @snippet6 aquí es donde van a tener que realizarles cambios al script.
Se los voy a traducir y así de esta manera entenderán como realizar su propio script o modificar el mismo.

Los primeros parámetros es bueno dejárselo ya que lo que hacen es reproducir un sonido que seria el de cada vez que presionamos algo en el menú.
Después del waitkeyprees que lo que hace es esperar a que pulsemos una tecla lo que haremos será modificar la rutina.
Al parecer a la variable 8000 fue a la que esta rutina se le asignaron las teclas pero como les dije usaremos el comparefarbytetobyte.

compare 0x8000 0x1
if 0x1 goto @snippet13

en esta parte lo que nos dice es que si la variable tiene el valor 1 nos envía a un pointer.
Pues bueno el valor uno a dicha variable representa que pulsamos la tecla A que sería aceptar o como quieran decirle entonces seria los mismo que pusierieramso esto.
Comparefarbytetobyte 0x4000130 0xFE
If 0x1 goto @snipppet13
El Snippet13 es donde está en este script la opción de entrar al menú pokemon .
Les voy a dejar una muestra del script que use para que lo comprendan mejor explicando la parte de la imagen si tienen la pokedex.

#org @snippet6

sound 0x5
callasm 0x873F991
pause 0x1
setvar 0x8004 0xC
callasm 0x873F8D1
waitkeypress
comparefarbytetobyte 0x4000130 0xFE
if 0x1 goto @snippet13
comparefarbytetobyte 0x4000130 0x7f
if 0x1 goto @snippet27
comparefarbytetobyte 0x4000130 0xEF
if 0x1 goto @snippet14
compare 0x8000 0x2
if 0x1 goto @snippet12
compare 0x8000 0x8
if 0x1 goto @snippet12
goto @snippet6

Bueno aquí como ven lo que hice fue que le dije si pulso A abro la Pokedex , si doy derecha selecciono Pokemon, y si voy abajo selecciono mochila.
Deben preguntarse como se a que @snippet se le asigna una opción bueno lo mejor que pueden hacer es seguir leyendo el script pero de paso para que no pasen tanto trabajo les diré de este script para que es cada @snippet y así la pueden estudiar mejor y al final les daré un ejemplo para que me entiendan.
Les recuerdo ante todo que si no saben muy bien lo que hacen el #org start mejor ni lo toquen.

Estos son los snippet que llaman a las opciones en si como por ejemplo el que nos abre la mochila.
@snippet13(Nos abre la pokedex)
@snippet16(nos abre el menú pokemon)
@snippet12(es la dirección que nos cierra el menú por lo que deberían asignarle a esta dirección las tecla START y B)
@snippet9(es la mochila en si en fin si dicen que al pulsar una tecla se dirija a esta dirección se nos abriría la mochila)
@snippet22(es la trainer card si le asignamos una tecla a esta dirección si la pulsamos nos abrirá la trainer card)
@snippet37(lo que hace es que nos habre la opción de guardar)
@snippet46(nos habré la opciones)

Ahora les daré los snippet de las direcciones donde se nos abrirán las imágenes pero del menú que no tiene ni la opción de pokedex ni la de pokemon.
@snippet5 (es el que llama a la imagen de mochila )
@snippet10(nos lleva la imagen donde seleccionamos a la Trainer card )
@snippet23(nos lleva a la imagen de salvar )
@snippet38(nos dirige a la imagen donde seleccionamos opciones )

Ahora les dare los del menú que tiene la opción pokemon.
@snippet7(nos lleva a la imagen seleccionado al icono de pokemon)
@snippet17(nos lleva a la imagen seleccionando la mochila)
@snippet31(nos lleva a la imagen de la trainer card)
@snippet33(nos lleva a la imagen de salvar)
@snippet18(nos lleva a la imagen de opciones )

Y por ultimo aquí están los del menú cuando y tienes la pokedex.

@snippet6(imagen seleccionando pokedex)
@snippet14(imagen seleccionando el icono pokemon)
@snippet27(imagen seleccionando a la mochila)
@snippet41(imagen seleccionado a la trainer card)
@snippet29(imagen seleccionando al icono de salvar)
@snippet15(imagen seleccionando las opciones)
Por ejemplo si queremos que nos lleve tocando la flecha derecha a seleccionar la mochila usamos el comparebytetobyte y le decimos que si tocamos derecha nos envie al pointer de la imagen y si le decimos que si pusamos START nos habrá la mochila iwual creo que si estudian un poco mas profundo esto lo entenderán mejor .

Así que lo mejor que pueden hacer es revisar el script y perfeccionarlo .
La rutina que muestra el script en ese foro te la dan también en el archivo donde está la descarga para introducirla manualmente y lo único que tienen que hacer es antes de implementarla es darle el offset de donde se encuentra el script.
O simplemente Si van a usar el parche ubican su script en el offset del anterior.
El menú B es el mejor para este trabajo ya que tienes más opciones que pueden modificar y si no em equivoco hay unas de las dos rutinas que probe que daba como un parpadeo medio raro pero como al final lo que hice fue implementar una mezcla de las dos no se cual era ya eso les toca averiguarlo pero solamente si la estudian bastante yo no me demore mucho en comprender el script ya que no es difícil y si entiendes una parte del script nada mas entenderán absolutamente todo el script de esa manera

Me acabo de dar cuenta de una cosa la rutina que trabaja con el parche A hace un parpadeo así que mejor trabajen con la B y por favor denle esto a alguien que sea bueno en script y así les explica mejor y pueden llegar hacer grandes cosas de verdad quisiera ayudarlos más pero es que explicando estoy fatal tal vez si alguien me manda como hacer un tutorial en si puede ser que haga mejores cosas
 

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia
Buenas, buenas, chiquis.

Me paso por aquí para dejar un llamado de atención sobre los comentarios. Recuerden que siempre deben estar relacionados al tema en cuestión (aquí la duda) y, por favor, intenten no incurrir tanto en el multipost (muchos mensajes seguidos). No siempre se justifica y vuelve al tema más largo y más difícil de navegar.


MENU PERSONALIZADO

Primero quiero que sepan que me voy a basar en el parche A porque es que mejor encontré para explicar pero si saben trabajar con uno ya sabrán trabajar con el otro.

Segundo no soy de hacer tutoriales pq no me explico muy bien ,pero tratare de ser lo mejor entendible posible.

Tercero lo mejor que pueden hacer es darle este tuto a alguien con esperencia para que lo estudie y tal vez puede explicarlo mejor que yo y ensenarles más cosas de la que yo puedo .

Cuarto lo que voy hacer no es un tuto en si sino explicarles las cosas que no se les explican en ese tuto que para muchos tal vez sea fácil pero para otros por lo que note le es bastante difícil aunque también tengo reconocer que me expreso muy mal.

...
Por último, simple o complejo, mejor o peor, esto es un tutorial. Por lo tanto, el sitio indicado para publicarlo es un nuevo tema en el subforo de Tutoriales.

Dicho esto y en vistas de que la duda quedó resuelta, cierro el tema. Gracias por su atención.
 
Estado
Cerrado para nuevas respuestas.
Arriba