patches
Thread Id: 25406
Thread Name: [GBC-Parche]Selección de Genero para GOLD & SILVER [Actualizacion 2.1]
#0
Chamber4315♪ 26330


IMPORTANTE:
Version 2.0 (21/feb/2014)
Se ha arreglado el problema de compatibilidad con otros parches.

Hoy es un buen dia para el RH-GBC, una de las rutinas mas codiciadas de los juegos de segunda generación vera la luz en la comunidad hispana, la tan ansiada y anhelada rutina "Seleccion de Genero para GOLD & SILVER".

Agradecimientos especiales a GOLD_Z! por haber conseguido los datos para llevar a cabo la rutina.


-------------------------
Contenido:
-------------------------
Este parche contiene rutinas extendidas que permiten la seleccion del genero del protagonista
en los juegos "Pokémon GOLD & SILVER" al igual como se hace en "Pokémon CRYSTAL"

Para asignar tanto el Front Sprite como los OverWorld, se sobrescriben datos originales del juego que son de facil adaptacion:

-El Front Sprite se inserto en el trainer 0x2A correspondiente al "Rival(2)". Sus datos de batalla se asignaron al trainer 0x09 "Rival(1)".
-El OverWorld "normal" se asigno al OverWorld 0x5E correspondiente al "trofeo"
-El OverWorld "en bicicleta" se asigno al OverWorld 0x58 correspondiente a la "recepcionista"

Se debe tener en cuenta tambien que el Back Sprite comparte las paletas del protagonista masculino.

Resumen de las rutinas:
-----------
OverWorld
-----------
$1413C ; call $17FBA
$1417E ; call $17FBA
$17FBA ; Rutina para cargar 2 OW ($17FF2 indica el OW normal y $17FF2 el OW en bicicleta).


-----------
"Are you boy or..."
-----------
$5FA5 ; salto a la pregunta inicial con formato 3E zz 21 xx yy CF
$60190 ; rutina de seleccion de genero


-----------
Introduccion
-----------
$6088 ; call $78F0
$78F0 ; carga de Nombre
$602C-$603F ; rutina para la seleccion de genero.
$7FD0
$790C ; lista de nombres
$60D2 ; call a nombre por defecto


-----------
Back Sprite
-----------
$3F951 ; call @script extendido

$3FEA0 @script extendido:
ld a, D119 ; carga el tipo de batalla
cp a, 03 ; si es tipo 3 (tutorial de cpatura), "set z flag"
jr nz 08 ; omite si no es "set"
ld b, 0F ; carga el Bank del sprite "DUDE"
ld hl, 7B5B ; carga hl con el Back del "DUDE"
jp @show pic
ld a, DECB ; carga a con el genero del protagonista
cp a, 01 ; si es la chica "set z flag"
jr nz 08 ; omite si no es "set"
ld b, xx ; carga el Bank del Back de la chica ($3FEB7)
ld hl, YYYY ; carga hl con el Back de la chica ($3FEB9)
jp @show pic
ld b, 0F ; carga b con el Bank del Back Sprite por defecto
ld hl, 79CB ; carga hl con el Back Sprite por defecto
jp @show pic

@show pic
ld de, 9310 ; carga la direccion RAM para escribir los datos en hl
ld c, 31
ld a, 3F
call 2E49 ; llama la rutina de transferencia de Back Sprite??
ret



-----------
Trainer Card
-----------
$25CCF ; graficos de la TRAINER's CARD
$250A3; llamada a rutina de cambio de TC (call $7BE0)
$27BE0; rutina de cambio de esprite en la Trainer card ($27BE1 pointer del chico, $27BF2 pointer de la chica)


-----------
Micelaneos
-----------
$B541 ; Paletas del Front Sprite (el Back Sprite comparte las paletas del protagonista masculino)
$1BC300 ; graficos del Back Sprite
$1BC000; graficos del Front Sprite (3-byte pointer en $8007B)
$1688FF ; script de pela con el rival en indigo plateu
$1095B0 ; script de pela con el rival en mt.moon
$39950-3FEA0; cambios en los datos de batalla del rival(1) y rival(2) (solo version 1.0)
$17FF1; controla el color del OW de la chica








