Registrarse

[RH - Scripting] Tengo una duda acerca de los pokemons en el codigo hexadecimal

Sonzai

Pequeño saltamontes
Bueno a ver, seria posible crear un pokemon en una ROM limpia o editar uno que ya está, con todo lo del pokemon incluidos sprites y demas, y luego copiar ese pokemon a otra ROM en un espacio vacio?

Quiero saber si todos los datos de un pokemon estan unidos uno atras del otro en el codigo hexadecimal y de ser asi, como encontrarlos para moverlos a otra ROM, si no estan unidos, quiero saber como ir encontrando uno por uno y de donde a donde se extiende el codigo que estoy copiando

La razon por la que quiero hacer esto es porque en la ROM que estoy editando no puedo usar ni PGE ni Advance Series, no es una ROM mia, la quiero editar para mi propia diversión añadiendo un pokemon que yo cree

Otra duda seria: ¿como hacer eventos sin advance map, o si no es posible, como poner este pokemon que yo cree en la PC (almacen) del juego, en una caja (sin advance map claro)?
 

Inferno

Miembro insignia
Miembro insignia
Puedes hacer ambas, cambiar uno o crear uno nuevo. Yo probaría con todas las herramientas que te ofrecen añadir/editar Pokémon ( Gen 3 Hack Suite creo que tambien lo hacía), antes de hacerlo a mano porque necesitas ciertos conocimientos no tan sencillos al principio como pueden ser manejo de punteros.

Si no es una ROM tuya tienes que mirar la rom base en la que se creó y puedes mirar por ejemplo en el archivo .ini de Pokemon Game Editor las direcciones hexadecimales a tablas con información sobre los Pokémon, o de cualquier otra herramienta de código abierto. Pero vamos que si es una ROM editada y te fallan seguramente hayan cambiando alguna dirección hexadecimal los creadores de la ROM y ya no sean las mismas que los valores originales, de ser así te tocaría debuggear y buscar las nuevas direcciones a mano.

Te voy a dejar por aquí una pequeñísima referencia al .ini de PGE, tambien tiene versiones en español, aquí solo te dejo algunos datos de las versiones inglesas:
Código:
Pokemon Ruby (English) [AXVE]
Sprites frontales: 1E8354
Sprites traseros: 1E97F4
Paletas normales: 1EA5B4
Paletas shiny: 1EB374
Tabla de iconos: 3BBD20
Tabla de paletas de iconos: 3BC400
Tabla de gritos (Cry Table): 452590

Pokemon Sapphire (English) [AXPE]
Sprites frontales: 1E82E4
Sprites traseros: 1E9784
Paletas normales: 1EA544
Paletas shiny: 1EB304
Tabla de iconos: 3BBD78
Tabla de paletas de iconos: 3BC458
Tabla de gritos (Cry Table): 4525EC

Pokemon Fire Red (English) [BPRE]
Sprites frontales: 2350AC
Sprites traseros: 23654C
Paletas normales: 23730C
Paletas shiny: 2380CC
Tabla de iconos: 3D37A0
Tabla de paletas de iconos: 3D3E80
Tabla de gritos (Cry Table): 48C914

Pokemon Leaf Green (English) [BPGE]
Sprites frontales: 235088
Sprites traseros: 236558
Paletas normales: 2372E8
Paletas shiny: 2380A8
Tabla de iconos: 3D35DC
Tabla de paletas de iconos: 3D3CBC
Tabla de gritos (Cry Table): 48C1F0

Pokemon Emerald (English) [BPEE]
Sprites frontales: 301418
Sprites traseros: 3028B8
Paletas normales: 303678
Paletas shiny: 304438
Animaciones de sprites: 30A18C
Tabla de iconos: 57BCA8
Tabla de paletas de iconos: 57C388
Tabla de gritos (Cry Table): 69DCF4

