Registrarse

FR | Dexnav

FBI

Usuario de platino
I made a Dexnav

Hey it's been a while since I posted any public resources. Recently, I completed my implementation of a Dexnav feature originally from CommHack (rip). Hopefully people like it/want to use it.
Source Code is available for modification and download at: https://github.com/EternalCode/Dexnav

grass

water
https://streamable.com/jmb0



Important notes

This repository also implements Hidden abilities and repoints the Pokemon Base Stats table! For your tools to be compatible with the moving of the BST table, please refer to the output.txt created post compilation. It will have a long list of symbol names, you want to look for "gbasestats".

Additionally, variable 0x408B is reserved for the select button mechanic. A save block hack is also needed.
See:
https://github.com/EternalCode/Dexnav/blob/master/src/dexnav/HUD/dexnav_hud.h#L14
https://github.com/EternalCode/Dexnav/blob/master/src/dexnav/HUD/dexnav_hud.h#L15


Customization

1) To customize the Base Stat table/hidden abilities edit ".hidden_ability" in https://github.com/EternalCode/Dexnav/blob/master/src/pokemon_base_stats.c

2) If there are more things you want to customize, ask in the thread and I'll update this section


Installation + Setup

To set up follow: https://github.com/EternalCode/Dexnav/blob/master/README.md
Here is a UPS file download: https://www.mediafire.com/file/4gy4id8qfhabzmq/dexnav_1_22_2019.ups/file. Only use that if you haven't expanded your Pokemon already. It should be inserted consuming addresses 0x09800000 in the expanded part of the ROM.


Credits

https://github.com/Touched project structure
https://github.com/pret string related tools and pokeemerald resources
Wobb for making/helping with the GUI design
 

MACHINE

Space Cowboy
Respuesta: Fire Red Dexnav

Wow, I'm more and more impressed by the ROM Hacking ... and now I'm more eager to learn.

Definitely impressive!

Thanks for bringing this to WaH! ^^
 

Lunos

Enfrentando a La Organización
Miembro insignia
Re: Fire Red Dexnav

I don't think there's a way for me to describe how I feel about this incredible feature.
I mean, I remember you posted a video a lot of time ago showing a more basic implementation of the DexNav, but man.. to think it would become this? It's absolutely impressive!
What's more, I'm really glad you decided to share this instead of letting it rot in the PokeCommunity CommHack's grave.
Amazing work, congratulations FBI ^^!

I just have one single question though, does this DexNav work in a ROM with expanded pokémon?
 

Aguiar

Colega de los colegas
Miembro del equipo
Staff
Respuesta: Fire Red Dexnav

Increíble trabajo! Muchas gracias por acordarte de nosotros, los hispanos.
Se ve muy pulida y que liberes el código para editarlo a gusto, simplemente perfecto!
 

FBI

Usuario de platino
Respuesta: Re: Fire Red Dexnav

I don't think there's a way for me to describe how I feel about this incredible feature.
I mean, I remember you posted a video a lot of time ago showing a more basic implementation of the DexNav, but man.. to think it would become this? It's absolutely impressive!
What's more, I'm really glad you decided to share this instead of letting it rot in the PokeCommunity CommHack's grave.
Amazing work, congratulations FBI ^^!

I just have one single question though, does this DexNav work in a ROM with expanded pokémon?
The only thing this hack cares about is the Pokemon Base stats table found at 0x08254784 in vanilla Fire Red. You can expand all you want :)

For games which want to add more Pokemon, an extremely easy approach would be to insert this first, then repoint the BST table as normal.

However, it will require a couple of steps to get into a ROM which has repointed the base stats table. If your game isn't clean, then you'll need to do some editing:
1) Delete the file: https://github.com/EternalCode/Dexnav/blob/master/patches/pokemon_bst.s

2) Delete this line: https://github.com/EternalCode/Dexnav/blob/master/main.s#L9

3) Delete the BST in this file: https://github.com/EternalCode/Dexnav/blob/master/src/pokemon_base_stats.c
instead add the line "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0xAddress of you base stat table)

4) There are two bytes of padding at the end of the Pokemon base stats table. The first of the two is used for a hidden ability. As long as you update this in your BST table it will work ingame/in the dexnav

5) Compile.
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
Respuesta: Fire Red Dexnav

Wow @FBI. Amazing work as always :awesome:
 

Versekr Dark

Usuario mítico
Respuesta: Re: Fire Red Dexnav



The only thing this hack cares about is the Pokemon Base stats table found at 0x08254784 in vanilla Fire Red. You can expand all you want :)

For games which want to add more Pokemon, an extremely easy approach would be to insert this first, then repoint the BST table as normal.

However, it will require a couple of steps to get into a ROM which has repointed the base stats table. If your game isn't clean, then you'll need to do some editing:
1) Delete the file: https://github.com/EternalCode/Dexnav/blob/master/patches/pokemon_bst.s

2) Delete this line: https://github.com/EternalCode/Dexnav/blob/master/main.s#L9

3) Delete the BST in this file: https://github.com/EternalCode/Dexnav/blob/master/src/pokemon_base_stats.c
instead add the line "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0xAddress of you base stat table)

