Posts for feos

1 2 121 122 123 439 440
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
The last sentence is about games that retain gameplay speed regardless of their rendering or input update rate. The action that takes 1 second with vsync 60fps, takes 1 second with no-vsync 4000fps. There could be glitches, but the games are designed to account for hardware speed and whatnot, game engine makes everything happen at the same speed no matter what. So one thing is being aware of real world 1 second and sticking the general speeds of everything to that. And another thing is when we're telling the game 1 millisecond has passed since the last screen update. 2 different entities, 2 timing approaches. My question is how exactly handling both independently works.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
cwitty, do you happen to know how exactly libTAS is keeping this consistent no-vsync framerate? I asked here and got no response. Also, can any regular hardware or software simulate vsync by enforcing consistent framerate when the game isn't configured to keep it consistent? For example, I see an option to force vsync for 3D apps in the videocard settings, but it doesn't seem to be all that flexible in which framerates it allows.
cwitty wrote:
To boil it down, I feel like there are a few desirable principles the rule should follow: 1) Games should not be allowed to run significantly faster than they would on reasonable contemporary hardware. 2) Games should be allowed to run as fast as they would on reasonable contemporary hardware.
That's the whole point: contemporary hardware is relative! It's impossible to have a clear borderline when we consider the hardware not contemporary to a given game anymore. So there's a point about 3-6 years around the game release date, and whatever was common then was most likely targeted by the devs. Yet again this is also unmeasurable and uncertain, impossible to know or define.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
I tried to sync it with manual pauses and failed, then with sleep(10) and failed. After fsvgm777's success with the patch, I boosted wait up to 50 seconds! And it worked! https://i.imgur.com/Y3KVunD.png So it seems to heavily depend on one's PC specs. Keylie and fsvgm can get it to sync with sleep(1), and for the latter it runs at several dozen frames per second. I only get sub 1fps. So manual pauses I was doing were probably too short for the loader thread to properly finish. On an even better PC, would it be possible to not need pauses at all? Like the secondary thread would finish in real time as fast as possible, and optimal right away.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Thanks. Even though a movie without clearing SRAM is apparently possible to make work on console, I don't like the situation anymore. First of all, it's impossible to know the entire range of values that happen in reality. Second, it's impossible to be sure our movie is optimal given the best startup state (assuming we know which one is the best and we also happen to verify it). It's always either "maybe optimal" or "probably possible", or both. Third, when it comes to our definition of Fastest Completion (any%), it requires being sure about things, nothing iffy. This is how Vault works. When we depend on real world inconsistencies in what we're allowed to do in a TAS, we're being inherently uncertain and iffy. Lastly, we want speed competition conditions to be equal for all, that way the competition itself is more legitimate. Clearing the SRAM is the best solution considering the above points, and it also unifies the competition conditions. No dependency on things like, A has a different console and a different SRAM reader, and got better results than B, whose movie is now considered obsolete just because it uses less optimal verified startup state.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
There are a couple other things we should keep in mind. Imagine these are the differences between 2 TASes of the same game version. We've obsoleted movies with way more difference in the past, even across goals. Within the same goals, having obvious differences is even less realistic. On the other hand, back in 2013 we started removing movies from obsoletion chains using the Moons tier principles. Yet the main difference between those movies was that one of them uses major skip glitches like "game end glitch" or "save corruption", while another one avoids it. This resulted in different goals, different movie classes, different TAS features behind them, and vastly different general impression from the 2 movies. How many of these factors do we have here? How many of them are unambiguously defining the branch like "save corruption"/"no save corruption" does? So far I get the impression that these 2 movies are more similar than they should be. The fact that there are tons of Pokemon versions and branches certainly doesn't help. It looks like for the fans, of course these are different. Not sure how many of them think that they are vastly different though. But for non-experts and for general audience? Meh.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
After talking for quite a bit to Nach, here's the problem he has with not limiting framerates at all:
19:10:16 <Nach> making the game rely on OS function time, and then also screwing with that time to allow range max (resolution max?) is extremely questionable

19:35:52 <Nach> it's questionable because you're screwing with the functions the game use and using it in situations it wasn't designed for. The entire topic also begins off with a false premise, which I absolutely not apologize for, nor will I even remotely try to operate in.
So yeah, I'm not a tech guru, and when brainstorming in order to create this thread, the internal technical aspects of this problem weren't known to me. After having learned about it, here's the summary of our talk: For a very long time, the standard the games strive to work well under has been vsync. It's the primary mode to use during play, since it helps with a lot of issues, one of them being inconsistency of hardware specs which only gets worse over time.
18:23:00 <Nach> PC specs games are designed for are typically around a 6 year window surrounding the game design/release period

18:23:27 <Nach> shoving a PC game onto a PC with specs 20 years later, and running it natively that way is crazy

18:24:33 <Nach> even consider the PCs from 3x86 to Pentium era, they all had a "Turbo" button which you could turn off to make the CPU speed more like what you saw on an x86 or 2x86, so you could run old software as they were intended

18:26:50 <Nach> since everyone saw games from the x86 and 2x86 era were misdesigned based on actual clock count, forcing later x86 CPUs to have that turbo option, practically every game since started limiting time based on video and sound output speeds. Games in the last ~15 years even go for a combo due to various differences in hardware and to allow the most precise measurement of time. This is why vsync exists. If you're going to use 20+ year future CPUs and you want it to work right, use vsync (assuming vsync isn't nuts either). Turning off vsync and using 20+ year CPU? Come on...