Para tu otra duda estás un poco en la misma situación. Si no puedes usar una herramienta que te facilite el trabajo tienes que hacerlo a mano. Advance Map también tiene un archivo .ini con mucha información sobre direcciones hexadecimales, seguramente encuentres alguna tabla o algo para cada mapa donde se asignen sus NPC´s y eventos. Pero vamos no creo que sea algo tan recomendado si solo quieres añadir un único Pokémon, yo creo que es bastante trabajo y más para alguien novato.
 

Sonzai

Pequeño saltamontes
Puedes hacer ambas, cambiar uno o crear uno nuevo. Yo probaría con todas las herramientas que te ofrecen añadir/editar Pokémon ( Gen 3 Hack Suite creo que tambien lo hacía), antes de hacerlo a mano porque necesitas ciertos conocimientos no tan sencillos al principio como pueden ser manejo de punteros.

Si no es una ROM tuya tienes que mirar la rom base en la que se creó y puedes mirar por ejemplo en el archivo .ini de Pokemon Game Editor las direcciones hexadecimales a tablas con información sobre los Pokémon, o de cualquier otra herramienta de código abierto. Pero vamos que si es una ROM editada y te fallan seguramente hayan cambiando alguna dirección hexadecimal los creadores de la ROM y ya no sean las mismas que los valores originales, de ser así te tocaría debuggear y buscar las nuevas direcciones a mano.

Te voy a dejar por aquí una pequeñísima referencia al .ini de PGE, tambien tiene versiones en español, aquí solo te dejo algunos datos de las versiones inglesas:
Código:
Pokemon Ruby (English) [AXVE]
Sprites frontales: 1E8354
Sprites traseros: 1E97F4
Paletas normales: 1EA5B4
Paletas shiny: 1EB374
Tabla de iconos: 3BBD20
Tabla de paletas de iconos: 3BC400
Tabla de gritos (Cry Table): 452590

Pokemon Sapphire (English) [AXPE]
Sprites frontales: 1E82E4
Sprites traseros: 1E9784
Paletas normales: 1EA544
Paletas shiny: 1EB304
Tabla de iconos: 3BBD78
Tabla de paletas de iconos: 3BC458
Tabla de gritos (Cry Table): 4525EC

Pokemon Fire Red (English) [BPRE]
Sprites frontales: 2350AC
Sprites traseros: 23654C
Paletas normales: 23730C
Paletas shiny: 2380CC
Tabla de iconos: 3D37A0
Tabla de paletas de iconos: 3D3E80
Tabla de gritos (Cry Table): 48C914

Pokemon Leaf Green (English) [BPGE]
Sprites frontales: 235088
Sprites traseros: 236558
Paletas normales: 2372E8
Paletas shiny: 2380A8
Tabla de iconos: 3D35DC
Tabla de paletas de iconos: 3D3CBC
Tabla de gritos (Cry Table): 48C1F0

Pokemon Emerald (English) [BPEE]
Sprites frontales: 301418
Sprites traseros: 3028B8
Paletas normales: 303678
Paletas shiny: 304438
Animaciones de sprites: 30A18C
Tabla de iconos: 57BCA8
Tabla de paletas de iconos: 57C388
Tabla de gritos (Cry Table): 69DCF4

Para tu otra duda estás un poco en la misma situación. Si no puedes usar una herramienta que te facilite el trabajo tienes que hacerlo a mano. Advance Map también tiene un archivo .ini con mucha información sobre direcciones hexadecimales, seguramente encuentres alguna tabla o algo para cada mapa donde se asignen sus NPC´s y eventos. Pero vamos no creo que sea algo tan recomendado si solo quieres añadir un único Pokémon, yo creo que es bastante trabajo y más para alguien novato.
Muchas gracias por molestarte en responderme, hasta ahora eh intentado añadir/editar este pokemon nuevo que quiero crear, pero no eh podido usar ninguna d elas herramientas para facilitarme el trabajo, solo Gen3 tool ha abrido la parte de los pokemon, aunque la forma en la que lo abrio es rara, advance map a abierto los mapas, pero no me deja crear eventos, entiendo lo que dices acerca de las tablas, basicamente es que me fije en las direcciones d elos ini y trate de buscarlas en el codigo hexadecimal?, eso quieres decir?, bueno, creo que la unica salida que tengo es editar las inis de estos 2 programas para añadir el pokemon que quiero de acuerdo a esta rom modificada, pero no tengo idea d ecomo hacerlo, trate de editar la de pge con los datos de advance offset, pero no funciono, incluso a pesar de que le quite el "0x", quizas fue porque deje en minuscula las letras, para la ini de advance map si no se que hacer, podrias indicarme el rumbo para editar estas inis?, tanto la de pge como la de advance map, gracias por responderme
 

