07th-mod / umineko-question

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Text doesn't automatically advance after shake effect in EP1

miere43 opened this issue ยท comments

Text doesn't automatically advance after shake effect in EP1.

Video repro: https://gfycat.com/madeupscratchykiskadee
2020-10-30_23-13-03.zip

Repro:

  1. Skip to this text:
    image
  2. Mouse click once. Shake effect plays, lines are cleared, but text doesn't advance.
    image
  3. Mouse click once again. Text now continues:
    image

PS3 version doesn't split text into two screens: https://youtu.be/6B5A22OeTzY?t=622

commented

This is unfortunately a side effect of how we implement the ADV mode. These clickwaits were added as a hacky workaround for text disappearing automatically sometimes when these effects play. We've been trying to solve that issue for years and this is kind of the best we ended up being able to do... I'm frankly afraid of touching these again ๐Ÿ˜…

Please keep this issue open as we may fix it eventually.

The fixes were applied in:

In the "^/ -> ^@/" commit (591396a), basically we need to selectively remove the unnecessary clickwaits (or alternatively, revert the commits, then apply the correct clickwaits only when needed).

It needs to be applied in such a way that there are no "missed" lines, as every missed line would result in text disappearing, so better to err on the side of caution.


It might be possible to check this manually (by preparing a special script which only has the chunks of the game script where the lines were altered), if someone (or multiple people) are dedicated enough - it may take multiple hours to play through all these little chunks.

It seems changing these two lines fixes the problem:

-langjp^^!sd@:dwave_jp 0, kin_1e95: ๆ™‚้–“ใฏๅธธใซๆœ‰้™ใ ใ€ไฝฟๅพ’ใŸใกใฏใ™ใงใซใƒฉใƒƒใƒ‘ใ‚’ๆง‹ใˆใฆใ„ใ‚‹ใžใ€ใชใœใซใใ‚ŒใŒใ‚ใ‹ใ‚‰ใฌใ‹ๆ„šใ‹ใช็พŠใฉใ‚‚ใ‚ใƒƒ๏ผ๏ผใ€\
-langen^^!sd@:dwave_eng 0, kin_1e95:^  Time is short, and the apostles are already readying their trumpets, so why can't you foolish sheep understand?!!"^\
+langjp:dwave_jp 0, kin_1e95: ๆ™‚้–“ใฏๅธธใซๆœ‰้™ใ ใ€ไฝฟๅพ’ใŸใกใฏใ™ใงใซใƒฉใƒƒใƒ‘ใ‚’ๆง‹ใˆใฆใ„ใ‚‹ใžใ€ใชใœใซใใ‚ŒใŒใ‚ใ‹ใ‚‰ใฌใ‹ๆ„šใ‹ใช็พŠใฉใ‚‚ใ‚ใƒƒ๏ผ๏ผใ€\
+langen:dwave_eng 0, kin_1e95^  Time is short, and the apostles are already readying their trumpets, so why can't you foolish sheep understand?!!"^\

I don't really understand this markup language, maybe I broke something with these changes. I played a bit near this section, I don't see any issues.

sorry for the multiple, emails/comments, I just thought of something I need to fix...

Your fix would work, but you need to keep the !sd to ensure text is reset to the default speed, and also apply this fix to any other location this happens in the entire script.

@miere43 Can you try playing this version of the script? Let me know if you have any "disappearing text issue" and/or "text overflowing the textbox" issues. Also, if the game seems to advance unexpectedly (like it continues going when you think it should wait for you to click) please let me know.

Script download link: 0.zip

I reviewed my changes and found that in b5c96bc I attempted to add something to prevent text overflowing the textbox in the *pretext callback, and that was probably? the root cause. In this new script I've attempted to fix it another way. In this new script I reverted O[A]'s two commits, then applied this commit: 50cad4f . The aim is to detect unnecessary page waits - I detect them by seeing if there is no text on the screen when a page wait occurs, and in that case just skip the page wait.

