Posts for keylie


1 2
6 7 8
15 16
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
I was thinking about showing one of the work from DevilSquirrel who has made TAS tools for some recent PC games using code injection and a friendly TAS editor, as can been seen in this stream on Celeste. He has made TASes of several categories of Kalimba and Ori and the Blind Forest, and he is in the middle of doing Celeste (see his youtube account). The input replays are perfectly stable, and the interface shows inputs as well as ram watch values for speed and position etc.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Here is an update on the libtas project: GUI The GUI was completely rewritten to use Qt5. This results in a much better look, user experience and also a much cleaner code. This also fixed a few bugs from the old toolkit Controller inputs Together with the GUI rewrite, the controller inputs window was finished. Now controller inputs can be sent to the game, including analog inputs from sticks and triggers. I'm simulating inputs from an xbox360 controller, it is a rather standard controller that most games recognize and have a mapping for. RAM Search/Watch A basic RAM Search/RAM Watch feature is implemented. You can search on every kind of memory segments of the game (code/static data/heap/anonymous memory/etc.). You can search for integers (signed/unsigned 1-byte -> 8-byte) and float/double. You can filter results by comparing against the previous value or a constant value. For games with high memory usage, the memory search can break if stores too many values (> 1 GB for me) Releases I start using version numbering and releasing compiled versions (both deb file and plain binaries) so that people don't have to compile it if they don't want to. I also started to write usage instructions on the github wiki page. ToDo - Increase game compatibility - Implement incremental savestates for much lower savestate size and faster reading/writing - Try to handle multithreading undeterministic behavior (run some thread code in the main thread, play with the thread scheduler...) - Improve savestate code so that it can recover destroyed threads. For now, the set of running threads must not have changed to be able to load a savestate
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
I managed to launch a flash file and print the first frame, but then it freezes. It is probably because the tool does not support the specific screen draw function that was used and could not call all the frame boundary routines (advance time, read inputs, etc.). The tool is game-oriented, so it is less likely to support general purpose graphical programs.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
I would rather clean up and writing documentation before trying to submit movies.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Shovel Knight TAS: Link to video
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Full Plague any% TAS is done: Link to video
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Nice ! I think the reverse Truce Canyon skip can be done without save/reset in TAS. If you watch this video, the runner saves before the fight trigger, so it looks more like a setup to get the right frame than going through the trigger area like Heckran skip. In lab16 after taking the Berserker, you can go straight to the left and use the dialog box to bypass the fight trigger instead of going down.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Yes I think, I have been working on the following stages.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Hey. I made this TAS of the first stage. It was done on the Linux DRM-free version of the game (3.0A) using my own TAS tool for Linux games (https://github.com/clementgallet/libTAS). It works fine with this game (input recording, savestates), except that I still get rare crashes on state loading :(
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
End at 73679: User movie #42161070807090315. Saved a few frames in s13 but lost a few frames in s15 to grab an ammo drop for the laser.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Improved s13 (34 frames) and s15 (18 frames): User movie #42133629913507284 I had bad luck on ammo drop during fire dash, so I'm short on fire at the beginning of s16 :/
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Here is an update on this project. In the past few months, I worked on a GUI so that it is easier for people to use it. Also, I made savestating mostly work. In short, I pause all threads, dump the memory sections of the game process and thread registers into a file. Same goes when loading, except I run the code in an alternate stack to restore the original stack. It is not currently possible to load a state when the set of active threads has changed, but it is not a big problem in practice. Extra care was done on the connection to the X server, I keep the struct holding the connection data intact when loading. Also, the game must be running using Mesa's opengl software rendering if savestates are to be used, because I cannot copy the content of the video card state. There are currently still some crashes when loading (about 1/100 for the few games I tested). I still managed to produce a TAS of TowerFall Ascension: Post #457565
Post subject: TowerFall Ascension
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
This was actually done on the GNU/linux version, but here is a TAS of the 36 trials: Link to video And a slowed-down version: Link to video
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Patashu wrote:
When a real human wants to speedrun Towerfall at 1000fps, what do they have to change? An in-game setting? An ini file or command line argument? Use of an external tool?
Well speedrun.com enforces vsync on and visible fps in Towerfall. If a speedrunner would want to play at 1000 fps, I guess s/he would disable vsync in the game options and use an external tool such as rivatuner to set the fps to a particular value. But theoretically, the tool is not needed, s/he would just buy a very powerful computer and disable vsync.
Post subject: Policy regarding tweaking fps values
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
I was wondering if there was a policy regarding the acceptable values of fps in PC Games? Standard fps is 60, but you can set fps to any value in TAS tools. I know that some Half-life TAS has been done in 1000 fps for faster bunny hoping I guess. I was wondering about that because I may plan on working on a TAS of Towerfall, which supports well custom fps. In this game, high fps values greatly improve the speed of your dashes. Indeed, when dashing, the characters starts at a high velocity which then decreases exponentially. If you press the same button again, the dash is stopped and the character keeps the velocity when the dash was stopped. So the sooner you can stop the dash, the higher velocity you will achieve. It makes a lot of difference between 60 fps and 1000 fps (roughly +50% velocity). It is also interesting to note that this game has a timer to the thousandth, which behaves correctly in 1000 fps.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Initializing initial RAM with random values like Bizhawk is doing is illegal by the site rules.
No randomized or unverified custom initial RAM state Emulator settings to initialize RAM a specific way are not allowed unless the entire RAM state as a whole is proven to be a possible starting state for the console being emulated. This also applies to fully random RAM state initialization, which is guaranteed to generate an invalid starting state the vast majority of the time for most consoles.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Thanks for the advices. One good surprise I had is that it goes well with lua scripts that modify inputs (you just have to set Recording mode).
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
I used the traditional way for several years, only using TAStudio to correct early mistakes and resync the movie, or to copy/paste inputs. I looked again at TAStudio for DTC6, and when 1.12.0 went out, I used it for everything and liked it a lot. There are still things that annoys me (saving takes a lot of time and breaks the flow, sometimes it looses previous savestates and must play from the beginning again), but overall I think I save time using it than traditional way. I never tried TASEditor.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
There is also this text from lcc.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Fog wrote:
Samsara wrote:
So the movie was rejected for a rule that didn't exist at the time the run was submitted?
It existed prior to the run being submitted. http://tasvideos.org/MovieRules.html#MovieMustBeginFromConsolePowerOn Note the "Clear SRAM" portion. All that the added rule did was clarify the existing rule.
You refer to this rule?
any check box that has "Clear SRAM" or similar must be checked
This sounds quite far from "not manipulating RAM at startup". But ok now we have a clear rule. I would also note that Final Fantasy 6 will probably never be verified anyway, because it uses uninitialized RAM for very important things such as the random battle danger value, which will determine when the first random fights will trigger. Edit: SNES core of Bizhawk uses random values for initial RAM. I cannot test if it still stands because the latest versions crash on my computer, but it is the case until version 1.11.1
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
I took this from reading the Higan source code. This is an emulator specific method to fill the initial RAM values. Snes9x fills 0x55 in the whole RAM, for example, and lsnes can also do that if you don't check "Initial random values". The actual console behaviour has been discussed in this forum. From what I remember, on a brand new console, RAM addresses can take multiple values, not with the same probability, and there are dependencies between different addresses. I don't know if the method to launch another game to write the desired values into RAM, and quickly change the cartridge to keep the same values, works on the SNES. If not, you would need another method to fill the correct values. Also, there are longer setups that do not rely on uninitialized RAM.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Here is more details: * No gamecube controllers * Four Wiimote controllers with no extension and horizontal position checked (this might cause the desync problem)
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
By outside, I mean in front of Narshe actually.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
J'ai créé le discord et ai envoyé un lien par mp à tous.
keylie
He/Him
Editor, Emulator Coder, Experienced Forum User, Published Author, Expert player (2830)
Joined: 3/17/2013
Posts: 391
Spikestuff wrote:
I mean all you have to do is literally attempt to not show a single name. :3
You mean the names in the credits, right? Unfortunately, this is not 100%, so we don't have access to the credits, only the empty foreground.
1 2
6 7 8
15 16