Registrarse

E | Otros | Al descubrimiento de... La ROM EMERALD

Steven

Usuario de Bronce
[align=center]
Al descubrimiento de.... EMERALD![/align]

En verdad, esto no es un real tutorial... o mejor, yo la defino una "búsqueda." Me explico mejor...

De algún día, estoy estudiando Emerald para lograr entender por cuál motivo muchos hackeres, yo comprendido, no hayan tomado nunca mucho en consideración esta rom.

¿Qué ofrece Emerald?
¡Buena pregunta! Sinceramente no lo sé tampoco yo con certeza.Indudablemente ofrece muchas más innovación que Ruby, éste es obvio.
Pero si tuviera que enumerar todo en potencial de este hack, sólo diría algunas cosas:
- Animated sprite
- 244 OW
- más tileset
- más paletas
- fimado de Rayquaza, Groudon y Kyogre
- más special
- 2 region map (si no equivoco)


Claro, todo bonito, todo magnífico...pero, a cada cosa bonita, se acerca a una no buena... como dicen en France...c'est la vie!


¿Qué hay de mal?
Ante todo... el espacio amigos!!
El verdadero espacio libre o bien FF, tienen principio en el offset 00E3E878!!

ah! Claro!! Olvídadvos toda la magia que el buen viejo R!cci nos ha enseñado con su Writebytetooffset...porque en Emerald las compensaciones son dinámicas...(mientras en Ruby los offset de las coordenadas X y Y de la telecámara siempre son los mismos, en Emerald cambian cada vez al cambiar mapa... raramente son los mismos)...luego, ningun movimiento instantáneo de la telecámara. Solo con ASM...y no es simple.

Ahora pero basta ya. No quiero asustarvos y decirvos que Ruby es mejor que Emerald o viceversa...solo quiero enseñarvos mis descubrimientos.

[HR]

Reloj portátil y Mapa en estilo FR LG
Qué sirve?
- ItemManager

Abrís vuestro Emerald ROM con ItemManager y buscáis el objeto que deseáis.
En mi caso, usaré el Town Map de Fire Red (Emerald también contiene a su interior los objetos de fire red)

Pulsa el >>



Encontraremos una sección llamada Field Usage con esto offset 80FE821.
Reemplazamolos con el offset 8138C95.



Et voilà!! ¡Tenemos nuestro mapa de la región portátil como FR/LG!

[HR]

Misma cosa para el Reloj.
Elegís vuestro objeto y seleccionada por la voz Type: 01 - Out of Battle.



Y reemplazamolos con el offset 8137CC9.




[HR]

BOY/GIRL
Aquí, la cosa es mucho más compleja de Ruby.
Por cuánta Ruby concierne, basta ya un simple Writebyteoffset para poder transformarte en uno de los 2 héroes.

En Emerald, naturalmente no.

¿Cosa se puede hacer??
Naturalmente la calle más segura es.... ASM.
No todos son a conocimiento del lenguaje ASM, por lo tanto podría resultar difícil este paso.
¡Por tanto, esta vez, el trabajo sucio lo he hecho yo (XD) y.... Voilà!

Código:
07B5 0348 0068 017A 0122 5140 0172 07BD 905D 0003
¿:.¿:.

Que es esto??
Esta as una ASM Routine en HEX para acher un cambio de BOY a GIRL.
This routine it's made by me, SteveN. So, give credits if used. Thanks.

Cómo ponerlo en un Rom??
Abrís el código con un HEX editor y copíalo.

Ahora, también abrís el ROM con el editor HEX y buscáis una compensación libre... yo siempre aconsejo los que acaban con 0, 2, 4, 6, 8, A, C, E.



Pegáis el código y salváis.




Cuando hagáis un script, tendréis que usar este mando:
Código:
Callasm 0x(offset +1)
Offset + 1???!
Si, en mi caso, 00E3E882.

Código:
00E3E882 +1 = 00E3E883
luego...
Código:
Callasm 0x00E3E883
.

Si habéis hecho como todo os he dicho, probad vuestro script, entrad en un nuevo mapa con un WARP, y habréis conseguido una transformación de vuestro player!