(Also tagging #147)

@drojf Problem still occurs even with your fix (I replaced 0.u in game folder with your 0.u). Also now sometimes textbox dissappears and appears again for no reason:

https://gfycat.com/feistyancientlemming
2020-10-31_12-18-11.zip

@miere43 Here's another version, which hopefully fixes it...

Please note that your saves won't be compatible with this script - please don't load any of your old saves or you might jump to a random point in the game. However, I've rigged this particular script so that if you start Episode 1 afresh, it will instead to jump to the scene you just posted with the problem.

After that, you can make a save and start from there. If you were somewhere else in the game, let me know and I can make the script jump you to that point.

0_2020-11-01.zip

Same goes as before, tell us if you see anything unusual. In particular you might see some overflowing text lines and/or need to click twice to advance, please let me know if this happens. I tested the scene you just sent and it looks OK with this new script.

@miere43 did you have any luck with this new version of the script? Any problems or bugs?

@drojf I played one third of chapter 2 and didn't find any issues so far. I would like to finish full chapter before saying there are no problems at all ๐Ÿ˜„

ah no worries, good to know you played a fair bit of it with no issue

Finished EP2 with "Experimental Script" option from installer and noticed following issues:

  1. When text is cleared (in ADV mode frame) and new sentence begins, sometimes voice doesn't play for that first sentence. Everything works correctly if I reload the save file. Don't know if it happens with normal script. happens in normal script as well.
  2. Bug with text not advancing after shake effect still persists, saw it once (don't remember where though, it was when Jessica was talking). EP1 bug is fixed. Maybe it was "text disappearing issue" #147
  3. In experimental script this part on screenshot has shake effects and text overflows ADV frame. In normal script after each shake text gets cleared, so it doesn't overflow.
Screenshot

rr

Thanks for reporting these and testing the experimental script. I'll just comment on the first item for now, I need to fix/investigate items 2 and 3.

  1. When text is cleared (in ADV mode frame) and new sentence begins, sometimes voice doesn't play for that first sentence. Everything works correctly if I reload the save file. Don't know if it happens with normal script. happens in normal script as well.

My understanding was that this is just a bug in the engine - that it would sometimes just not play the voice, perhaps depending on the exact timing of your click. I never realized it happened specifically when text is cleared - maybe that has something to do with it. Now that we can modify the engine, perhaps we can figure it out.

I could be wrong though, and it might be that this new experimental script causes the issue. Do you know roughly how often it happened? (or how many times it happened?)

I could be wrong though, and it might be that this new experimental script causes the issue. Do you know roughly how often it happened? (or how many times it happened?)

I played a little of EP3 with normal script and it seems that this issue happens at the same rate. I said this issue happens only for first sentence, but nope, it may happen for any sentence.

Just want to say even with bugs 2 and 3 playing with experimental script was much more pleasant experience, because there are a lot of times when text doesn't automatically advance and you have to double click to continue.

This issue still happens multiple times in EP3.

1

save1.zip
1

2-4
advchar "10"
langjp:dwave_jp 0, but_3e1662:ใ€Œใชใ‚‰ใฐ่จ€ใฃใฆใฟใ‚ใ€‚@:dwave_jp 0, but_3e1663:ใ‚ใ่จ€ใˆใ‚„ใ—ใชใ„ใ•๏ผ@:dwave_jp 0, but_3e1664: ไปŠๅบฆใ ใฃใฆ่จ€ใˆใ‚„ใ—ใชใ„ใ•ใƒƒ๏ผ๏ผ@/
langen:dwave_eng 0, but_3e1662:^"Then try saying it.^@:dwave_eng 0, but_3e1663:^  Yeah, you can't say it!^@:dwave_eng 0, but_3e1664:^  You can't say it this time either!!^@/

se1v 2,100
bg white,1
;bg G1F_S1bP,0
set_oldnew_bg cg_e0103_a,G1F_S1bP,1,0
ld l,$BUT_MajimeB4,80

3
4
5

5
;ld c,$RG2_OdorokiA1,80
advchar "39"
langjp:dwave_jp 0, rg2_3e102:^^!s0ใ€Œใ…ใ€โ€ฆโ€ฆใ†ใ‰ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใใ‚ใ‚ใใƒƒ๏ผ๏ผ๏ผ๏ผใ€/
langen:dwave_eng 0, rg2_3e102:^^!s0^๏ฟฝ"...U-Uuowaaaaaaaaaaaaaaaaaaaaaaaaaahhh!!!!"^/

quakey 9,800
mov %disable_adv_clear, 1
langjp!sd
langen!sd
mov %disable_adv_clear, 0
advchar "-1"

6

6
advchar "10"
langjp:dwave_jp 0, but_3e659:^^!s0ใ€Œ้ป™ใ‚Œใƒƒใฃใคใฃใฆใ‚“ใ ใƒƒ๏ผ๏ผ/
langen:dwave_eng 0, but_3e659:^^!s0^๏ฟฝ"I said be quiet!!^/

;se1 12
quakey 5,800
mov %disable_adv_clear, 1
langjp!sd/
sl
langen!sd/
mov %disable_adv_clear, 0
advchar "-1"

2

For next time, you should take a screenshot just after the problem happens (not of the blank textbox), so I can look it up in the script.

I can't search the game script if there's no text in the image to type in, although for the CGs you posted I can figure out based on the image, but the other ones could be anywhere in the game script.

I think I know what the issue is, I think I can fix it reasonably easily.


Just for my own reference:

(from the first screenshot/save file)

langen:dwave_eng 0, rg1_3e113:^  Uwaaaaaaaaaaaaaaaaa...!!"^/
voicewait 4970
bg Mlib_1e,25
se1 13
quakey 4,700
mov %disable_adv_clear, 1
langjp!sd
langen!sd
mov %disable_adv_clear, 0
advchar "-1"

mov %disable_adv_clear, 1
langjp\
langen\
mov %disable_adv_clear, 0


se2 37
textoff
wait 200
se3v 37,100
textoff
wait 50
se1 37
textoff
wait 200
se2v 37,100

langjp ๅฑˆ่พฑใฎ่จ€่‘‰ใ‚’ๅฃใซใ™ใ‚‹ใ“ใจใซใ€ใจใ†ใจใ†่€ใˆๅˆ‡ใ‚Œใชใใชใ‚Šใ€@โ€ฆๅ‚ฒๆ…ขใฎๅใ‚’ๆŒใคๅฝผๅฅณใฏๆณฃใๅดฉใ‚Œใ‚‹ใ€‚@
langen^๏ฟฝThe girl known as Pride was finally unable to endure the words she was saying...^@^๏ฟฝand broke down crying.^@

The problem seems to occur due to the advchar "-1" which changes the textbox type, being in the wrong spot - it should be just before the main piece of text, rather than in-between the "disable adv clear" sections.

from the section with the battler CGs (starting at set_oldnew_bg cg_e0103_a,G1F_S1bP,1,0):

mov %disable_adv_clear, 1
langjp!sd/
sl
langen!sd/
mov %disable_adv_clear, 0
advchar "-1"

se1v 64,100
se2v 27,100
se3v 2,100
quakex 5,500

mov %disable_adv_clear, 1
langjp\
langen\
mov %disable_adv_clear, 0

ld r,$EV2_OdorokiA2,64

advchar "34"
langjp:dwave_jp 0, ev2_3e1021:^^!s0ใ€Œไฝ•ใชใฎใ‚ˆใ“ใ‚Œใ‡ใˆใ‡๏ผŸ๏ผ/
langen:dwave_eng 0, ev2_3e1021:^^!s0^๏ฟฝ"What the hell is thaaaaaaaat?!^/

Note that in this case the advchar "-1 is unnecessary, since there's already a advchar "34" below. Make sure not to overwrite these if there's already one (either put the advchar "-1 just before the advchar "34" or remove it)

For next time, you should take a screenshot just after the problem happens (not of the blank textbox), so I can look it up in the script.

Updated my comment with script locations.

@miere43 I've fixed some instances of this kind of error. Thanks for including the script locations.

Please try this new script: 0_2021-06-16_23d56525603b9b1537e0ee79eaef63eb0cff5fbd.zip. (commit 23d5652)

Your saves should be compatible, but please make a backup of your old script just in case it isn't.


Commits 881c6e2 and 46bf3fa fix specific cases where the problem might occur, after reviewing places where my script detected the same kind of errors you saw.

Commit 23d5652 doesn't directly fix anything, but could possibly fix some of the same issue. I haven't reviewed these changes.

@drojf Looks like it's fixed now.