19:01:26 <Nach> the only reason why games generally even allow turning off vsync is so you can play them on older hardware, which isn't capable of hitting 60 FPS or whatever, or for cases where you have some exotic hardware which doesn't report vsync properly, although in that latter case, there's no telling without vsync will work either
So for games that allow to disable vsync and still run at the same speed regardless, they rely on OS time functions among other things to work properly time-wise. When the game runs at high framerate without vsync, the actual rate it runs at isn't consistent. Hourglass and libTAS replace time-related OS functions and can force the game to run at certain framerate consistently without vsync. While consistency sounds like something good, we're not just modifying OS functionality to make the game TASable and then replay the movie without OS hacks. We're hacking OS functions to affect the way the game works. Even though some time functions report proper time, allowing the game to be aware of real world time and work at consistent speed gameplay-wise regardless, other time functions are replaced and report false time altogether. The suggested solution is limiting all this to vsync and internal options for game speed, since neither involves hacking OS functions and both allow the games to run in the frameworks they target. I can add that this unifies the competition conditions too.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
When deciding on obsoletion chains and branches, we look at both similarities and unique features. And when it's about games that aren't identical, yet somewhat close to each other, we must compare similarities and unique features of the TASes as well as of the games themselves. That's what we do for hacks in Moons. Pokemon games just happen to be so numerous that overlapping content is really unavoidable between certain games, so we kinda have to treat them a bit like we treat hacks.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
The way I see it, any emulator configuration and hotkey should be banned during playing. In MAME I can simply erase all hotkeys that access emulator features, and when a TAS is played back that uses them, it desyncs. I only leave game controls enabled, and the run that uses only them works. Don't know how this is set up in dosbox, but we'll try to limit it in the same manner: config prior to tasing.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
I can;t get this to sync no matter what I do. With the patch, with manual pauses, with libtas 1.3.1 and interim, with touched and untouched game config (the only part changed was fullscreen). The fact that it runs at 1-2 fps on my vm doesn't help. Game version and hash match.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Just letting you know guys, DOSBox inside libTAS has very high chance of being accepted for DOS TASing. And libTAS has input roll like in lsnes.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
The encode above is of an older WIP. Here's the one for this submission. Link to video
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
I've been encoding this all evening to 4K, and uploading overnight, but firefox just said FUCK YOU and froze at 57%. Time well waisted.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
As I said, it can be put in the movie only if it's small enough. Another problem is that emulators don't include such data into movies.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Yes the best possible solution would be knowing for sure how audio samples affect gameplay here. If it's unrealistic, we could try trimming the sample until it stops working, and then setting its bytes to 00 until it stops working. That would allow to figure out which bytes have to be what for the movie to sync. It'd also be nice if someone applies trial and error to check how those bytes affect gameplay. So without disasm this method is the most effective one. If even that fails to happen, we'll have a staff poll and think of a backup solution. So we really encourage everyone to ask for help with this everywhere they can, if they care about this submission.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Only if it's small enough.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
I believe reproducibility is a sensible requirement set for similar cases. It's really common for audio or video commentaries linked from our publication to have died, and now the commentary flag is moot for them. I don't want the entire TAS publication to become moot once an audio sample required for it becomes unavailable. There's literally be no easy way to watch or reencode it anymore. It could happen that the sample used is the most optimal by coincidence, and upon trial and error, no one manages to recreate it. So if its upload dies, the publication is rendered invalid. I don't think we should allow such a risk. It'd be better to learn how this particular sample influences gameplay and why, then it'd at least be possible to know the sync-mandatory aspects of this particular sample. And just like the extra image rules say, the data used should at least try to be optimal. Am I right that here it's just a random occasional sample with no optimality clues?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
I'm confused. Is the game using the same OS functions to see how much time has passed since the last frame, and to get the idea of real world time, so it could keep consistent gameplay speed regardless? Without time calls substitution, it would always have the correct time, just framerate without vsync would be inconsistent, if I'm reading this correctly. And libTAS somehow forces consistent and exact framerate, yet it doesn't actually simulate a CPU speed. It returns false OS time info to the game. I just don't understand how it manages to support real world speed of gameplay regardless.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
If the run aims for in-game time, and it makes more sense to speedrun using the in-game timer rather than real time, such a mode can be used to replace common any%, like it happens in Sonic games. Otherwise, there should be gameplay benefits. I doubt the very fact of seeing a timer will make sense as an entertainment trade-off by itself, without in-game time goal.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
keylie wrote:
The way the framerate setting works is by letting the game think that each screen draw takes exactly 1/fps duration.
Where in the code is it done?
keylie wrote:
The game physics take into account the time between two screen draws, whatever that is.
What OS function does the game use for that?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
If I just manually pause on those frames, how long do I need to wait before unpausing? Hacking the tool in such a manner to force a workaround for a specific game, while isn't too new in nature (plugin based emulators had tons of optional per-game hacks, and it was a terrible approach), still feels like there are more general or softer solutions. Of course there's no scripting support, in regular emulators we could just make a lua script that pauses emulation on specific frames. But how did you get those frame numbers? Maybe the way you got them can be generalized, and there'd be an option to just pause the tool each time a certain event is detected (like creating an uncontrolled thread in this case, if I'm reading it right)?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
How can you get a SNES port by simply hacking a PS1 version? Original homebrew game is eligible for Vault if it's considered notable. Its hack that makes it less crappy isn't eligible for Vault. If it can't be entertaining enough for Moons, just TAS the original homebrew version. Yet if it's no notable, it will be rejected.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
I guess I should have said "get the technique to work optimally".
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Dropped the vsync clause.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Experienced Forum User, Published Author, Site Admin, Skilled player (1238)
Joined: 4/17/2010
Posts: 11287
Location: RU
Okay so here it goes: http://tasvideos.org/MovieRules.html#NoArbitraryFramerates Taken down by Nach. We're still discussing this.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
1 2 121 122 123 439 440