Naturalmente he creado esta rutina de modo que, si activáis de nuevo el script, conseguirá la transformación inversa ^^
Boy/Girl Girl/Boy.

No vos olvidéis los créditos! ^^v



[HR]

El cambio instantáneo de Paletas!
Creo que todo conocemos el nuevo vídeo del script inicial del buen viejo R!cci...no?
Dónde hay el player que corre en un fondo blanco y negro...

Bien, creo que él es el rey de el WBTO (WriteByteToOffset), si duda.
Yo no explicaré os cómo hacer este en Ruby... creo que será de R!cci el honor de hacerlo...
pero, aunque si es un contrasentido, os explicaré cómo hacerlo en Emerald XD

en realidad explicarvos como he hecho a encontrar el offset sería largo, y al momento no tengo mucho tiempo.

Os indicaré sencillamente el offset y como usarlo.

Código:
2037B14
En esta serie, que podría parecer casual, de valores HEX, es contenido la magia.

Explicaré paso por paso.
Miráis esta imagen...



Seleccionando de vuestro VBA Tools == => Palas Viewer
Conseguiréis éste.


Ante todo, tenemos que seleccionar el color que nos interesa transformar.
IMPORTANTE: El cambio del color con el WBTO queda activo hasta cuando no entréis en un WARP.

En mi caso, yo he elegido de cambiar las paletas de la hierba que es 530E qué pero deberá ser invertido de este modo:

Luego
Código:
530E = 0E53
Como podéis ver de la imagen, después de haber seleccionado el color, comparecerán algunas informaciones.
En nuestro caso, la única cosa que nos interesa es la sección Address.

Código:
Address: 0x0500005A
Que es esto?? :s
Claro, todos aquellos números tienen un sentido, pero al momento, nos no interesa saberlo.
Removemos a la parte inicial, 05 y conseguiremos éste:

Código:
00005A = 5A
ahora es más simple no?

Bien, a este punto, tenemos 2 informaciones: 2037B14 y 5A.
Tenemos que sumarlos. También en este caso, como para la mayor parte de mis tutorial, interviene la calculadora en modalidad scentifica en HEX (Dios bendiga Bill Gates!).



Código:
2037B14 + 5A = 2037B6E
Et voilà!!
hemos encontrado nuestro offset!

Por tanto, en nuestro XSE escribiremos éste:

Código:
Writebytetooffset 0x(color que queremos reemplazar...yo usaré 00 por ejemplo) 0x2037B6E
pero esto no es completo!!
De este modo, sólo hemos cambiado una parte de nuestra paleta.

¿Recordáis como fue?
0E53, con nuestro Writebytetooffset ha vuelto 0053...qué corresponde a éste:

Luego tenemos que modificar también el offset siguiente, basta tomar nuestro offset 2037B6E y acher +1

Código:
2037B6E + 1 = 2037B6F
Por tanto, en conclusión, para cambiar una paleta, tendréis que usar 2 writebytetooffset.
Nuestro script completo será así:

Código:
Writebytetooffset 0x00 0x2037B6E
Writebytetooffset 0x00 0x2037B6F

Resultado:




[HR]

Remover la elección BOY/GIRL


En verdad, hacer ésto es decididamente muy simple.
La magia consiste en buscar el offset que corresponden a este multichoice box y editarlos.

Dichosamente pero, no necesitaréis buscar el offset porque os lo proveo yo.
Bien, empezamos...
en primer lugar tendréis que abrir vuestro ROM con el usual HEX editor y ir a esto offset:
Código:
030E04
[hr]

Indudablemente habréis notado estos valores:
Código:
090E 0308
Bien... la única cosa que tendréis que hacer es reemplazar estos valores con:
Código:
4110 0308
Et voilà! Habréis removido el selecto BOY/GIRL.

Credits to Derlo for his help with this offset.
 

Juanjo

Hacker del pasado...
RE: Al descubrimiento de.... EMERALD!

Hey amigo Dante, una vez más, genial tuto , seguro revolucionaras los hacks de emerald

Muy bueno, espero ver todos los que se inspiren de esto

Felicitaciones, exceente tuto, sigue haciendo TUTOS!!!