Inferno

Miembro insignia
Miembro insignia
Si las direcciones son las originales entonces yendo directamente a ellas desde cualquier editor Hex ya puedes editar lo que te interese (con cuidado y sabiendo bien lo que estás cambiando), si no son las originales te toca buscar donde están y eso ya es cuestión de debuggear porque solo el creador sabrá las direcciones que modificó. En el caso de AM dudo mucho que modificase direcciones como la de mapas y demás, de ahí podríais ir investigando.
Sobre los Pokémon seguramente expandiese la tabla y repuntease la dirección o vete tu a saber jaja

No se si es sensible a mayúsculas y minúsculas, pero puede ser que sí, ante la duda las dirección dejalas en mayúsculas.
Repito que si estás empezando no es algo sencillo que puedas hacer, pero si te lo propones como reto puedes llegar a aprender muchas cosas.
 

Defaultrandomboy

Usuario de oro
Me alegra que halla gente como tu, gracias por responderme, una ultima duda, a que te refieres con debbugear?, muchas gracias por toda tu ayuda

Edit: Por cierto Sonzai y este usuario somos la misma persona, tengo una cuenta en un telefono y otra en este, disculpa si te ocacione confucion, no voy a usar este usuario mas aqui por si hay algun problema con las reglas del grupo de acuerdo a esto
 
Última edición:

Sonzai

Pequeño saltamontes
lis
Me alegra que halla gente como tu, gracias por responderme, una ultima duda, a que te refieres con debbugear?, muchas gracias por toda tu ayuda

Edit: Por cierto Sonzai y este usuario somos la misma persona, tengo una cuenta en un telefono y otra en este, disculpa si te ocacione confucion, no voy a usar este usuario mas aqui por si hay algun problema con las reglas del grupo de acuerdo a esto
Listo, ya cerre la otra cuenta, podrias orientarme en como debbugear?, que programas y algun que consejo 👀
 

Inferno

Miembro insignia
Miembro insignia
Debuggear en Rom Hacking puedes verlo como ver como se comporta el juego mientras se está ejecutando, hay ciertos emuladores como VBA-M que están más enfocados en ese aspecto y te permiten obtener ciertos datos. El proceso que se lleva a cabo es cargar datos de la ROM y ponerlos en la RAM. Entonces la idea base es ejecutar el juego en lo que te interesa buscar y ver que se va mostrando en la RAM, en tu caso quizás, porque no lo sé, para el tema de la tabla de los Pokémon puedes probar con pantallas donde se carguen datos de Pokémon y analizarlas. Hay conceptos más avanzados como breakpoints que son como puntos que puedes poner para decirle al emulador "cuando se cargue esto parate".

Te aviso que no es una tarea sencilla, y que quizás tengas que hacer una busqueda por patrones, por ejemplo, tener un Pokémon en el equipo con cierto nivel, stats... de ahi (mientras estás en esa pantalla en el emulador) buscar en la RAM algún tipo de patrón de valores hexadecimales como ID del pokemon, stat de ataque, stat defensa... y de ahí intentar ver a donde apunta para sacar tablas, pero vamos que no sé el patrón que sigue ahora mismo, pero quizás esto te pueda ayudar en algo:


PD: Se me olvido mencionar en los anteriores posts que también te puede servir de ayuda mirar proyectos de Decomp para mirar direcciones de la ROM.
 
Arriba