The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Tools, Tutorials & Resources
Reload this Page Tutorial Tips for making useful .rbh files
Sign Up Rules/FAQ Daily Battle Blogs Mark Forums Read

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.
New threads in this forum are to be approved by a moderator before they are displayed.

Thread Tools
Old May 28th, 2009 (10:06 AM). Edited May 28th, 2009 by 0m3GA ARS3NAL.
0m3GA ARS3NAL's Avatar
0m3GA ARS3NAL 0m3GA ARS3NAL is offline
Im comin' home...
Silver Tier
Join Date: Jan 2008
Location: Superjail Penitentiary
Age: 23
Gender: Male
Nature: Gentle
Posts: 1,816
Ok, So I am sure you have heard of the std.rbh file that comes with XSE, right?
If you DO know of it, then you might wanna start looking into making your own .rbh files!

And RBH file, or RuBikon Header File
is a file XSE uses to add onto it's current data base... so to speak.
It read's this file, and it loks at the commands in it, and what they mean, much like how MSG_NORMAL really means 0x6 to XSE.. (Which means if you put MSG_NORMAL anywhere in the script, XSE will pop out an 0x6 right there, so long as you include teh std.rbh file with the compiling.)
Now, you may be asking, "What is so important though?"
Well, making your own can simplify your XSE scripting experience!
Do you have an offset you type often in your game?
(I do, I have to type goto 0x08003224 at the end of my scripts, since I use a single,
in my whole game, just reused all the time.
Well, using a .rbh file, we can make a define for it!
Lets sat I want to use [END] as my pointer instead of writing out that pointer all the time.
#define [END] 0x08003224
That line of code, inserted into a .std file, will allow me to type [END] every time I want that Pointer to appear!

Pretty handy huh?
Let me give another example.
Say you are into something more complicated...
say, pallet changing... with scripts, to change your char's clothes or something. I dunno ^__^
You can make a color chart out of these defines, so you can use writebytetooffset faster.
Simply find the color you want, the pointer to that color, and the 2 offsets of the bytes that define the color.
Now, writebytetooffset can only write 1 byte at a time, SO, we have to have it only write 1 byte at a time, so we would split the color red into 2 bytes, and use, say, [redpt1] and [redpt2] for the defines!
Pretty handy I think. (I know that was a terrible example but still!)
The key here is to find out something that is boring to type over and over, and try to find a way to make it easier on you.
(This does not work well with commands themselves... like lock, and such, if you want to temporarily change the name of a command use the #alias command (also found in the XSE tutorial)
Alias's don't go in RBH files just to let you know...


I saw someone had released a .rbh file onto the net, and I figured, I may as well too!

I made this quite a long time ago, back on the days of XSE V1.
I never thought to release it though!
Just paste this information into XSE, and save it as stdextras.rbh

#define [small] \c\h06\h00
#define [jap] \c\h15
#define [west] \c\h16
#define [waitkey_txt] \c\h09
#define [pause_txt] \c\h08
#define [pausebgm_txt] \c\h17
#define [playbgm_txt] \c\h17
#define [shift] \c\h0D\h08

#define [A] \hF8\h00
#define [B] \hF8\h01
#define [L] \hF8\h02
#define [R] \hF8\h03
#define [STRT] \hF8\h04
#define [SEL] \hF8\h05
#define [DPAD_U] \hF8\h06
#define [DPAD_D] \hF8\h07
#define [DPAD_L] \hF8\h08
#define [DPAD_R] \hF8\h09
#define [DPAD_UD] \hF8\h0A
#define [DPAD_LR] \hF8\h0B
#define [DPAD] \hF8\h0C

#define [+] \hf9\04
#define [LV] \hF9\h05
#define [PP] \hF9\h06
#define [ID] \hF9\h07
#define [NO] \hF9\h08
#define _ \hF9\h09
#define [1] \hF9\h0A
#define [2] \hF9\h0B
#define [3] \hF9\h0C
#define [4] \hF9\h0D
#define [5] \hF9\h0E
#define [6] \hF9\h0F
#define [7] \hF9\h10
#define [8] \hF9\h11
#define [9] \hF9\h1
#define [DBLCIRCLE] \hF9\h15
#define [TRIANGLE] \hF9\h16
#define [CROSS] \hF9\h17
#define | \hF9\hD1
#define [?] \hF9\hD2
#define [~] \hF9\hD3
#define [SPARAL] \hF9\hD4
#define [SPARAR] \hF9\hD5
#define [SIDE_U] \hF9\hD6
#define [L_EYE] \hf9\hD8
#define [R_EYE] \hf9\hD9
#define [@] \hf9\hDA
#define [;] \hf9\hDB
#define [PLUS] \hf9\hDC
#define [MINUS] \hf9\hDD
#define [EQUAL] \hf9\hDE
#define [SPIRAL] \hf9\hDF
#define [TOUNGE] \hf9\hE0
#define [TRIANGLE2] \hf9\hE1
#define [B_CIRCLE] \hf9\hE4
#define [B_TRIANGLE] \hf9\hE5
#define [B_SQUARE] \hf9\hE6
#define [B_HEART] \hf9\hE7
#define [MOON] \hf9\hE8
#define [NOTE] \hf9\hE9
#define [POKEBALL] \hf9\hEA
#define [ELECTRIC] \hf9\hEB
#define [GRASS] \hf9\hEC
#define [FIRE] \hf9\hED
#define [WATER] \hf9\hEE
#define [L_HAND] \hf9\hEF
#define [R_HAND] \hf9\hF0
#define [FLOWER] \hf9\F1
#define [EYE] \hf9\hF2
#define [EYE2] \hf9\hF3
#define [FRUSTRATED] \hf9\hF4
#define [:<] \hf9\hF5
#define [:>] \hf9\hF6
#define [|:<] \hf9\hF7
#define [:o] \hf9\hF8
#define [^^] \hf9\hF9
#define [>:)] \hf9\hFA
#define [D:] \hf9\hFB
#define ['_'] \hf9\hFC
#define [8O] \hf9\hFD
#define [D:<] \hf9\hFE
#define [LETS_GO] \hf9\hFF
If you like, feel free to comment / rep / Spread the word!
And dont forget, try making your own useful RBH FILES!
>Boot Jailbot
>Pass *****
Jailbot OS Ver 1.1.2
Greetings Warden
of Superjail Penitentiary
Awaiting user input...

>Display User_Info
╠══User Info══╣
Age: 18
Sex: Male ♂
Race: Caucasian
"What is this
I don't even..."

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.
╠══End of File══╣
Awaiting user input...

Reply With Quote

Relevant Advertising!

Old May 29th, 2009 (3:45 AM).
Tropical Sunlight's Avatar
Tropical Sunlight Tropical Sunlight is offline
The Faltine
Join Date: Mar 2008
Location: Slovenia
Age: 20
Gender: Male
Posts: 3,578
Send a message via Windows Live Messenger to Tropical Sunlight
This is the most useful tutorial I've seen today!
This could help many people including me!
Reply With Quote
Old June 3rd, 2009 (6:05 AM).
Khan6195's Avatar
Khan6195 Khan6195 is offline
Michael Jackson Died. Parté!
Join Date: May 2009
Location: Canada
Age: 21
Gender: Male
Nature: Adamant
Posts: 24
This is the most useful tutorial I've seen today! Thanks a lot!
Reply With Quote
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 4:42 PM.

Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2016 The PokéCommunity™,
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / Poké
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2016.