EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
987 stars 186 forks source link

"Show screen" to transition same-frame commands' effects not working #1445

Closed CherryDT closed 4 years ago

CherryDT commented 5 years ago

Tested on Windows with continous builds.

Simple example:

@> Show Picture: something
@> Show Screen: Random blocks across the screen

Expected behavior in RPG_RT: Picture is shown in a random blocks transition. Actual behavior in Player: Whole screen jumps to black and fades in with random blocks transition. (Note that in non-continuous builds, there is no transition at all.)

Same for any scenario in which a non-frame-waiting command such as show picture, instant move picture, change tileset, etc. is executed, followed by a "show screen" command in the same frame.

fmatthew5876 commented 5 years ago

I just tried this with a local copy of master that I built using gcc/WSL in Windows 10.

When I do ShowPicture followed by Mosaic the behavior looks the same to me. I don't see the screen go black. The entire screen gets blocky and does the mosaic transition in with the picture included

However when I transition using FadeIn, the behavior is different.

In RPG_RT, only the new picture(s) fades in. The rest of the screen is unchanged. In Player, the whole screen fades in from black.

CherryDT commented 5 years ago

Hmm... this is the build I got a few hours ago from the continuous build link.

screencast

EDIT: Okay my mistake, the transition is "random blocks across the screen".

fmatthew5876 commented 5 years ago

Yes I see it now. "Random blocks across the screen" has the bug. Same as "FadeIn".

It also effects moving events. If you have an event walking around randomly, and the transition in will sometimes affect the sprite as it moves in RPT_RT.

CherryDT commented 5 years ago

Yes, essentially it causes the scene to draw itself out of order into a back buffer and then transitions to that buffer. Since the picture would normally have been drawn only during the next frame, that allows transitions like this for pictures (but also, as you noticed, for anything else that was changed since the last time the screen was drawn)

fmatthew5876 commented 5 years ago

I learned a new trick today.

Just doing a single ShowScreen: Mosaic you can produce that "hazy memory" effect they used in FF6. I think they did it a few times when Terra removed the slave crown or thereabouts.

Nice :)

When fixing this we wouldn't want to break Mosaic.