Author Id: 27515 Author Name: G0LD_ZTHVARD0X! Post Content: Expansion de fondos de batalla Por Karatekid552 y reescrito por mi Todos sabemos ya como insertar tus fondos de batalla, estos nos dan nuevos aires y un mejor aspecto grafico, pero pasa que a veces queremos que un entrenador eapecial o zona muestre un fondo personalizado, por ejemplo en una ruta nevada queremos ver un fondo nevado, pero ¿como? Gracias a Karatekid552 es posible, ya que ha desarrollado un parche que mueve la tabla de punteros a los fondos a la direccion 0xF10000, con este espacio tenemos la posibiladad de tener hasta xFFFF fondos (unos 65,000 fondos en total) Pero primero conozcamos la estructura de la tabla de punteros y su respectiva offset: [spoiler]The Table la tabla es simple, en el juego se contabilizan 20 fondos de batalla, enumerados con una ID que va de 0 a 19, los cuales son (datos conservados en Ingles) 1. Hierba alta 2. Hierba alta2 3. Arena (de desierto) 4. suelo común 5. Océano 6. Costa 7. Craggy 8. Cueva 9. Multi/Indoor- White & Grey & some Yellow in the Palette (Normal Trainer Battle) 10. Multi/Indoor- Green & a little Yellow (Rival Trainer Battle) 11. Multi/Indoor- White & Grey () 12. Multi/Indoor- White & Grey & some Tan in the Palette ("Gym" Trainer Battles (that option in A-Map)) 13. Multi/Indoor- White & Grey & some Tan in the Palette (2) (batalla xe lider de gimnasio (si, los lideres tienen su propio fondo)) 14. Multi2/Indoor2- White & Grey 15. Multi2/Indoor2- White & Grey & some Purple in the Palette 16. Multi2/Indoor2- Blue & some Tan in the Palette 17. Multi2/Indoor2- Yellow & Tan 18. Multi2/Indoor2- Purple & some Tan in the Palette 19. Multi2/Indoor2- Turquoise & some Tan in the Palette 20. Multi2/Indoor2- White & Grey & some Purple in the Palette por cada fondo se asignan 20 tablas de punteros las cuales se organizan de la siguiente manera: VV VV VV 08 WW WW WW 08 XX XX XX 08 YY YY YY 08 ZZ ZZ ZZ 08 VV = Offset del fondo WW = Offset del tilemap XX = Imagen de entrada (Ej. la hierba que se mueve cuando iniciamos una batalla en la hierba.) YY = Tilemap de la imagen de entrada ZZ = Paleta [/spoiler] Esa es la documentacion de los fondos y su ubicacion original de cada tabla de punteros: [spoiler]Grass Background VV = 24844C WW = 2489A8 XX = 248C68 YY = 248F58 ZZ = 248400 Second Grass Background (hay dos fondos de hierba repetidos, ignoro el porque.) VV = 2490C4 WW = 249620 XX = 2498DC YY = 249E10 ZZ = 249074 Sand Background VV = 249FE4 WW = 24A37C XX = 24A618 YY = 24A844 ZZ = 249F98 Field Background VV = 24A990 WW = 24ACD0 XX = 24AF70 YY = 24B0DC ZZ = 24A940 Sea Background VV = 24B1EC WW = 24B608 XX = 24B8A8 YY = 24BBE0 ZZ = 24B19C Pond Background VV = 24BD38 WW = 24C07C XX = 24C314 YY = 24C520 ZZ = 24BCE0 Craggy Background (No se donde se supone que es llamado este fondo) VV = 24C624 WW = 24C9B8 XX = 24CBF8 YY = 24CEC8 ZZ = 24C5D8 Cave Background VV = 24CFEC WW = 24D418 XX = 24D6B8 YY = 24DC98 ZZ = 24CF98 Multi-type Backgrounds/Indoor Backgrounds (El que se usa en batallas al aire libre) -hay un total de cinco fondos compartidos. usan la misma configuración, pero diferentes paletas. VV = 24DE34 WW = 24E16C XX = 24E410 YY = 24E490 ZZ = 1. 24DDF0 2. 24E81C 3. 24E528 4. 24E56C 5. 24E5B8 Fondos de interiores, son 7 fondos que tambien comparten todo menos paletas VV = 24E858 WW = 24EB90 XX = 24E410 YY = 24E490 ZZ = 1. 24E604 2. 24E650 3. 24E6A4 4. 24E6F0 5. 24E740 6. 24E78C 7. 24E7DC[/spoiler] Para expandir la tabla no se requiere gran ciencia, solo aplica el parche que esta al final del tema y vete al final de la nueva tabla de fondos, no borres ningun dato si no estas seguro que estas haciendo (es obvio, pero uno nunca sabe que locuras puede hacer la gente) Ahora expandamos, pero ¿y ahora que? Aunque creeras que hay que ser pro para esto, es falso, solo hay que tener conocimientos en hexadecimal e inserccion de datos comprimidos sin repunteo (despues hago un tuto explicando esto, es sencillo) si recuerdas, dije que habían 20 fondos usables, curiosamete se enumeran en sistema decimal, partiendo del número 0, entonces siguiendo esa numeración asumimos que los fondos del 0 al 19 estan llenos. entonces, insertare sin repuntear dos fondos extra, uno para rutas nevadas, el otro para la batalla contra el campeón, y luego haré un repunteo manual al final de la nueva tabla ubicada en 0xF10000 usando el formato mencionado antes. El código interno del juego no nos permite tocar ni expandir esta tabla, pero este parche modifica esa rutina ASM no solo moviendola de lugar, sino haciendola dependiente a la varable 0x40F7. lo cual hace que si comprueba que el valor de esa variable es 0, el juego sigue la rutina. común, pero si encuentra un valor distinto a ese, el juego cargará el número de fondo del valor de la variable. En resumen, si fijamos el valor de la variable 0x40F7 a 20, el juego cargará el fondo número 20, si no hay fondo 20 el juego se crasheara, pero como inserte mi fondo nevado entonces el fondo nevado es el número 20, por lo tanto al fijar en 20 su valor el juego cargará el fondo número 20 Sencillo ¿No? pero para hacerlo funcional y que se cargue el fondo nevado en una ruta especifica pues solo haremos un script de nivel 02, en el cual debe ser agregado esto (mira el macrotutorial de Javi para hwcer scripts de nivel): Setvar 0x40F7 0x20 Al hacer esto automaticamente al pisar la ruta se cargará ese fondo, pero ¡al salir de esa ruta se sigue cargando ese fondo! pues la unica solucion que encontre es que crees otro script de nivel en los mapas que interconectan esa ruta, poniendo esto: setvar 0x40F7 0x0 eso hara que la variable vuelva a tener 0 como valor, con lo cual la rutina seguirá normal. Ahora para la batalla del campeón solo tendremos que hacer casi lo mismo, ahora el fondo de campeón lo inserté despues del nevado, por lo cual es el fondo 21, para ello haremos lo mismo, solo que en vez de hacer un script de nivel se lo asignaremos al script del npc (algo asi era el trainerbattle) setvar 0x40F7 0x21 trainerbattle 0x1B0 0x200 @puto @quien @lea @esto #org @esto msgbox @texto 0x6 setvar 0x40F7 0x0 end el script esta mal hecho, pero como para hacer esto debes saber de scripteo medio pues sabras que los setvar van antes de la trainer battle y al final del script. Entonces ¿Es dificil? un poco quizás, para mi es sencillo, pero para ustedes quizas no, recordad que con esto podemos hacer que cada mapa tenga su propio fondo de batalla. ahora si el link del parche de la rutina: [URL="https://www.dropbox.com/s/hdznxcr97oh9ija/Battle%20BG%20Hack%20BPRE.ips"]Battle Background Hack.ips [/URL] El parche es compatible con el JPAN hacked engine, el 649 patch de Jambo51, el Decapitalization patch de MrDollSteak, y el 870 parch de Jonkane. En caso de tener ya usada la direccion 0xF00000 aqui se incluye la rutina sin compilar [URL="https://www.dropbox.com/s/rokddp1ujuqkeb5/BGSOURCE.asm"]Battle BG Hack Source Code[/URL] Creditos: a Karatekid552 por la rutina ASM y por el metodo de hacer esto, pero que yo amplié e hice mas entendible A la vez el agradece a Driver, Jambo51, Darthatron, Mat, Tajaros, Narutoactor y Drfuji.