-------------------------
Recomendaciones:
-------------------------
-El parche funciona unicamente con un ROM de Pokemon GOLD en Ingles.Funciona en ambos roms.
-Aplicar preferentemente en un rom limpio.
-En caso de no usarse en un ROM limpio, se debe revisar las direcciones a modificar.
-En caso de no usarse en un ROM limpio, se bebe crear un respaldo del ROM para evitar perdida de informacion.
-El proceso de asignacion de OW puede ser mejorado para evitar sobrescribir datos, solo basta con repuntear la tabla correspondiente, agregar los datos de la chica caminando y en bicicleta y cambiar la rutina de carga de OW.
-Como el sprite de la chica esta asignado el Trainer correspondiente al Rival(2), es importante que las batallas del Rival(2) las trasladen/copien al Rival(1) en el mismo orden (los scripts ya fueron modificados para el correcto funcionamiento de las batallas).

-------------------------
Proximas Actualizaciones:
-------------------------
-Carga de palletas independietes por genero.
-Carga de graficos independiente para la Trainer Card.



-------------------------
Bugs:
-------------------------
-Hay un sprite o dos de pokemon que fallaran con este parche, cuando alguien sepa cuales son le pido lo reporte para arreglar el problema.
-Cuando usas la opcion de ingresar tu nombre en modo "femenino", despues de escribirlo la pantalla nos devuelve el sprite masculino. Una posible solucion es cambiar el offset $60C0 por el sprite que mas te plazca, como el del profesor, aunque sera muy raro verle encogerse y de repente aparesca tu. Puedes poner $00 y supongo no saldra ningun sprite.


-------------------------
Versiones:
-------------------------
1.0: -Lanzamiento del parche.
-Diseñado para aplicarse en un rom limpio.