Te recomiendo ¡Como cambiar el Poochiena del inicio de Rubi! o el Zizagon de Emeral

+1 Gracias
 

Feliipe

Usuario de Oro
RE: Al descubrimiento de.... EMERALD!

WOW dante esta genial...deberias seguir puliendo mas este tutorial poniendo mas
cosas de esmeralda y eso...
 

Steven

Usuario de Bronce
RE: Al descubrimiento de.... EMERALD!

Juanjo dijo:
Hey amigo Dante, una vez más, genial tuto , seguro revolucionaras los hacks de emerald

Muy bueno, espero ver todos los que se inspiren de esto

Felicitaciones, exceente tuto, sigue haciendo TUTOS!!!

Te recomiendo ¡Como cambiar el Poochiena del inicio de Rubi! o el Zizagon de Emeral

+1 Gracias
gracias amigo...trataré de descubrir también aquél :)

Takeru dijo:
WOW dante esta genial...deberias seguir puliendo mas este tutorial poniendo mas
cosas de esmeralda y eso...
ahah! Gracias vejo...bien en esto caso...VAMOS!!

[HR]

Holaaa amigos!! Ante de todo...Gracias por vuestras gracias (o_O!!) porque me ayuda a continuar en mi búsqueda.
Bien, no niego que todo esto trabajo estoy haciéndolo porque me sirve para mi hack... pero en cada modo soy feliz de compartir este con vosotros.
Somos una comunidad. Si nos no ayudamos al menos en este, no tendría sentido hacer hack vale? :)

[HR]

Bien, que hay de nuevo hoy??

El cambio instantáneo de Paletas!

Creo que todo conocemos el nuevo vídeo del script inicial del buen viejo R!cci...no?
Dónde hay el player que corre en un fondo blanco y negro...

Bien, creo que él es el rey de el WBTO (WriteByteToOffset), si duda.
Yo no explicaré os cómo hacer este en Ruby... creo que será de R!cci el honor de hacerlo...
pero, aunque si es un contrasentido, os explicaré cómo hacerlo en Emerald XD

en realidad explicarvos como he hecho a encontrar el offset sería largo, y al momento no tengo mucho tiempo.

Os indicaré sencillamente el offset y como usarlo.

Código:
2037B14
En esta serie, que podría parecer casual, de valores HEX, es contenido la magia.

Explicaré paso por paso.
Miráis esta imagen...



Seleccionando de vuestro VBA Tools == => Palas Viewer
Conseguiréis éste.


Ante todo, tenemos que seleccionar el color que nos interesa transformar.
IMPORTANTE: El cambio del color con el WBTO queda activo hasta cuando no entréis en un WARP.

En mi caso, yo he elegido de cambiar las paletas de la hierba que es 530E qué pero deberá ser invertido de este modo:

Luego
Código:
530E = 0E53
Como podéis ver de la imagen, después de haber seleccionado el color, comparecerán algunas informaciones.
En nuestro caso, la única cosa que nos interesa es la sección Address.

Código:
Address: 0x0500005A
Que es esto?? :s
Claro, todos aquellos números tienen un sentido, pero al momento, nos no interesa saberlo.
Removemos a la parte inicial, 05 y conseguiremos éste:

Código:
00005A = 5A
ahora es más simple no?

Bien, a este punto, tenemos 2 informaciones: 2037B14 y 5A.
Tenemos que sumarlos. También en este caso, como para la mayor parte de mis tutorial, interviene la calculadora en modalidad scentifica en HEX (Dios bendiga Bill Gates!).



Código:
2037B14 + 5A = 2037B6E
Et voilà!!
hemos encontrado nuestro offset!

Por tanto, en nuestro XSE escribiremos éste:

Código:
Writebytetooffset 0x(color que queremos reemplazar...yo usaré 00 por ejemplo) 0x2037B6E
pero esto no es completo!!
De este modo, sólo hemos cambiado una parte de nuestra paleta.

¿Recordáis como fue?
0E53, con nuestro Writebytetooffset ha vuelto 0053...qué corresponde a éste:

Luego tenemos que modificar también el offset siguiente, basta tomar nuestro offset 2037B6E y acher +1

