The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Fan Games > Binary ROM Hacking
Reload this Page Script Edit BOY/GIRL multichoice in Oak's Intro.

Notices
For all updates, view the main page.

Binary ROM Hacking Need a helping hand or just want to talk about binary ROM hacks? Get comments and answers to any ROM Hacking-related problems, questions or thoughts you have here.

Ad Content
Reply
 
Thread Tools
  #1   Link to this post, but load the entire thread.  
Old June 24th, 2018 (11:23 PM). Edited June 25th, 2018 by hjk321.
hjk321's Avatar
hjk321 hjk321 is offline
 
Join Date: Sep 2017
Posts: 219
I'm not trying to change functionality at all, just the text itself of boy/girl. Is there any way to do this? The Complete Multi-Choice Box Editor doesn't include this one, and I can understand why since it's not part of the "actual" game. I'm chill with using a hex editor but I don't know the offsets for this box. Any suggestions?
__________________
Binary is dead.
Reply With Quote
  #2   Link to this post, but load the entire thread.  
Old June 25th, 2018 (1:02 PM). Edited June 25th, 2018 by shanem7.
shanem7 shanem7 is offline
 
Join Date: Mar 2013
Gender: Male
Posts: 44
Using a .tbl table/file specific for Fire Red (Google it, there should be one over at Datacrystal), search for the text string in question using a hex editor, then repoint the pointer (little endian+$08) if your new text is longer than the old one. Simple as that.
Reply With Quote
  #3   Link to this post, but load the entire thread.  
Old June 25th, 2018 (2:19 PM).
DrFuji's Avatar
DrFuji DrFuji is offline
Heiki Hecchara‌‌
 
Join Date: Sep 2009
Location: Aussie
Age: 30
Gender: Male
Nature: Jolly
Posts: 1,693
Boy is at 0x415D93 and girl is at 0x415D97. If you need to repoint them, their pointers are at 0x12FF98 and 0x12FF9C respectively.
__________________
Reply With Quote
  #4   Link to this post, but load the entire thread.  
Old June 25th, 2018 (6:29 PM).
hjk321's Avatar
hjk321 hjk321 is offline
 
Join Date: Sep 2017
Posts: 219
Quote:
Originally Posted by shanem7 View Post
Using a .tbl table/file specific for Fire Red (Google it, there should be one over at Datacrystal), search for the text string in question using a hex editor, then repoint the pointer (little endian+$08) if your new text is longer than the old one. Simple as that.

Neither AdvanceText nor HxD can find it.
__________________
Binary is dead.
Reply With Quote
  #5   Link to this post, but load the entire thread.  
Old June 25th, 2018 (8:09 PM). Edited June 25th, 2018 by shanem7.
shanem7 shanem7 is offline
 
Join Date: Mar 2013
Gender: Male
Posts: 44
Quote:
Originally Posted by hjk321 View Post
Neither AdvanceText nor HxD can find it.
I use Hex Editor Neo; it has more functions than freeware. Any decent hex editor should have a find function (or control+F). If you follow my method, you wouldn't need AdvanceText. What do you mean by "it"? As in, did you use the table file and can't find the string?

The .tbl file defines the tiles used for text within the game's engine.

It seems that DrFuji already gave you the answer, though.
Reply With Quote
  #6   Link to this post, but load the entire thread.  
Old June 25th, 2018 (8:27 PM). Edited June 25th, 2018 by hjk321.
hjk321's Avatar
hjk321 hjk321 is offline
 
Join Date: Sep 2017
Posts: 219
Quote:
Originally Posted by DrFuji View Post
Boy is at 0x415D93 and girl is at 0x415D97. If you need to repoint them, their pointers are at 0x12FF98 and 0x12FF9C respectively.
In what encoding? I had assumed it was ASCII, but 0x415D93 is something like ¼ÉÓ and there is no FF to end a string.
__________________
Binary is dead.
Reply With Quote
  #7   Link to this post, but load the entire thread.  
Old June 25th, 2018 (9:44 PM).
DrFuji's Avatar
DrFuji DrFuji is offline
Heiki Hecchara‌‌
 
Join Date: Sep 2009
Location: Aussie
Age: 30
Gender: Male
Nature: Jolly
Posts: 1,693
Quote:
Originally Posted by hjk321 View Post
In what encoding? I had assumed it was ASCII, but 0x415D93 is something like ¼ÉÓ and there is no FF to end a string.
Third-gen ROMs don't use ASCII, they have their own custom table to print text. You can find a list of characters and their hexadecimal codes in diegoisawesome's XSE tutorial.

Boy and girl should should have FF terminators after them. Here's a screenshot of a FR ROM with both boy and girl highlighted, FFs included.

__________________
Reply With Quote
  #8   Link to this post, but load the entire thread.  
Old June 25th, 2018 (10:19 PM). Edited June 25th, 2018 by hjk321.
hjk321's Avatar
hjk321 hjk321 is offline
 
Join Date: Sep 2017
Posts: 219
Quote:
Originally Posted by DrFuji View Post
If you need to repoint them, their pointers are at 0x12FF98 and 0x12FF9C respectively.
Thanks for your help! I was able to pull it off.

Now all of this is just out of curiosity, I don't need an answer if you don't feel like it. Is there a reason why the pointers appear to be written backwards? I'm assuming 08 is the separator byte, but what happens if your offset contains a 08. And what do I do if my offset to point to has more than 3-bytes (like a double-extended rom or something)?
__________________
Binary is dead.
Reply With Quote
  #9   Link to this post, but load the entire thread.  
Old June 26th, 2018 (6:41 AM). Edited June 26th, 2018 by STikER.
STikER's Avatar
STikER STikER is offline
 
Join Date: May 2014
Location: Ukraine
Age: 23
Gender: Male
Posts: 275
Quote:
Originally Posted by hjk321 View Post
Now all of this is just out of curiosity, I don't need an answer if you don't feel like it. Is there a reason why the pointers appear to be written backwards? I'm assuming 08 is the separator byte, but what happens if your offset contains a 08. And what do I do if my offset to point to has more than 3-bytes (like a double-extended rom or something)?
No, 08 is not a separator byte. Though I'm not a good explainer, so I will just quote another person from here:
Quote:
Originally Posted by Cy-Chan View Post
Now, what about that 08? Well, the memory bank for the GBA is made up of several sections. For example, 02 is RAM, 03 is DMA; check the memory viewer in VBA for more detail. So, when referring to ROM information (the bit we hack), the full address will start with 08. In an extended ROM, any addresses past 08FFFFFF simply loop back to 0, but use 09 as the indentifier instead.
Reply With Quote
Reply

Quick Reply

Join the conversation!

Create an account to post a reply in this thread, participate in other discussions, and more!

Create a PokéCommunity Account
Ad Content
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 9:14 AM.