Skip to content

Releases: Eddio0141/UniTAS

UniTAS 0.5.1

13 Sep 22:41
Compare
Choose a tag to compare

Few big bug fixes including ones I accidentally created the moment I released 0.5.0
Most of the change comes from implementation of frame advancing but this update doesn't include it and I'll be working on it (hopefully) for 0.6.0

Changes

Fixed

Games

  • Fixed Cat Quest not being TASable due to a bug in UniTAS
  • Fixed DDLC launch on crash because out of range system time
  • Fixed Needy Streamer crashing on start up

TAS playback

  • Fixed timing being offset wrong by whatever value is fixed update is at

Compatibility

  • Fixed some games using switch statement skips over UniTAS tracking the end of static constructors
  • Fixed not using the right ILCode for returning a default value from a method
  • Fixed duplicate AssetBundle loading causing an exception
  • Fixed coroutines causing exception on restart
  • Fixed some timing issues

Changed

UniTAS

  • Stopped setting unity running in background to false (this was causing issues with some games when you tab out)
  • UniTAS system time by default is now the current time (until you run a movie)

UniTAS 0.5.0

03 Jul 23:41
Compare
Choose a tag to compare

For once, a release that doesn't have breaking TAS scripting changes. This release makes GUIs more pretty, and fixes more games that were broken before, but there's still a long way to go! πŸ”₯

Changes

Added

Config

  • Added live config reloading
  • Added config for binding keys to actions

Overlays

  • Added built in overlays
  • Added frame counter overlay
  • Added mouse overlay

TAS movie

  • Added unity module for interacting with unity engine
  • Added unity.find_objects_by_type() to find all objects of a type
  • Added wrapped type for UnityEngine.Transform to read transform data for objects
  • Added gui module for interacting with UniTAS GUI
  • Added gui.show_overlays to show or hide overlays

UniTAS

  • Added built in overlay GUIs for TAS information

Fixed

UniTAS

  • Fixed movie playback fps unlock not working
  • Fixed movie running while game is paused while tabbed out

Games

  • Fixed deepest sword crashing randomly when running a TAS

Compatibility

  • Fixed readonly fields pointing to old references after soft restart
  • Stop threads created by game from running after soft restart
  • Prevent finalizers from running during soft restart
  • Fixed some static constructors not being tracked properly
  • Added calls to RuntimeInitializeOnLoadMethod attribute methods

Changes

UniTAS

  • Now you can run a different TAS while one is already running

Performance

  • Improved performance of changing fps

GUI

  • Updated GUI to new style
  • Added terminal
  • Added ability to move and resize windows
  • Added movie file browser

Security

TAS Movie

  • Sandboxed lua environment for TAS movie playback

UniTAS 0.4.0

02 Jun 04:29
Compare
Choose a tag to compare

