Holi. Este tutorial lo encontré hace un tiempo y olvidé traerlo hasta aqui, principalmente son tweaks para Pokémon Emerald.
Con este tutorial obtendremos un montonazo de espacio libre y nos aseguraremos de que Advance Map no nos pueda joder nuestra ROM, cosa que al parecer pasa bastante seguido con Emerald.
Antes de empezar y como siempre, los creditos el dia de hoy van para Sky0fBlades de PHO por crear el tutorial y postearlo justo aqui.
Dicho eso, empecemos.
Requisitos:
-Advance Map
-ROM de Pokémon Emerald
-Editor Hexadecimal a preferencia (Como siempre, yo usaré mi amado HxD)
-XSE
Tweak #1 - Corrigiendo el .ini de Advance Map
Tweak #2 - Hacer usable los espacios vacios 0x00
Tweak #3 - Consejos a la hora de escribir tus scripts para Emerald en XSE
Advertencias
-Si utilizas la version hecha por ZodiacDaGreat de la herramienta Day & Night, recuerda configurarlo de modo que utilize un offset que tú no hayas usado para un script o cualquier otra cosa. Por defecto, el programa usa el offset 0xAF0000, lo cual por supuesto es bueno ya que por defecto es espacio vacio en la ROM; pero si tú ya usaste ese espacio para algun script o lo que sea, la herramienta naturalmente lo sobreescribirá. Tenlo presente.
-Si utilizas el Tileset Animation Editor de Lu-Ho, asegurate de hacer exactamente los mismos cambios explicados en el Tweak #1 referente al archivo "AdvanceMap.ini", debido a que TAE tambien usa la misma base para sus ".ini".
Descargas
1) Parche de Estabilización.
Nota: Este parche aplica lo explicado en el Tweak #2.
2) Lunar IPS.
Y eso fue todo.
Con este tutorial obtendremos un montonazo de espacio libre y nos aseguraremos de que Advance Map no nos pueda joder nuestra ROM, cosa que al parecer pasa bastante seguido con Emerald.
Antes de empezar y como siempre, los creditos el dia de hoy van para Sky0fBlades de PHO por crear el tutorial y postearlo justo aqui.
Dicho eso, empecemos.
Requisitos:
-Advance Map
-ROM de Pokémon Emerald
-Editor Hexadecimal a preferencia (Como siempre, yo usaré mi amado HxD)
-XSE
Tweak #1 - Corrigiendo el .ini de Advance Map
Explicación:
Con la ayuda de DiegoIsAwesome, creador de Pokémon Crystal Dust y moderador de /r/PokemonROMHacks, Sky0fBlades pudo descubrir que Pokémon Emerald utiliza los bytes 0xFF Y 0x00 para marcar las zonas de espacio vacio.
(por lo regular, Ruby y Fire Red solo utilizan 0xFF)
Sin embargo, LOS VERDADEROS bytes de espacio vacio se encuentran en ciertas zonas muy especificas de la ROM, zonas que naturalmente mencionaré en esta guia
Como muchos sabran, Advance Map busca por defecto las zonas de espacio vacio desde el offset 0x6B0000 especificamente, en Pokémon Emerald.
Ese offset NO posee espacio vacio lo que dará como resultado la corrupción de varios de los instrumentos usados por la musica del juego, causando que varias notas suenen de forma aleatoria como "beep".
Por lo general, este problema no se descubre hasta que es demasiado tarde para arreglarlo y es permanente, una vez que pasa ya no puede ser corregido.
Hay varias formas de evitar este problema, una de ellas es modificar el offset en el que A-Map busca espacio vacio por defecto en Pokémon Emerald, reemplazandolo por las zonas que tienen VERDADERO espacio vacio, tales como:
De 0x9C0B20 a 0xAFFFFF
De 0xB98B30 a 0xBFFFFF
De 0xD3CEA0 a 0xD437EF
De 0xDE4018 a 0xE3CF48
De 0xE3CF64 hasta el final.
Quizá hayan mas, pero eso es todo lo que Sky encontró de momento.
Corrigiendo el problema:
1) En tu carpeta de Advance Map, abre la carpeta "ini". En ella, abre el archivo "AdvanceMap.ini".
2) Con un editor de texto, usa Ctrl+F/Ctrl+B y busca "version:bpe".
3) Hecho eso, haz los siguientes cambios:
*En la linea SuchByte=$00 cambia $00 por $FF
*En la linea SuchBeginn=$6B0000 cambia $6B0000 por el offset desde el que Advance Map buscará espacio vacio de ahora en mas.
4) Guarda los cambios.
Hecho eso, Advance Map ya no podrá reemplazar ningun espacio ya usado por la ROM, pero incluso tras hacer estos cambios, al añadir nuevos datos de Pokémon Salvajes o incluso mapas nuevos (Sky no está muy seguro sobre esto) se seguirán sobreescribiendo los bytes incorrectos.
Con la ayuda de DiegoIsAwesome, creador de Pokémon Crystal Dust y moderador de /r/PokemonROMHacks, Sky0fBlades pudo descubrir que Pokémon Emerald utiliza los bytes 0xFF Y 0x00 para marcar las zonas de espacio vacio.
(por lo regular, Ruby y Fire Red solo utilizan 0xFF)
Sin embargo, LOS VERDADEROS bytes de espacio vacio se encuentran en ciertas zonas muy especificas de la ROM, zonas que naturalmente mencionaré en esta guia
Como muchos sabran, Advance Map busca por defecto las zonas de espacio vacio desde el offset 0x6B0000 especificamente, en Pokémon Emerald.
Ese offset NO posee espacio vacio lo que dará como resultado la corrupción de varios de los instrumentos usados por la musica del juego, causando que varias notas suenen de forma aleatoria como "beep".
Por lo general, este problema no se descubre hasta que es demasiado tarde para arreglarlo y es permanente, una vez que pasa ya no puede ser corregido.
Hay varias formas de evitar este problema, una de ellas es modificar el offset en el que A-Map busca espacio vacio por defecto en Pokémon Emerald, reemplazandolo por las zonas que tienen VERDADERO espacio vacio, tales como:
De 0x9C0B20 a 0xAFFFFF
De 0xB98B30 a 0xBFFFFF
De 0xD3CEA0 a 0xD437EF
De 0xDE4018 a 0xE3CF48
De 0xE3CF64 hasta el final.
Quizá hayan mas, pero eso es todo lo que Sky encontró de momento.
Corrigiendo el problema:
1) En tu carpeta de Advance Map, abre la carpeta "ini". En ella, abre el archivo "AdvanceMap.ini".
2) Con un editor de texto, usa Ctrl+F/Ctrl+B y busca "version:bpe".
3) Hecho eso, haz los siguientes cambios:
*En la linea SuchByte=$00 cambia $00 por $FF
*En la linea SuchBeginn=$6B0000 cambia $6B0000 por el offset desde el que Advance Map buscará espacio vacio de ahora en mas.
4) Guarda los cambios.
Hecho eso, Advance Map ya no podrá reemplazar ningun espacio ya usado por la ROM, pero incluso tras hacer estos cambios, al añadir nuevos datos de Pokémon Salvajes o incluso mapas nuevos (Sky no está muy seguro sobre esto) se seguirán sobreescribiendo los bytes incorrectos.
Tweak #2 - Hacer usable los espacios vacios 0x00
Explicación:
Aqui convertiremos ciertos bloques de espacio vacio en nuestra ROM, que en lugar de usar 0xFF como deberian utilizan 0x00.
Corrigiendo el problema:
En esta parte del tutorial voy a explicar el proceso especificamente hecho con HxD.
1) Abre tu ROM de Pokémon Emerald en HxD
2) Vé a Edit > Select Block
3) En Start Offset pon 9C0B20 y en End Offset pon AFFFFF
Al hacer esto, HxD seleccionará automaticamente todos los bytes que se encuentren entre esos dos offsets.
4) Haz click derecho en el bloque seleccionado y luego Fill Selection
5) Cambia "00" por "FF" en donde dice "Fill Pattern of Pass - Hex-values"
6) Click en "Ok"
7) Repite exactamente los mismos pasos para los offsets:
DE4018 a E3CF48
B98B30 a BFFFFB
Y D3CEA0 a D437EF
8) Guarda los cambios y listo.
Aqui convertiremos ciertos bloques de espacio vacio en nuestra ROM, que en lugar de usar 0xFF como deberian utilizan 0x00.
Corrigiendo el problema:
En esta parte del tutorial voy a explicar el proceso especificamente hecho con HxD.
1) Abre tu ROM de Pokémon Emerald en HxD
2) Vé a Edit > Select Block
3) En Start Offset pon 9C0B20 y en End Offset pon AFFFFF
Al hacer esto, HxD seleccionará automaticamente todos los bytes que se encuentren entre esos dos offsets.
4) Haz click derecho en el bloque seleccionado y luego Fill Selection
5) Cambia "00" por "FF" en donde dice "Fill Pattern of Pass - Hex-values"
6) Click en "Ok"
7) Repite exactamente los mismos pasos para los offsets:
DE4018 a E3CF48
B98B30 a BFFFFB
Y D3CEA0 a D437EF
8) Guarda los cambios y listo.
Tweak #3 - Consejos a la hora de escribir tus scripts para Emerald en XSE
Explicación:
Tras los dos tweaks anteriores, lo que sigue te ayudará un monton. Si haz escrito scripts antes, sabes que por lo general estos se compilan en un offset "dinamico". Sin embargo, si quieres saber la definición exacta, aqui está escrita por HackMew en su guia sobre scripting en XSE:
Ahora, lo que lo facilitará todo, es usar un comando similar a #dynamic pero que cumple una función diferente. Este se llama #freespace 0xFF.
Usalo al inicio de cada script para hacer que busque un cierto patrón de bytes. En este caso, el comando buscará bytes 0xFF, algo que nos podemos permitir tras el Tweak #2.
Aqui un rapido ejemplo de como se usa el comando:
Tras los dos tweaks anteriores, lo que sigue te ayudará un monton. Si haz escrito scripts antes, sabes que por lo general estos se compilan en un offset "dinamico". Sin embargo, si quieres saber la definición exacta, aqui está escrita por HackMew en su guia sobre scripting en XSE:
Tras haber habilitado un monton de espacio vacio con los anteriores cambios que hicimos en HxD, ahora tenemos muchos mas Bytes FF con los que trabajar en nuestra ROM de Pokémon Emerald, al igual que la posibilidad de usar un Offset Dinamico mucho mas elevado en la lista de offsets que 0xE3CF64, que es 0x9C0B20.HackMew dijo:#dynamic elige el offset que el compilador usará para buscar espacio vacio en tu ROM para asi poder insertar tu script.
Uso:
#dynamic Offset
Ejemplo:
#dynamic 0x720000
Con ese comando, el compilador empezará a buscar espacio vacio a partir del offset 0x720000.
Ahora, lo que lo facilitará todo, es usar un comando similar a #dynamic pero que cumple una función diferente. Este se llama #freespace 0xFF.
Usalo al inicio de cada script para hacer que busque un cierto patrón de bytes. En este caso, el comando buscará bytes 0xFF, algo que nos podemos permitir tras el Tweak #2.
Aqui un rapido ejemplo de como se usa el comando:
Código:
[CENTER][B]#freespace 0xFF
#dynamic 0x9C0B20[/B]
#org @start
lock
faceplayer
msgbox @1 0x4
closeonkeypress
release
end
#org @1
= Holi![/CENTER]
Advertencias
-Si utilizas la version hecha por ZodiacDaGreat de la herramienta Day & Night, recuerda configurarlo de modo que utilize un offset que tú no hayas usado para un script o cualquier otra cosa. Por defecto, el programa usa el offset 0xAF0000, lo cual por supuesto es bueno ya que por defecto es espacio vacio en la ROM; pero si tú ya usaste ese espacio para algun script o lo que sea, la herramienta naturalmente lo sobreescribirá. Tenlo presente.
-Si utilizas el Tileset Animation Editor de Lu-Ho, asegurate de hacer exactamente los mismos cambios explicados en el Tweak #1 referente al archivo "AdvanceMap.ini", debido a que TAE tambien usa la misma base para sus ".ini".
Descargas
1) Parche de Estabilización.
Nota: Este parche aplica lo explicado en el Tweak #2.
2) Lunar IPS.
Y eso fue todo.
Última edición: