You can't assume it acts that way on anyone else's system, so it wouldn't make sense to store it in the movie file (that option isn't needed for me and probably wasn't used by whoever recorded the movie either, and depending on what's installed it could cause all games to crash or desync).
Some of the options (such as this one) are only situationally useful and are likely to have negative side effects. To minimize the damage such options could cause if forgotten about, they are neither stored in the config file nor stored in movie files. If a game doesn't run with the default settings, that's a bug, which I'd rather fix at the source.
In this case, I'm guessing the problem is because the UserCallbackDispatcher hook currently has some OS-version-specific code for XP and Windows 7 but not Vista... it's the only place with that sort of code, and I'm still looking for a less brittle way of implementing it. Until I find it, maybe I should disable that hook if I detect that the OS is Vista (that is, if it's even possible to detect the current OS version without getting lied to by a compatibility layer).
Here are all of my old games (Don't look they suck). The only one I expect to have any success with is Sakugarne Treasure Adventure v3 as it doesn't use the mouse, but I tried many of these, and the best result I got was a window was created for some of them. The only two factors I can think of that might be getting in the way is the loading bar that comes up at the beginning of the program and the fact that I believe all of these are full screen. Let me know if you have any ideas / need any more information. All of these were made with Game Maker (Now a product of YoYo Games), all of them use DirectX, and none of them are cross platform. Thanks.
The only one I expect to have any success with is Sakugarne Treasure Adventure v3 as it doesn't use the mouse, but I tried many of these, and the best result I got was a window was created for some of them.
"Sakugarne Treasure Adventure v 3.exe" already works ok for me with the default options. The loading screen was all black and I had to wait a while for it to go away, and whenever the game tried to pop up a help window I couldn't see it and had to press escape to dismiss it so the game could unfreeze, but the actual game ran fine and synced on playback, and AVI video capture worked.
If you can't get it working after another try or two: What OS version are you on? If it's Vista, maybe the workaround Lex just mentioned works here too. Or you could try switching various settings to "allow" or "asynchronous" until it runs.
I'm on Vista. I realize now that Sakugarne Treasure Adventure v 3 doesn't even work for me regularly right now. I tried with Lex's suggestion on a few other games, and they worked to some extent; saving / loading save states seem to lead to a crash. Let's ignore my awful old games and try a "good" Game Maker game: Hard Hat III (On this page). I tried running it on Hourglass, and it creates a small, white window that I can't do anything with. How is it working on your end? Not that I wasn't planning on doing this eventually, but I'm considering reformatting this to 7 shortly.
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
I'm running Vista64. I got Hard Hat 3 to run in Hourglass on my system with these non-default options enabled: "Allow Fullscreen", Message Sync Mode "Unchecked", "Allow loading any custom/installed DLLs", "Allow loading uxtheme.dll". The last one might not be necessary, but the other 3 are definitely necessary for me.
The message sync mode being unchecked may make input movies not sync, but Nitsuja might be able to do something about that now that it runs at least. I'm pretty sure the necessity of leaving message sync unchecked is because of the loading bar.
Yeah, it seems to run under those settings for me as well. That said, this is still far from perfect. For example, somehow loading a state causes this to happen:
Furthermore, I got some kind of message when I wanted to load a state that was farther on in the game then I currently was at. That seemed odd to me. Should I assume states work very differently here? Instead of storing the actual state, does it just play back the input to that point or something? Even so, is this message really necessary?
Update: I'm also often having issues with sound and controls. The only button that seems to be working for this game is the Enter button. So, I was able to get 600 frames into my run; I successfully told the game that I didn't want to configure my joypad!
I've tried TASing Ninja Senki, but I can't get through the main menu because it keeps crashing… I've tried disabling multithreading, but it doesn't help
also, when I loadstate the screen doesn't refresh, and I have to advance 1 frame to refresh it (making it very unprecise)
I guess some Japanese communities noticed this and started putting up videos of WIPs already:
Yeah, other Japanese TASers are also very surprised and intereted in this revolutionary tools! I'm a bit on the late side, but thanks you for this tool.
nitsuja wrote:
Ooh! The StickMan one is a full run. :o There's one part that seems suboptimal (though admittedly I'm no expert on the game)
Yeah, I admit this run is improvable because I hurried completion of the run, so please teach me where part you think seems suboptimal. :)
ALAKTORN wrote:
when I loadstate the screen doesn't refresh, and I have to advance 1 frame to refresh it (making it very unprecise)
This problem also occured in my run, but most annoying one was frequent crashes...
I'll repeat what I said to ALAKTORN since I realized it might be helpful to other people getting similar issues:
ALAKTORN wrote:
I've tried TASing Ninja Senki, but I can't get through the main menu because it keeps crashing… I've tried disabling multithreading, but it doesn't help
Crashing after loading savestates? You have to be very careful to only load savestates when you're already on the same screen that the savestate is from, at least before the main gameplay starts and the game is still loading files. Also, disabling multithreading won't fix that particular between-screens issue but it definitely makes everything more stable, and keep in mind you have to disable it before you start running the game, of course. Try using just frame advance (at most) and no savestates until it gets into the level.
ALAKTORN wrote:
also, when I loadstate the screen doesn't refresh, and I have to advance 1 frame to refresh it (making it very unprecise)
This I'm fixing now and it'll be in the next version. Actually I already have a fix, I just have to find a way to make it not crash Perfect Cherry Blossom and then I'll update it.
Brandon wrote:
I'm on Vista. I realize now that Sakugarne Treasure Adventure v 3 doesn't even work for me regularly right now.
Ah. Yeah, if your system can't run it normally, then it's unlikely to work inside Hourglass either. (Although if enough parts of the OS are reimplemented in Hourglass it might be possible eventually.)
Joined: 10/27/2004
Posts: 1978
Location: Making an escape
Okay, one more thing to report one, and I think I'll have covered everything.
I've encountered a couple of more graphical bugs in Eternal Daughter. Fast forwarding makes everything look psychedelic, and loading states in certain areas can garble the map a bit. However, I suppose these are related to the other cross-screen loading bug I found and trust they will be dealt with.
Again, thank you for your efforts.
Edit: Okay, so I have one more thing. F2 allows you to reset the game at any time, permitting you to skip right over the opening introduction. Hourglass won't recognize that, so I think I'll have to record from a "dirty state" unless there's a workaround. I've already tried changing the game input for F2.
A hundred years from now, they will gaze upon my work and marvel at my skills but never know my name. And that will be good enough for me.
GDI games had the same issue, which is fixed, but I haven't applied that fix to DirectDraw games like this yet. As a temporary workaround, you can disable "Backbuffer Frameskip" in the "Tools > Fast-Forward Options" menu. But that option is usually an important part of what makes fast-forward so fast, so having it enabled after there's a fix for this case in the code would be better.
Ferret Warlord wrote:
and loading states in certain areas can garble the map a bit.
I wonder, if you disable hardware acceleration in the Graphics menu, does this still happen? And what's the earliest place I can reproduce this? (I think I know what you're talking about but I can't remember where I saw it before.)
Ferret Warlord wrote:
F2 allows you to reset the game at any time, permitting you to skip right over the opening introduction. Hourglass won't recognize that, so I think I'll have to record from a "dirty state" unless there's a workaround. I've already tried changing the game input for F2.
I think the input is being recognized, but whatever command this game uses to reset itself isn't implemented yet. It's probably something I disabled in the mistaken belief that no game would ever use it. Shouldn't be hard to fix, but there's no workaround I'd suggest until then.
Input is not yet working on Nothing, (probably a similar situation to Super Meat Boy, but different input library), not that it's a good TAS candidate yet, but I think it'd be fun to just play around with in Hourglass and experiment with knockback.
How fleeting are all human passions compared with the massive continuity of ducks.
Joined: 10/27/2004
Posts: 1978
Location: Making an escape
nitsuja wrote:
GDI games had the same issue, which is fixed, but I haven't applied that fix to DirectDraw games like this yet. As a temporary workaround, you can disable "Backbuffer Frameskip" in the "Tools > Fast-Forward Options" menu. But that option is usually an important part of what makes fast-forward so fast, so having it enabled after there's a fix for this case in the code would be better.
That provided a partial fix, as instead I was getting artifacts more similar to the other described bug. I had to disable the "Frontbuffer frameskip" as well to fix it entirely.
nitsuja wrote:
I wonder, if you disable hardware acceleration in the Graphics menu, does this still happen? And what's the earliest place I can reproduce this? (I think I know what you're talking about but I can't remember where I saw it before.)
That didn't help. The earliest place I can replicate this is the pool of water in the forest, towards the bottom of the room. It's such a minor bug that I'm not going to worry about it, though.
A hundred years from now, they will gaze upon my work and marvel at my skills but never know my name. And that will be good enough for me.
Input is not yet working on Nothing, (probably a similar situation to Super Meat Boy, but different input library), not that it's a good TAS candidate yet, but I think it'd be fun to just play around with in Hourglass and experiment with knockback.
If it's just for testing, you can try setting "Runtime > Wait until sub-process creation" and "Runtime > Message Sync Mode > Unchecked (native messaging)".
Input is not yet working on Nothing, (probably a similar situation to Super Meat Boy, but different input library), not that it's a good TAS candidate yet, but I think it'd be fun to just play around with in Hourglass and experiment with knockback.
If it's just for testing, you can try setting "Runtime > Wait until sub-process creation" and "Runtime > Message Sync Mode > Unchecked (native messaging)".
Checking "wait until sub-process creation" causes the game not to stop when the paused checkbox is set. Setting Message Sync Mode to "unchecked" without "wait until sub-process creation" causes the game to crash right as it loads the first area.
How fleeting are all human passions compared with the massive continuity of ducks.
is it possible to hex edit movie files? I usually use WordPad, but trying to open a .wtf (oh god only now noticed, was it intentional? XD) with it doesn't produce good results
should I change program or what?
I'm on Vista. I realize now that Sakugarne Treasure Adventure v 3 doesn't even work for me regularly right now.
Ah. Yeah, if your system can't run it normally, then it's unlikely to work inside Hourglass either. (Although if enough parts of the OS are reimplemented in Hourglass it might be possible eventually.)
I thank you for your help with this issue, and I know you have a lot of things to address, but did you happen to miss my latest post regarding a different game? The resulting screenshot is nothing short of bizarre, and I'm wondering what your thoughts on it are.
There's a new version. It deals with the following reported issues:
ALAKTORN wrote:
when I loadstate the screen doesn't refresh, and I have to advance 1 frame to refresh it (making it very unprecise)
Masterjun wrote:
If I hold Shift and try to press the Frame Advance key ... it doesn't go to the next [frame].
(maybe fixed:) Lex wrote:
there's an issue with the "Stop Running" button not closing the process completely [on Vista].
Also, it should speed up fast-forward in certain games like MegaMari where it didn't do much before, and it should allow more games to be compatible with the "disable directsound" option which is useful for increasing TASing stability.
yuigenron wrote:
This problem also occured in my run, but most annoying one was frequent crashes...
In the newest version of Hourglass (currently r15), if you choose "Sound > Disable DirectSound Creation", this game should almost never crash anymore. Also, if you only load savestates from the current level/room, that should help a little too.
ALAKTORN wrote:
is it possible to show input / frame counter and all those nice things on screen? I can't find the option
Not yet, for now you'll just have to look at that stuff in the other window. It must be possible to add this feature but it's kind of annoying to implement it in a way that works in all these different games that render their screens in different ways.
Brandon wrote:
I got some kind of message when I wanted to load a state that was farther on in the game then I currently was at. That seemed odd to me. Should I assume states work very differently here? Instead of storing the actual state, does it just play back the input to that point or something?
Savestates are basically just RAM dumps, which are valid only within the current game session. If you close the game and reopen it and try to load an old savestate, that state is definitely not going to work anymore because it was from a previous instance of the game, and the new instance probably has different system handles and different memory layout, so the best Hourglass can do in that situation is play the input in fast-forward up to the frame the savestate was created on. Depending on the game that might only take a few seconds, but I think it's important to have a message telling you what it's about to do so that you don't think the game is randomly running out of control. Note that it automatically "revives" those invalid savestates by re-saving them if you watch the movie past where they were originally saved, which is why you usually won't see this message when loading a savestate that's in the past.
Brandon wrote:
did you happen to miss my latest post regarding a different game? The resulting screenshot is nothing short of bizarre, and I'm wondering what your thoughts on it are.
I didn't miss it, but I haven't looked into it yet. Most likely that game isn't supported right now for a bunch of different reasons that would have to be fixed anyway in order to get quite a few other games to boot up.
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
In my initial r15 test with Geoffrey The Fly, I experienced a white screen upon trying to record and the "Stop Running" button wouldn't close the program, but now I can't reproduce either problem. Now Geoffrey The Fly works perfectly without needing "Disable DirectSound Creation", which it used to need to run at all in Hourglass, and "Stop Running" closes the program completely. :)
I just had a weird state-load problem. Note that I'm playing in real time for testing. I saved state, died in the water, and loaded state. I then avoided dying where I had died before, but when the time of death passed, the music stopped and the death sound played, but I continued playing in silence. I went a bit farther and then clicked "Stop Running". Now, this is the strangest part. When I watched the recording, it went through the beginning until the part I died, and in it, I actually died. Then, the game restarted and played the same way until the state-saved point, at which point, it avoided death (with the music continuing and no death sound) and went to my final location, where the input playback stopped and the auto-scrolling screen pushed me to my death. How could the state-load produce a second recording which it plays back after the first?
There's a new version. It deals with the following reported issues:
ALAKTORN wrote:
when I loadstate the screen doesn't refresh, and I have to advance 1 frame to refresh it (making it very unprecise)
while that is fixed, the screen now seems to be dying for a frame
edit: also another problem is that I can't unpause with spacebar for some reason, it pauses but doesn't unpause; and I'm cucrrently writing this blindfolded by the game's window because it will givean error sound if I try to move it...
edit2: ok the tpause unpause problem was conflicting hotkeys <_<