⚠️ This release would probably break TASes while making the playback accurate and actually fixed (I don't want to make breaking changes as much as I can even if major version is 0, but I really had to, sorry!!!)

This release mainly fixes a bunch of compatibility problems and stuff, so some games might start working. I wanted to fix the big problems with games for them to be TASable but I wanted to just get this breaking change out of the way in the release first.

Changes

Added

TAS movie

  • Added config MOVIE_CONFIG.update_type and API env.update_type to choose what update frame advancing should use

New input system support

  • Added very basic new input system support
  • Added support for keyboard and mouse devices

Old input system support

  • Added support for ResetInputAxes
  • Added support for mouseScrollDelta

Testing

  • Added runtime unit tests to test if UniTAS features works

Fixed

TAS movie

  • Fixed accidentally skipping a frame when an unity FixedUpdate happens

Compatibility

  • Fixed AssetBundle async operations failing with null reference exception
  • Fixed game setting AsyncOperation priority throwing an exception
  • Fixed unity's Camera events not being cleared on soft restart throwing a null reference exception
  • Fixed unity's SceneManager events not being cleared on soft restart throwing a null reference exception
  • Fixed unity's NavMesh events not being cleared on soft restart throwing a null reference exception
  • Fixed opened files not being closed on soft restart, causing IO exceptions
  • Fixed static constructor dependency called in the wrong order
  • Fixed static fields not being reset all at once
  • Fixed not being able to call some async methods in AssetBundle

UniTAS internal

  • Fixed UniTAS not patching AsyncOperation classes if SceneManagerAPIInternal isn't found
  • Fixed UniTAS's wrapped classes not handling the case of the original wrapped type being null
  • Fixed not resolving monobehaviour types more than 1 parent
  • Fixed use of unload scene being called wrong causing null reference exception
  • Fixed not searching async load method in scene manager
  • Fixed AsyncOperation's OnComplete being not called at the right timing

UniTAS 0.3.0

10 Apr 14:27
Compare
Choose a tag to compare

⚠️ This release will most likely break existing TASes by fixing how time works and skipping the extra Update invoke at the start of the TAS, but you could probably fix it by removing 1 frame at the start of the movie

Changes

Added

TAS movie

  • Added movie module
  • Added movie.playback_speed() to set playback speed
  • Added FPS unlocking for TAS playback
  • Added video rendering with movie.start_capture() and movie.stop_capture()

Changed

TAS movie

  • Errors at runtime and set up now don't dump the exception stack trace
  • Renamed and moved method adv as movie.frame_advance
  • Allow the user to set the RNG seed at start up with MOVIE_CONFIG.seed
  • Set TAS playback speed to be 0 unless user changes it

UniTAS set up tool

Fixed

TAS movie

  • Fixed movie not playing again if a runtime error occurs
  • Fixed movie not playing again if error occurs when parsed
  • Fixed movie respecting the FPS limit if game has a fixed FPS
  • Fixed accidentally invoking engine methods while set up

TAS playback

  • Fixed time not getting the same value every TAS playback
  • Fixed Time.timeScale not resetting on soft restart

Compatibility

  • Fixed not being able to patch class deriving MonoBehaviour that has generic parameters for pausing and accurately
    updating TAS input
  • Fixed unity time being wrong
  • Prevent an extra update from being called on the first frame of soft restart

Removed

TAS movie

  • Removed MOVIE_CONFIG.ft since MOVIE_CONFIG.frametime already exists

UniTAS 0.2.0 - Set up tool 1.1.3

02 Mar 01:22
Compare
Choose a tag to compare

This release is important as I've swapped the TAS movie scripts to use lua, which reflects the wiki notes

⚠️ Any scripts that follows any previous formats will fail to work
⚠️ The wiki shows that frame advancing is frame_advance(), but this version defines it as adv(), please be aware!

Changes

TAS movie

  • Now uses lua 5.2, check the new wiki for tutorials and documentation

UniTAS GUI

  • Temporarily removed unused buttons until they are implemented

UniTAS set up tool

  • Updated dependencies

UniTAS 0.1.0 - Set up tool 1.1.2

24 Feb 06:10
Compare
Choose a tag to compare

Change log

Fixed

UniTAS set up tool

  • Fixed installing UniTAS from GitHub release

UniTAS 0.1.0 - Set up tool 1.1.1

24 Feb 05:21
Compare
Choose a tag to compare

⚠️ Initial release

  • UniTAS has extremely basic support for running TASes on some unity games.
  • The tool is less likely to work on games with a lot of logic.
  • Movie playback could be limited as there's a bug where long scripts can't be played back in some cases.
  • GUI is incomplete but has enough elements to be "usable" for TAS playbacks.

Change log

Added

Basic movie playback

  • Added script language for TAS movies
  • Ability to soft restart game for TAS playback

Game general support

  • Able to control games using legacy input system
  • Support for async scene loading
  • Soft restart destroys all DontDestroyOnLoad game objects
  • Game's static fields are detected and reset on soft restarting
  • Override system time
  • Able to set game FPS to be fixed for movie playback

UniTAS GUI

  • Basic GUI for playback

UniTAS set up tool

  • Able to download UniTAS stable, nightly, and by tag
  • Able to download BepInEx stable, nightly, and by tag
  • Able to set up BepInEx and UniTAS to an unity game directory
  • Game directory access history and usage