Posts for feos


1 2 120 121 122 439 440
Experienced Forum User, Published Author, Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Patashu wrote:
I guess the main 'problem' here is that instead of fully simulating a computer and advancing it by a specific amount of cycles (like JPC-RR), we're residing inside of a computer, fooling another program by swapping out the results of system calls, into thinking that certain amounts of time are passing (and other things).
Now I wonder if consistent 1000fps is achievable on a PCem/QEMU level: can you emulate a certain CPU, install a legitimate OS, and then run the game at consistent 1,000,000 fps? Or 0.30000000000000004 fps? Are such precise framerates even possible on real machines with real OSs?
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Patashu wrote:
why was there no similar debate for Windows TASes?
I don't think there was a decision not to discuss it back then :D It just happened that either no Windows TAS used translation layer's fake time to simulate crazy framerates, or no one noticed problems for those that did.
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 (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Для тех, кто в танке: на генсе сидят все линуксоиды и все тасеры соника. Бизхок не работает под линуксом, в его сеговском ядре нет камхака, а хоковское луа слишком медленное. Если это все решится, генс будет забанен. Вы лучше принципиальные преимущества кроме вышеназванных перечислите. И то пока что это не преимущества, а безрыбье. Мы с Марзо одно время обсуждали запихивание обновленного gpgx в эмуль lsnes с заменой ядра снес. Так как гамбатте делает то же самое, все вполне осуществимо, вот только с сейвами в gpgx действительно все не так радужно. Другой вариант - переезд хока на .netcore, это убирает нужду в моно и дает возможность без потерь функционала работать на линуксе нативно. Хотя луа скоростей генса не достигнет никогда.
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 (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
If a game doesn't have randomness at all, and all it cares about is videoframe precision inputs (or inputpoll precision inputs), will it be possible to properly TAS it with no fake time?
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 (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
What about savestates and frame advance? Are OS time functions involved in these, and if they are, what's their relation to fake and non-fake time?
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 (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
The thing I'm asking is similar to samplerate. The game is designed to retain the actual speed no matter what, and if you crank up the framerate that libTAS enforces, you just increase the samplerate in terms of frame frequency, without affecting the speed of the action. Like video lag on slow CPU, just reversed. Or imagine shooting a video. You have continuous reality with "infinite samplerate", and your camera films at 60fps by default. That'd be what vsync does in games. The speed of events is the same in both. Drop the filming framerate to 10, same event speed, lower samplerate. This tas is filming reality at 1000fps. Events speeds are unaffected, while precision, samplerate, time resolution increase. The question was, how does libTAS handle both of these entities, event speed and fake OS time? From cwitty's answer, I think it's the same thing as you said: libTAS can be configured which time it would report to the game. Normally, when vsync is on and the hardware runs at, say, 60fps, the game gets the same answer every time: "1/60th of a second has passed since last update". The game then decides how far gameplay was supposed to advance during that time, runs the engine and renders the new frame. As it was said, even with internal vsync off, libTAS still forces consistent framerate whatever we set in the same fashion: it just says "one millisecond has passed", and the game uses that delta to run the engine with this time in mind, and renders a frame that happened sooner than in the first example. Samplerate just increased, consistent delta decreased. Is this correct? Another question, games won't even allow TAS tools if time is not faked? Like, even TASing them with vsync, telling them accurate OS time every time, will we ever be able to TAS them within this workflow?
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 (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
Co-op is just an N-player mode, Vault can have it if it's the fastest way to beat the game. If drop-in/drop out is faster, use that. Both versions can only be in Vault if they feature more than 50% of gameplay difference (inherently unique levels, bosses, etc).
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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 (1236)
Joined: 4/17/2010
Posts: 11270
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.
1 2 120 121 122 439 440