Author Id: 13336 Author Name: Steven Post Content: [IMG]http://www.freewebs.com/kirbyscrib/rayquaza.jpg[/IMG] Al descubrimiento de.... EMERALD! 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 [spoiler=Pincha para desplegar este spoiler]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 >> [IMG]http://img146.imageshack.us/img146/9821/tutorial1s.png[/IMG] Encontraremos una sección llamada Field Usage con esto offset 80FE821. Reemplazamolos con el offset 8138C95. [IMG]http://img811.imageshack.us/img811/2347/tutorial2r.png[/IMG] 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. [IMG]http://img816.imageshack.us/img816/9121/tutorial3.png[/IMG] Y reemplazamolos con el offset 8137CC9. [IMG]http://img585.imageshack.us/img585/1472/tutorial4.png[/IMG][/spoiler] [HR] BOY/GIRL [spoiler=Pincha para desplegar este spoiler]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à! 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. [IMG]http://img829.imageshack.us/img829/6438/tutorial5.png[/IMG] Pegáis el código y salváis. [IMG]http://img600.imageshack.us/img600/7762/tutorial6.png[/IMG] Cuando hagáis un script, tendréis que usar este mando: Callasm 0x(offset +1) Offset + 1???! Si, en mi caso, 00E3E882. 00E3E882 +1 = 00E3E883 luego... 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[/spoiler] [HR] El cambio instantáneo de Paletas! [spoiler=Pincha para desplegar este spoiler] [url=http://www.youtube.com/watch?v=SGKAHxJWQNM][IMG]http://wahackforo.com/uploads/avatars/avatar_763.png[/IMG][/url] 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. 2037B14 En esta serie, que podría parecer casual, de valores HEX, es contenido la magia. Explicaré paso por paso. Miráis esta imagen... [IMG]http://img13.imageshack.us/img13/9715/86912925.png[/IMG] 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: [IMG]http://img822.imageshack.us/img822/6631/86972200.png[/IMG] Luego 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. 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: 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!). [IMG]http://img541.imageshack.us/img541/8126/39045497.png[/IMG] 2037B14 + 5A = 2037B6E Et voilà!! hemos encontrado nuestro offset! Por tanto, en nuestro XSE escribiremos éste: 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: [IMG]http://img705.imageshack.us/img705/5247/24487682.png[/IMG] Luego tenemos que modificar también el offset siguiente, basta tomar nuestro offset 2037B6E y acher +1 2037B6E + 1 = 2037B6F Por tanto, en conclusión, para cambiar una paleta, tendréis que usar 2 writebytetooffset. Nuestro script completo será así: Writebytetooffset 0x00 0x2037B6E Writebytetooffset 0x00 0x2037B6F Resultado: [IMG]http://img834.imageshack.us/img834/821/try.gif[/IMG][/spoiler] [HR] Remover la elección BOY/GIRL [spoiler=Pulsa para desplegar este spoiler][IMG]http://img402.imageshack.us/img402/8362/22881905.png[/IMG] 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: 030E04 [hr] Indudablemente habréis notado estos valores: 090E 0308 Bien... la única cosa que tendréis que hacer es reemplazar estos valores con: 4110 0308 Et voilà! Habréis removido el selecto BOY/GIRL. Credits to Derlo for his help with this offset.[/spoiler]