Código:
2037B6E + 1 = 2037B6F
Por tanto, en conclusión, para cambiar una paleta, tendréis que usar 2 writebytetooffset.
Nuestro script completo será así:

Código:
Writebytetooffset 0x00 0x2037B6E
Writebytetooffset 0x00 0x2037B6F

Resultado:

 
RE: Al descubrimiento de.... EMERALD! Part - 2!!

Cada dia me quedo mas sorprendido con tu excelentes tutoriales. Gracias a ti, personas como yo que usan Emerald para hacer un hack rom, te estamos muy agradecidas. Sinceramente, muchas gracias por lo del cambio de paletas para emerald, me vendrá muy bien.

Gracias:

~KuruS!
 

Steven

Usuario de Bronce
RE: Al descubrimiento de.... EMERALD! Part - 2!!

KuruS dijo:
Cada dia me quedo mas sorprendido con tu excelentes tutoriales. Gracias a ti, personas como yo que usan Emerald para hacer un hack rom, te estamos muy agradecidas. Sinceramente, muchas gracias por lo del cambio de paletas para emerald, me vendrá muy bien.

Gracias:

~KuruS!
eheh! De nada amigo ;)

[HR]

He repuesto las imágenes viejas porque desaparecieron...;)
 

Jaizu

Decomp user
RE: Al descubrimiento de.... EMERALD! Part - 2!!

Wow, ya lo sabía me la flojera pudo conmgio y no comenté '¬¬
Bueno, el tuo está chulo :XD:
Espero que no tenga lo malo es que yo uso la paleta del suelo en la paleta 0 ¿:.
Si, tenog el cp y el mart en una paleta :s
Uso la dle suelo en la 2 también, en la 3 y la 5 ];)

Bueno, a ver si dejabas el link del item manager :D
 

Cheve_X

MoonLover~
Miembro de honor
RE: Al descubrimiento de.... EMERALD! Part - 2!!

Gracias por hacer mi vida un poco mas facil :XD:
 

Steven

Usuario de Bronce
RE: Al descubrimiento de.... EMERALD! Part - 3!! (Act. 6-5-2011)

[size=Large]Remover la elección BOY/GIRL[/size]



En verdad, hacer ésto es decididamente muy simple.
La magia consiste en buscar el offset que corresponden a este multichoice box y editarlos.

Dichosamente pero, no necesitaréis buscar el offset porque os lo proveo yo.
Bien, empezamos...
en primer lugar tendréis que abrir vuestro ROM con el usual HEX editor y ir a esto offset:
Código:
030E04
[hr]

Indudablemente habréis notado estos valores:
Código:
090E 0308
Bien... la única cosa que tendréis que hacer es reemplazar estos valores con:
Código:
4110 0308
Et voilà! Habréis removido el selecto BOY/GIRL.

Credits to Derlo for his help with this offset.
 

Jaizu

Decomp user
RE: Al descubrimiento de.... EMERALD! Part - 3!! (Act. 6-5-2011)

Está bastante bueno, no parece difícil pero yo retorno a RUBY jeje
Sigue así bro!
 
RE: Al descubrimiento de.... EMERALD! Part - 3!! (Act. 6-5-2011)

Hola SteveN, me gusta el trabajo que haces.
Vengo para dejar una opción al "Remover la elección BOY/GIRL"
Se trata de un arreglo para que suceda lo mismo, pero este te deja la opción que dice: All right. What's your name? Y no te muestra un txtbox vacío...

Es exactamente lo mismo:

Dirigirse a:
Código:
030E04
Encontrarás estos valores:
Código:
090E 0308
Y reemplazamos por esto:
Código:
D50F 0308
 
Respuesta: Al descubrimiento de.... EMERALD! Part - 3!! (Act. 6-5-2011)

Muchas gracias por tomarte el tiempo! En verdad es muy util el tutorial para quienes editamos emerald.
Una consulta viendo que usas el mismo rom base. Si por casualidad sustituyo todos los mapas del juego excepto la frontera de batalla seguira funcionando? Supongo solo habria que cambiar la forma en que obtienes el ticket y el script de viaje en barco
 
Arriba