Post subject: Loading screens
keylie
He/Him
Editor, Emulator Coder, Expert player (2843)
Joined: 3/17/2013
Posts: 392
Hi everyone, I'm currently TASing Super Meat Boy. One problem is that it has undeterministic loading screens everywhere. In two different playbacks, these loading times can take +/- 1 frame. When adding up, getting a fully-synced movie file of the whole game would be impossible. I'm doing stage by stage for now. So what I will probably do is making an AVI capture of every level, and concatenate them as they would if I were to play normally. However, it couldn't submit anything to TASVideos. Is there any history on that kind of issue ?
Warepire
He/Him
Editor
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
Not that I am aware of, but I think there has to be more games that does this, specially more complex games, and then it might not be only 1 frame off anymore.
keylie
He/Him
Editor, Emulator Coder, Expert player (2843)
Joined: 3/17/2013
Posts: 392
I've been thinking again on this problem, which is likely to happen on many games. Here is a common case of loading screen: - Thread 1 is refreshing the waiting screen (e.g. every 1/60s), waiting for thread 2 to finish - Thread 2 is loading all the stuff for the next level Because Thread 1 is refreshing the screen, it is considered as the main thread by Hourglass, so that frame boundaries are detected on that thread (based on Wait calls). However, Thread 2 is running wildly and is not synchronized with frames detected on Thread 1. This only solution I imagined to solve this theoretical problem is to consider that Thread 2 is doing instantly all the computations. Meaning when the main thread is waiting for another thread to finish, it always takes exactly 1 frame.
Warepire
He/Him
Editor
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
What should be attempted first is to implement thread-syncing properly. I've had some ideas on how to do this, and DirectSound is a great testing-platform for this issue as this thread runs wild when it's not blocked from threading. (desyncs occur in movies due to this) keylie, please drop by on irc #hourglass (on freenode)
Skilled player (1742)
Joined: 9/17/2009
Posts: 4985
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Not exactly the same problem, but for that bound game I made a thread about, the initial loading is far too fast in comparison to what if it wasn't played via hourglass. Same thing happens when attempting to pause, along with other versions of the game.