Registrarse

[Rutina] [ASM] Change Trainer Sprite of Trainer Card

Andrea

Usuario mítico
Hello guys, in this guide I will explain the change of the sprite in the trainer card in the rom of RUBY USA.
As we all know we can have 2 sprites:
Male & Female Player. Using the offset WBTO 02024EAC (overwriting 0 or 1) you can change the sex of the pg and the resulting sprite, unfortunately, are only two sprites mentioned before.
First, go to offset 080937E6 this byte to hijack the routine:
C0 46 00 48 00 47 XX+1 XX XX 08
XX XX XX 08 mean pointer of your routine +1 (THUMB MODE).
This is ASM ROUTINE i use:
.THUMB
.ALIGN 2
BL sub_8093DAC
PUSH {R0-R2}
LDR R2, = 0x0202E8C4 @var 8000
LDRH R2, [R2]
LSL R2, #3
MOV R1, #0x31
LSL R1, #7
MOV R0, #3
LSL R0, #0x19
ADD R1, R0
LDR R0, = 0x081EC53C @table rom sprite trainer
ADD R0, R2
LDR R0, [R0]
SWI 0x12
LDR R0, = 0x081EC7D4 @table rom sprite pal
ADD R0, R2
LDR R0, [R0]
LDR R1, = 0x0202EF68
SWI 0x12
LDR R1, = 0x0202EB68
SWI 0x12
POP {R0-R2} @pop registri
POP {R0} @torno alla routine principale
BX R0

sub_8093DAC:
LDR R0, = 0x08093DAD
BX R0
binary routine:
00 F0 17 F8 07 B4 0C 4A 12 88 D2 00 31 21 C9 01 03 20 40 06 09 18 09 48 80 18 00 68 12 DF 08 48 80 18 00 68 07 49 12 DF 07 49 12 DF 07 BC 01 BC 00 47 06 48 00 47 00 00 C4 E8 02 02 3C C5 1E 08 D4 C7 1E 08 68 EF 02 02 68 EB 02 02 AD 3D 09 08
Let me explain how work:
the routine save var 8000 value and mul it *8 because the table of trainer sprite and pal sprite are made with:
XX XX XX 08 YY YY YY YY
where the first four byte mean the pointer of image/pal and other 4 byte.
after i add offset of table to the previous result, i load 0x06001880 in R1 (start offset of trainer sprite)and i use SWI to decompress image.
when you load palette it's necessary to load pal in the direct pal in the ram and the pal of fadescreen to don't have flash of pal when you close TC menu (0x0202EF68, 0x0202EB68)
this is the script for change your sprite:
#dynamic 0x800000
#org @inizio
setvar 0x8000 0xNumber_Sprite
callasm 0xOffset routine +1
end
The total sprite in the rom are 52 (HEX). if you set var 8000 with value (greater than 52) and call routine you might have an error when you open the menu of trainer card ;)
This is the finale result :D

if you have problem write in the comment, hope you like it :D
 
Buen aporte! Esto podria ser util si queremos insertar un retrato estilo foto carnet sin que el sprite de trainer del prota se vea afectado
 

Oigres

Wuɔɥo ɐ ɯuɔɥo
Hum, es... un aporte xD

En fin, si, alguien puede sacarle utilidad pero... de verdad es necesario? Lo más dificil del rom hacking para muchos es el ASM... y usarlo para algo tan simple como esto, algo casi invalorable me parece un poco de exceso.

En fin, buen aporte! (pero pásalo por la traducción de monos de google translate la próxima vez ;))
 

Javi4315

Babyface
Miembro de honor
Hum, es... un aporte xD

En fin, si, alguien puede sacarle utilidad pero... de verdad es necesario? Lo más dificil del rom hacking para muchos es el ASM... y usarlo para algo tan simple como esto, algo casi invalorable me parece un poco de exceso.

En fin, buen aporte! (pero pásalo por la traducción de monos de google translate la próxima vez ;))
Claro que es fácil hacerlo. Con la rutina. Porque si la rutina no existe, automáticamente se convierte en difícil de hacer. Pero ya que es tan fácil, te invito a que nos expliques cómo hacerlo. Sería un buen aporte para la comunidad.
-------------------------
Sobre el aporte, pues no es algo que dé demasiado juego, la verdad, pero siempre es útil tener estas cosas a mano por cualquier idea que se te pueda ocurrir ;D
 

Oigres

Wuɔɥo ɐ ɯuɔɥo
He dicho que es difícil hacerlo y que no lleva a ninguna parte, en ningún momento dije que fuese extremadamente fácil '¬¬
 

Dani_SR_17

¡Pokémon LionHeart!
Un aporte magnífico, será muy, muy útil en diversas ocasiones para los hacks. Además es muy sencilla usar la rutina.
 

Injuxa

Grafista basico.
Thank You ;)
This is a very good tutorial but is in english xD
It's very intresting, and i don't now before this hoe to do it, Thank you!
:D
 

Andrea

Usuario mítico
Soloo.EXE dijo:
Buen aporte! Esto podria ser util si queremos insertar un retrato estilo foto carnet sin que el sprite de trainer del prota se vea afectado
Yes, for example i you want change mini with routine of eing you change the TC sprite to have a new trainer (or costum if you want for example change clothes or dress rookie team rocket costume ^^)
PabloGTD dijo:
Thank you. It's really very interesting.
Thanks a lot :)
Dani_SR_17 dijo:
Un aporte magnífico, será muy, muy útil en diversas ocasiones para los hacks. Además es muy sencilla usar la rutina.
Thanks :')
Tijeras77 dijo:
He dicho que es difícil hacerlo y que no lleva a ninguna parte, en ningún momento dije que fuese extremadamente fácil
It is not necessary that uses my guide ^^ contribute, albeit with something as small as a guide, it is always (in my opinion) a benefit for users ^^
ThePokeManiaco dijo:
Thank You
This is a very good tutorial but is in english xD
It's very intresting, and i don't now before this hoe to do it, Thank you! :D
Google translate it's the way, thanks :)
 

eing

Miembro de honor
Miembro de honor
Hey bro!
Nice routine and if it's used with my/us routine of the change player will be greater haha.
Ok, we need to speak together about optimizate the routine of change pj,you know what i mean..
Turning to the thread, it only miss change the backsprite ^^

----
Hey tio, me alegro que hayas hecho esta rutina! Es muy buena si la juntas con la del cambio de minisprite que tengo/tenemos hechA! (Espero que sepas de lo que hablo..)
Aunque bueno, la hemos de mejorar, a ver si un dia nos ponemos hehe.
Volviendo al tema, la rutina como dije muy buena, ya solo falta cambiar el backsprite haha
 

Dragonite

But where's your heart
Hey, this is very interesting, i think i can apply this with some other ASM routines to customize the "avatar" (like redhair, blonde, brunette, black cap, white cap, etc.)

Thanks for the contribution!

----------------------------------------------------------------------------------

Hey, esto es muy interesante, creo que podría utilizar esto junto con otras rutinas ASM para personalizar el "avatar" (pelirrojo, rubio, castaño, gorra negra, gorra blanca, etc.)

Gracias por el aporte!
 

MegaSceptile9

Usuario mítico
¡Andrea!, hace tiempo que no te veo por el foro.
Aún no he visto bien el tutorial, porque estoy desde
el celular, pero ya a simple vista es entendible.

Una duda, ¿funciona en FR?
 
Arriba