2.0: -Arreglado el Bug de incompatiblilidad con el parche "extension de tilesets" de Tauwasser.
(primero debe instalarse el parche de "extension de tilesets" y despues este.
-Se quitaron los datos de las revancchas con el rival, ya que es incompatible con la mayoria de los roms.

2.1: -Carga de paletas independientes para el OW y back sprite de la chica.


-------------------------
Creditos:
-------------------------
RED - Creador de la rutina
Mateo
Miksy91 - Por la rutina de carga de BackSprite (?)
GOLD_Z! - Por facilitar la rutina a la comunidad hispana
Javcdark - Colaborador en la corrección de la rutina


Opcionalmente se adjunta una rutina explicada por Javcdark.
https://dl.dropboxusercontent.com/u/1175553/hack/Auxiliares/Tutoriales/Parches/Seleccion%20de%20Genero%20GOLD%20%26%20SILVER/Rutina%20Seleccion%20de%20Genero%20Javcdark.txt



-------------------------
Descarga:
-------------------------
-Parche Seleccion de Genero GOLD & SILVER 1.0-

-Parche Seleccion de Genero GOLD & SILVER 2.1-

-Lunar IPS-
#1
Soloo.EXE 27794
Es genial que hayan descubierto la selección de genero en gold, esta es una de las mejores cosas que pudieron aportar para la gente que quiera hackear gbc!
pd: supongo que la pondras esto en la rom base
#2
Loony Boo♪ 12263
Gran aporte para el Rom Hacking Pokémon en GBC, muchas gracias Chamber y Ripper por la rutina, ahora bien, tengo una pregunta: ¿cómo se puede hacer distinción de sexo en los diálogos? Porque queda raro que si eliges chica te diga: ¡eh, ¡qué pasa tronco?! ¿Hay alguna opción o rutina para eso? Y si no la hay, ¿se implementará?
#3
Chamber4315♪ 26330
Pues seria bueno hacer una pequeña distincion en los scripts importantes, para que si de repente no diga "yo are a good boy Sandy" y cosas asi.

Seria facil crear una mini rutina ASM que comprobara el estado de $DECB que es la RAM donde se guarda el genero y a partir de ahi hacer una comprobacion para determinar los dialogos, aunque esto la verdad solo me parece viable para el script de introduccion, eleccion de pokemon y liga, ya que implicarria gran repunteo de datos y no sera tan versatil.

Otra opcion es cambiar todos los textos del juego, de "boy" a "guy", asi seria mas estandar. Incluso eso me parece viable a contemplar en las acualizaciones.
#4
Loony Boo♪ 12263
Iniciado por Chamber
Otra opcion es cambiar todos los textos del juego, de "boy" a "guy", asi seria mas estandar. Incluso eso me parece viable a contemplar en las acualizaciones.


"Guy" viene a significar "tío" o "chaval", no sería una opción viable, "my friend" es neutro pero contiene más caracteres, a ver...
#5
G0LD_ZTHVARD0X! 27515
Pues el que mayor creditos debe llevarse es mateo, sin el esto seguiria como un mito
Pues para ahorrarme la pereza de hacerla yo mismo, use tu parche en el ice silver, pero no me carga el overworld, elegi chica y se cargo el mini masculino, y tras eso se quedo colgado el juego, aun escogiendo chico, imagino que es mi rom

Y si, mateo me dijo que jugando con esa direccion de la ram pueden hacerse scripts comprobando el gener escogido.
#6
Chamber4315♪ 26330
Lo peor de que seas el que mas comenta mis aportes [MENTION=27515]Ripper Roo♪[/MENTION] es que todos mis parches te fallan por que nuestras bases son ligeramente diferentes jaja.

Para los usuarios de Silver, debería servirles mis offsets y el documento de Javcdark como guia. Es un proceso algo lento por que hay que revisar una por una que todas las call's esten en su lugar.

Si despues de todo logra funcionar espero que compartas la informacion para que la rutina sea compatible con Silver. Por lo pronto edito el titulo.
#7
Chamber4315♪ 26330
IMPORTANTE!

Me habia llegado reporte de 2 usuarios con fallas al aplicar al parche y pese a mi insitencia de que el parche andaba al 100% por fin GOLD encontro el fallo. Se trata de una incompatibilidad con el parche "extension de tileset" de tauwasser.

En los proximos dias se arreglara dicho problema, mientras tanto quedara fuera de linea la descarga.

Gracias por su comprension.
#8
G0LD_ZTHVARD0X! 27515
Despues de examinar el rom he dado con el punto delu fallo, usando un metodo de investigacion hice una prueba.

1. Tomar un rom de pokemon Gold limpio
2. Aplicarle el parche de seleccion de genero
3. Iniciado el rom y corre al 100% tanto chico como chica
4. Se procede a aplicar la extension de tiles
5. Se inicia el juego, la primera parte de la intro aparentemente esta bien
6. Escogo chico, el dialogo de oak corre bien
7. Cuando cambia a la pregunta de tu nombre el rom se reinicia con paletas bugeadas
8. Se repite el mismo proceso que con la chica
9. Antes de preguntarte tu nombre el juego se congela.

CONCLUSION

La rutina del intro de seleccion de genero queda cruzada en alguna parte por la extension de tiles, ya empeze a redireccionar ambas rutinas, a kodo que queden lejos de su lugar donde esta puesta originalmente

Saludos!!!
#9
Chamber4315♪ 26330
.


Version 2.0 del parche.

Incluye compatibilidad con el parche "extension de tileset" y "descompresor de portada".

Estos parches son los de mas uso común a mi parecer, asi que todo deberia andar sin problemas. si alguien sigue teniendo algun problema favor de avisar.

-Se agrega el cambio de sprite en la Trainer Card (Creditos a Javcdark).
-Se eliminan los datos de batalla del rival por inestabilidad.


==============

Gracias por la observacion GOLD_!Z.

Es lógico que se cruzan incluso sin hacer el método explicado. Puedes revisar los logs y veras que ambas rutinas se cruzan en $7FA0.

Cuando Pruebes el parche lo puedes hacer tanto en tu nuevo rom como en el viejo?

Saludos!
#10
G0LD_ZTHVARD0X! 27515
Hay un error en el post, el backsprite de la chica esta en 0x1B2000 y no donde pones en el post (lo supe siguiendo los call de la rutina del back) y ademas aun hay dos rutinas que faltan en el intro, y para ello pedi ayuda a mateo (creo que ya casi esta lista)
#11
WiZaRD 25635
WAOOO WAOOOOO WAOOOO!!!!
Hace tiempo vengo viendo esto pero por falta de tiempo no pude comentar , muchas gracias compadre por el tremendo aporte , se ve que amas el room hack como para que dediques gran parte de tu vida en realizar estos trabajos que normalmente algunos no entenderian , tremendo aporte espero poder probarlo y no tener problemas , sin duda alguna estas hecho ya todo un sensei del hack GBC jejej .... sera que eres de otro planeta mi estimado piccolo ( nameku ) .
muchísimas gracias por el parche compadre , sobre lo que mencionas del parche de descompresor de pantalla quien creador fue creo [MENTION=16299]Gallego13[/MENTION] corrígeme por favor si me equivoco , pero cuando probé ese parche me causo gran problema ya que descomprime la portada como dice su nombre pero creo que también descomprime el archivo save ya que hay problemas al salvar el juego no se si me explique bien , bueno en resumen muchísimas gracias nuevamente ...
#12
Chamber4315♪ 26330
Iniciado por Sr.Dr.Prof. G0LD♪
Hay un error en el post, el backsprite de la chica esta en 0x1B2000 y no donde pones en el post (lo supe siguiendo los call de la rutina del back) y ademas aun hay dos rutinas que faltan en el intro, y para ello pedi ayuda a mateo (creo que ya casi esta lista)


No hay ningun error.

Recuerda que es mi version de la rutina y el back esta donde lo especifica el post.

No faltan rutinas, el port principal solo contien una vision general de los offsets. Todo el desamble de la rutina lo puedes ver en el documento de Javcdark.

===============
[MENTION=25635]WiZaRD[/MENTION]: Gallego no es el creador del parche, simplemente se encargo en su tiempo de traerlo al foro. Es raro que te falle el parche, ya que es una version revisada en skeetendo y a mi personalemente nunca me fallo.
#13
G0LD_ZTHVARD0X! 27515
Lo puse a un rom virgen y efectivamente esta en 0x1B2000.

Digo que faltan porque aun falta una, pero no tan importante, pues si hay manera de cargar el fondo de la mochila y la paleta segun el genero, en pokemon cristal la mochila y el pokegear varian segun el genero (por si no lo sabias)

Y repito, porque siguen usando la descompresion de pantalla de titulo? Quien necesita eso si puedes cambiar toda la imagen y agregarle animaciones? Pero bueno, para quienes aun son novatos en esto es una opcion.

Y la descompresion de la pantalla de titulo fue publicado en pokeco por melash, gallego solo trajo el parche aca
#14
Chamber4315♪ 26330
Si ya tienes la rutina te invito a compartirla.

Rutinas de colores faltan varias, pero mas importante (y aun no tenemos) es al rutina del mini en el World Map.

Ya se tienen resueltos la carga de paletas en Backsprite y OW.

El parche descompresor de portada no es obsoleto por que es facil de usar, a diferencia del cambio total de portada lo cual es muy dificil para un novato (y experto).
#15
Chamber4315♪ 26330
Actualizacion: Version 2.1

-Carga de paletas independientes para el OW y back sprite de la chica.

-$17FF1 controla el color del OW de la chica.

-$7C40 rutina de carga las paletas del FronSprite de la chica en el Backsprite.






Link en el post Principal.
#16
Soloo.EXE 27794
Ya casi estan por completar la rutina de seleccion de genero por completo! Animo!