4) There are two bytes of padding at the end of the Pokemon base stats table. The first of the two is used for a hidden ability. As long as you update this in your BST table it will work ingame/in the dexnav

5) Compile.
Disculpen si alguien puede ayudarme quisiera saber como modifico esto, no logro entender a que se reviere FBI:

3) Delete the BST in this file: https://github.com/EternalCode/Dexnav/blob/master/src/pokemon_base_stats.c
instead add the line "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0xAddress of you base stat table)

No se si es asi como se configura o me falta algo?:

#include <pokeagb/pokeagb.h>
#include "pokemon_base_stats.h"

const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0x08XXXXXX



Lo siento si alguien se aburre de contestar pero todavía no entiendo muy bien todo esto del código C.
 

Giorgio

Enamorado del DECOMP :3 <3
Disculpen si alguien puede ayudarme quisiera saber como modifico esto, no logro entender a que se reviere FBI:

3) Delete the BST in this file: https://github.com/EternalCode/Dexnav/blob/master/src/pokemon_base_stats.c
instead add the line "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0xAddress of you base stat table)

No se si es asi como se configura o me falta algo?:

#include <pokeagb/pokeagb.h>
#include "pokemon_base_stats.h"

const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0x08XXXXXX



Lo siento si alguien se aburre de contestar pero todavía no entiendo muy bien todo esto del código C.
Hola lo que entendi de lo que estoy leyendo es que en "const struct PokemonBaseStatNew gBaseStats [] = (const struct PokemonBaseStatNew []) 0xAddress of you base stat table ) lo que tienes que hacer es poner el offset en donde estan guardados los stats bases de los pokemon de tú rom en cuestión en la parte 0xAdress, trata de identificar donde estan guardados los stats base de tus pokemon en tu rom y pon esa dirección valga la redundancia.
 

Versekr Dark

Usuario mítico
Hola lo que entendi de lo que estoy leyendo es que en "const struct PokemonBaseStatNew gBaseStats [] = (const struct PokemonBaseStatNew []) 0xAddress of you base stat table ) lo que tienes que hacer es poner el offset en donde estan guardados los stats bases de los pokemon de tú rom en cuestión en la parte 0xAdress, trata de identificar donde estan guardados los stats base de tus pokemon en tu rom y pon esa dirección valga la redundancia.
Si eso lo se y al momento de ponerlo no lo lee y sale ese error jaja xD
 

Giorgio

Enamorado del DECOMP :3 <3
Si eso lo se y al momento de ponerlo no lo lee y sale ese error jaja xD
No sé si leiste lo que te escribí al privado pero recalco, creo que una de las fallas en tú código es la falta de un ";" al final de "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0x08XXXXXX" o sea el código deberia quedar "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0x08XXXXXX;" pruebalo y si sigue sin funcionar, muestra cual es el error que te salta denuevo en el powershell, para tratar de interpretar ahora en donde marca nuevamente error si es que marca.
 

Wigan

Enginer
Gracias! Tu aporte es genial! Es bueno que aportes a la comunidad hispana, espero que sigas así.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Respuesta: Re: Fire Red Dexnav



The only thing this hack cares about is the Pokemon Base stats table found at 0x08254784 in vanilla Fire Red. You can expand all you want :)

For games which want to add more Pokemon, an extremely easy approach would be to insert this first, then repoint the BST table as normal.

However, it will require a couple of steps to get into a ROM which has repointed the base stats table. If your game isn't clean, then you'll need to do some editing:
1) Delete the file: https://github.com/EternalCode/Dexnav/blob/master/patches/pokemon_bst.s

2) Delete this line: https://github.com/EternalCode/Dexnav/blob/master/main.s#L9

3) Delete the BST in this file: https://github.com/EternalCode/Dexnav/blob/master/src/pokemon_base_stats.c
instead add the line "const struct PokemonBaseStatNew gBaseStats[] = (const struct PokemonBaseStatNew[])0xAddress of you base stat table)

4) There are two bytes of padding at the end of the Pokemon base stats table. The first of the two is used for a hidden ability. As long as you update this in your BST table it will work ingame/in the dexnav

5) Compile.
Estas instrucciones para proyectos con Pokémon expandidos no son del todo correctas, asi que paso a dejar unas nuevas que FBI me aprobó.


Se las escribí en Español a alguien que estaba intentando aplicar esta inyección a su proyecto.
-Borrar patches/pokemon_bst.s como dijo FBI en Wah.
-Borrar la inclusión de ese archivo en main.s como dijo FBI en Wah.
-Borrar src/pokemon_base_stats.c tambien.
-Por ultimo, añadir gBaseStats = 0x08DIRECCIÓN; en symbols.ld, donde 0x08DIRECCIÓN es el offset de la tabla de estadisticas base, en mi caso 0x08254784.

Yo ya lo probé, compila lo más tranqui, todo funciona correcto, y comparado con lo que escribí yo, no tira ninguna advertencia ni nada al compilar la ROM.
Eso sí, quizá tengas que toquetear el tema de las habilidades ocultas, si las tienes implementadas en tu ROM. Yo de eso si que no tengo ni pajolera idea.
 
Arriba