The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Fan Games > Binary ROM Hacking
Reload this Page Script Changing text speed?

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 September 8th, 2020 (3:20 PM).
Mornedil Mornedil is offline
 
Join Date: Nov 2018
Posts: 17
I have 2 questions regarding text speed:

1. How can I set the default text speed option to fast?
I feel like most players want it set to fast, so it would be nice to have it on fast by default.


2. Can I slow down the text for just one message?
I have a cutscene where I want a message to display at medium text speed, regardless of the player's text speed setting. Is this possible? if so, how can I achieve that?
Reply With Quote
  #2   Link to this post, but load the entire thread.  
Old September 9th, 2020 (3:40 AM).
Pyxal's Avatar
Pyxal Pyxal is offline
It's pronounced pixel.
 
Join Date: Jul 2019
Location: Pakistan
Age: 17
Posts: 987
Quote:
Originally Posted by Mornedil View Post
I have 2 questions regarding text speed:

1. How can I set the default text speed option to fast?
I feel like most players want it set to fast, so it would be nice to have it on fast by default.


2. Can I slow down the text for just one message?
I have a cutscene where I want a message to display at medium text speed, regardless of the player's text speed setting. Is this possible? if so, how can I achieve that?
1. How can I set the default text speed option to fast?
Write "XX 20" at offset 0x5496C, where XX = [text speed] + [frame] * 8
Text speed: 0 = slow, 1 = mid, 2 = fast
Frame: 0 = type 1, 1 = type 2, etc.

I'm not sure where I took this from, but they were in my notes.

2. Can I slow down the text for just one message?
Not so sure about this one, but you can make general changes to text in a XSE script. For example the below script will show the "..." dots one at a time to show that the NPC is thinking.
Code:
#dynamic 0x[Free Space Offset]

#org @main
lock
msgbox @1 0x4
closeonkeypress
msgbox @2 0x2
waitmsg
release
end

#org @1
= Ah, you brought the "ITEM"?\nLet me think.\c\h08\h30.\c\h08\h30.

#org @2
= This is perfect!\nYou can now leave, [player]!
__________________
Reply With Quote
  #3   Link to this post, but load the entire thread.  
Old September 9th, 2020 (7:13 AM).
Mornedil Mornedil is offline
 
Join Date: Nov 2018
Posts: 17
Thanks! That solves the default text speed.

As for changing text speed for a certain message, adding dots after the text doesn't quite solve my problem.
I'm programming a cutscene where I want one message to appear slower to create suspense, and then the message box will disappear automatically as the cutscene continues.

For now, I just did this so there would be enough time to read the message regardless of text speed:
Code:
preparemsg @msgPresence
waitmsg
pause 0x80
But it would be cool to be able to slow down the message so I don't have to add the pause afterwards!
Reply With Quote
  #4   Link to this post, but load the entire thread.  
Old September 9th, 2020 (9:52 AM).
Pyxal's Avatar
Pyxal Pyxal is offline
It's pronounced pixel.
 
Join Date: Jul 2019
Location: Pakistan
Age: 17
Posts: 987
Quote:
Originally Posted by Mornedil View Post
Thanks! That solves the default text speed.

As for changing text speed for a certain message, adding dots after the text doesn't quite solve my problem.
I'm programming a cutscene where I want one message to appear slower to create suspense, and then the message box will disappear automatically as the cutscene continues.

For now, I just did this so there would be enough time to read the message regardless of text speed:
Code:
preparemsg @msgPresence
waitmsg
pause 0x80
But it would be cool to be able to slow down the message so I don't have to add the pause afterwards!
About that, I'm not sure how you could do that. But even if you wrote your message the way you want in the text, Players will definitely read it like that. For example:

Person 1= What... what are you talking about?
Delay
Person 1= ANSWER ME!

Person 2= I... I am your father!
__________________
Reply With Quote
  #5   Link to this post, but load the entire thread.  
Old September 9th, 2020 (3:15 PM).
Mornedil Mornedil is offline
 
Join Date: Nov 2018
Posts: 17
Quote:
Originally Posted by Upsurge View Post
Spoiler:
About that, I'm not sure how you could do that. But even if you wrote your message the way you want in the text, Players will definitely read it like that. For example:

Person 1= What... what are you talking about?
Delay
Person 1= ANSWER ME!

Person 2= I... I am your father!


This issue is more about trying to interrupt a message with a visual event, while still giving the player enough time to read the text.

For example:
Quote:
Person 1: "Hurry! The bomb is about to explode! Cut the wire!"

Person 2: "Which wire am I supposed t--"

*explosion*
So in this case, as soon as the 2nd person's message box has finished displaying the text, the message box would disappear and the explosion would happen.
But this isn't the scenario I'm making, this is just the most clear example I could think of.

The problem is that fast text is faster than natural dialog speed, so at fast speed the message would disappear before the player reads it.
And while it works to add a pause after the message like i'm doing currently, it's a bit immersion breaking and looks more unprofessional.
So the best solution for this scenario would be to slow down the text, so the player has time to read the words as they appear.

Couldn't find any solutions when I googled how to slow down text, I just saw someone mention it had be done before by another rom hack
Reply With Quote
  #6   Link to this post, but load the entire thread.  
Old September 9th, 2020 (8:21 PM).
Pyxal's Avatar
Pyxal Pyxal is offline
It's pronounced pixel.
 
Join Date: Jul 2019
Location: Pakistan
Age: 17
Posts: 987
Quote:
Originally Posted by Mornedil View Post
This issue is more about trying to interrupt a message with a visual event, while still giving the player enough time to read the text.

For example:

So in this case, as soon as the 2nd person's message box has finished displaying the text, the message box would disappear and the explosion would happen.
But this isn't the scenario I'm making, this is just the most clear example I could think of.

The problem is that fast text is faster than natural dialog speed, so at fast speed the message would disappear before the player reads it.
And while it works to add a pause after the message like i'm doing currently, it's a bit immersion breaking and looks more unprofessional.
So the best solution for this scenario would be to slow down the text, so the player has time to read the words as they appear.

Couldn't find any solutions when I googled how to slow down text, I just saw someone mention it had be done before by another rom hack

Don't know about text being slow, but you can do this:
Code:
msgbox @yourmsg 0x4
pause 0x15
closeonkeypress
This will give time to players to read the message and it will not close until a key is pressed.
__________________
Reply With Quote
  #7   Link to this post, but load the entire thread.  
Old September 9th, 2020 (9:09 PM).
Mornedil Mornedil is offline
 
Join Date: Nov 2018
Posts: 17
Quote:
Originally Posted by Upsurge View Post
Spoiler:
Don't know about text being slow, but you can do this:
Code:
msgbox @yourmsg 0x4
pause 0x15
closeonkeypress
This will give time to players to read the message and it will not close until a key is pressed.
Like i said, that's what I'm doing right now while trying to find a solution. I posted a similar code earlier in this thread.
Reply With Quote
  #8   Link to this post, but load the entire thread.  
Old September 9th, 2020 (9:13 PM).
Pyxal's Avatar
Pyxal Pyxal is offline
It's pronounced pixel.
 
Join Date: Jul 2019
Location: Pakistan
Age: 17
Posts: 987
Quote:
Originally Posted by Mornedil View Post
Like i said, that's what I'm doing right now while trying to find a solution. I posted a similar code earlier in this thread.
Yes, but you are using the
preparemsg
command, whereas I suggested to use
msgbox 0x4
, as type 0x4 allows more flexibility to control the message.
__________________
Reply With Quote
  #9   Link to this post, but load the entire thread.  
Old September 11th, 2020 (11:51 AM).
Mornedil Mornedil is offline
 
Join Date: Nov 2018
Posts: 17
Quote:
Originally Posted by Upsurge View Post
Yes, but you are using the
preparemsg
command, whereas I suggested to use
msgbox 0x4
, as type 0x4 allows more flexibility to control the message.
I'm not sure I fully understand the difference.
preparemsg starts displaying a textbox that stays open, and immediately continues executing the script below it, so it gives me a lot of control of what happens next.
I thought msgbox 0x4 did something similar?
Reply With Quote
  #10   Link to this post, but load the entire thread.  
Old September 11th, 2020 (9:52 PM).
Pyxal's Avatar
Pyxal Pyxal is offline
It's pronounced pixel.
 
Join Date: Jul 2019
Location: Pakistan
Age: 17
Posts: 987
Let me go on quote Sierra from here:
Quote:
0x2
Spoiler:
Description:
This is the msgbox used for normal people. Using this type means that you don't need to use the lock, faceplayer or release commands.

Script:
#dynamic 0x800000


#org @start
msgbox @hello 0x2
end

#org @hello
= Hello, my name is dshayabusa.

In-Game:
[IMG]http://i36.*.com/2hi73nm.png[/IMG]


0x3
Spoiler:
Description:
Used for signs etc. No lock or faceplayer effect. Only shows the sign textbox when used on an actual sign.

Script:
#dynamic 0x800000



#org @start
msgbox @sign 0x3
end

#org @sign
= You are here

In-Game:
[IMG]http://i34.*.com/2z9mb80.png[/IMG]

0x4
Spoiler:
Description:
A normal msgbox except for the fact that it does not close. Command closeonkeypress must be used to close it. No lock or faceplayer effect.

Script:
#org @start
msgbox @hello 0x4
end

#org @hello
= Hello, my name is dshayabusa.

In-Game:
[IMG]http://i37.*.com/erj2c5.png[/IMG]

0x5
Spoiler:
Description:
Used for Yes/No questions. No lock or faceplayer effect.

Script:
#dynamic 0x800000


#org @start
msgbox @question 0x5
end

#org @question
= Is this statement false?

In-game:
[IMG]http://i36.*.com/24yvihy.png[/IMG]

0x6
Spoiler:
Description:
Normal textbox. Has no lock or faceplayer effect.

Script:

#dynamic 0x800000

#org @start
msgbox @hello 0x6
end

#org @hello
= Hello, my name is dshayabusa.

In-game:
[IMG]http://i37.*.com/erj2c5.png[/IMG]
I'm not sure about prepare message, as I don't use it that much.
__________________
Reply With Quote
  #11   Link to this post, but load the entire thread.  
Old September 12th, 2020 (9:20 PM). Edited September 12th, 2020 by Mornedil.
Mornedil Mornedil is offline
 
Join Date: Nov 2018
Posts: 17
Quote:
Originally Posted by Upsurge View Post
Let me go on quote Sierra from here:


I'm not sure about prepare message, as I don't use it that much.
preparemsg is even more flexible than msgbox 0x4.

preparemsg will continue to execute script below it as soon as the message box appears.
But msgbox 0x4 seems to wait for the message box to finish before continuing.
So if things are meant to happen automatically after (or during) the message box, preparemsg is the way to go.

Here's an example:

using msgbox 0x4 to knock on a door:
Code:
#org 0x806000
lock
msgbox 0x807000 0x4
pause 0x0010
sound 0x0007
pause 0x0010
sound 0x0007
pause 0x0010
sound 0x0007
pause 0x2F
release
end

'knock text ----------------
#org 0x807000
= knock knock knock
In-game result:
- Messagebox will show the full message.
- Player has to press a button to continue.
- Messagebox disappears, then 3 knocking sounds are played afterwards.
Video: msgbox 0x4.mp4


using preparemsg to knock on a door:
Code:
#org 0x806100
lock
preparemsg 0x807000
pause 0x0010
sound 0x0007
pause 0x0010
sound 0x0007
pause 0x0010
sound 0x0007
pause 0x2F
release
end

'knock text ----------------
#org 0x807000
= knock knock knock
In-game result:
The message and the sound both happen at the same time, then the message box closes itself without any player input.
Video: preparemsg.mp4
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

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:15 AM.