Corvus of the Black Night
Wild Duck Pokémon
- 3,416
- Posts
- 16
- Years
- Age 32
- With the Birds
- Seen Jan 9, 2015
PJV's interesting script series
Tutorial #1
HOW TO ADD FACESPRITES TO A POKéMON RUBY ROM
(this should actually work for sapphire, LG and FR as well, but I don't know about Emerald).
Okay, so we've all played a game with some kind of face portrait (I call them facesprites), whether it'd be Golden Sun, FE, or (most likely) Pokemon Mystery Dungeon. But have you ever wanted to add those portraits to your Pokemon rom? Well, here's how!
In Golden Sun, the face portrait is stored with the overworld sprite. Since there's no way to do this without completely rewiring the programming, here's an easy way to circumnavigate.
Programs needed:
Unlz.GBA
A Free Space Finder
RS Ball
A Script Editor (I use XSE; it's written in XSE's programming language, so if your using a different script editor you might have problems)
Paint (ummm...)
The first few steps should all be review. If you already know how to insert a sprite and repoint it to RS Ball, you can jup straight to step 4.
Step 1) Get your sprite.
I'm going to expect that you know how to make the 16 colour palette work. If you've made any Fakemons or new Trainer sprites, you should know how to do this. Anyways, the pic I'm using - Ivan's sprite from Golden Sun (considering that in my hack you're playing as him, it's a good choice).
Step 2) Import your sprite with Unlz.GBA.
Okay, I'm also going to assume you know how to do this. You'll need some free space for both the palatte and the image, so get those offsets in a free space finder.
MAKE SURE YOU DO NOT LOSE YOUR OFFSETS.
(Awwww... look at the little desktop mascot I got there...)
Step 3) Reset the pointers in RS Ball.
Umm... this should be pretty self-explainatory.
Note that I'm using one of the blank spaces for Pokemon.
Now onto the interesting part
Step 4) Scripting the actual "display portrait" script.
This is pretty easy in essence but has a pretty interesting little quirk to make your lives hell. The script to load Ivan's facesprite during a script is as follows:
Note that the return command is used. This allows you to use this as a call command, making your life easier. Also, note that Bulbasaur's image is flashed for a split second before my actual facesprite. This is done because the game will not load the second sprite's palatte properly. The pause command prevents the game from freezing.
You can mess around with some of the dimentions to see what you get. This displays the facesprite on the left side of the screen, slightly above the textbox.
Don't forget the "hidepokepic" command at the end of your script, or else that sprite will stay on the screen while you walk!
Step 5) Test
It is very important to test the code. It should work (unless you seriously screwed something up), but if something's going wrong with the sprite, you probably won't catch it for a long while.
Now that you have this new facesprite, you can use it to make your Pokemon hack a little more RPG-ish, if not more interesting.
A small note on using this: Due to the first picture being flashed and the box around the sprite being removed, you might notice a small box quickly appear and disappear. This is no big issue, it's just the process, and there's nothing that can be done about it.
Tutorial #1
HOW TO ADD FACESPRITES TO A POKéMON RUBY ROM
(this should actually work for sapphire, LG and FR as well, but I don't know about Emerald).
Okay, so we've all played a game with some kind of face portrait (I call them facesprites), whether it'd be Golden Sun, FE, or (most likely) Pokemon Mystery Dungeon. But have you ever wanted to add those portraits to your Pokemon rom? Well, here's how!
In Golden Sun, the face portrait is stored with the overworld sprite. Since there's no way to do this without completely rewiring the programming, here's an easy way to circumnavigate.
Programs needed:
Unlz.GBA
A Free Space Finder
RS Ball
A Script Editor (I use XSE; it's written in XSE's programming language, so if your using a different script editor you might have problems)
Paint (ummm...)
The first few steps should all be review. If you already know how to insert a sprite and repoint it to RS Ball, you can jup straight to step 4.
Step 1) Get your sprite.
![[PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits [PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits](https://i183.photobucket.com/albums/x33/heimdallinc/001-25.png)
I'm going to expect that you know how to make the 16 colour palette work. If you've made any Fakemons or new Trainer sprites, you should know how to do this. Anyways, the pic I'm using - Ivan's sprite from Golden Sun (considering that in my hack you're playing as him, it's a good choice).
Step 2) Import your sprite with Unlz.GBA.
![[PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits [PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits](https://i183.photobucket.com/albums/x33/heimdallinc/002-20.png)
Okay, I'm also going to assume you know how to do this. You'll need some free space for both the palatte and the image, so get those offsets in a free space finder.
MAKE SURE YOU DO NOT LOSE YOUR OFFSETS.
(Awwww... look at the little desktop mascot I got there...)
Step 3) Reset the pointers in RS Ball.
![[PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits [PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits](https://i183.photobucket.com/albums/x33/heimdallinc/003-16.png)
Umm... this should be pretty self-explainatory.
Note that I'm using one of the blank spaces for Pokemon.
Now onto the interesting part
Step 4) Scripting the actual "display portrait" script.
This is pretty easy in essence but has a pretty interesting little quirk to make your lives hell. The script to load Ivan's facesprite during a script is as follows:
Code:
showpokepic 0x1 0x1 0x1
hidebox 0x1 0x1 0xF 0xF
pause 0x1
hidepokepic
showpokepic 0x101 0x2 0x7
hidebox 0x2 0x7 0xE 0xE
return
Note that the return command is used. This allows you to use this as a call command, making your life easier. Also, note that Bulbasaur's image is flashed for a split second before my actual facesprite. This is done because the game will not load the second sprite's palatte properly. The pause command prevents the game from freezing.
You can mess around with some of the dimentions to see what you get. This displays the facesprite on the left side of the screen, slightly above the textbox.
Don't forget the "hidepokepic" command at the end of your script, or else that sprite will stay on the screen while you walk!
Step 5) Test
![[PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits [PokeCommunity.com] Jupiter's Tutoria Series: Inserting Face Portraits](https://i183.photobucket.com/albums/x33/heimdallinc/004-13.png)
It is very important to test the code. It should work (unless you seriously screwed something up), but if something's going wrong with the sprite, you probably won't catch it for a long while.
Now that you have this new facesprite, you can use it to make your Pokemon hack a little more RPG-ish, if not more interesting.
A small note on using this: Due to the first picture being flashed and the box around the sprite being removed, you might notice a small box quickly appear and disappear. This is no big issue, it's just the process, and there's nothing that can be done about it.
Last edited: