Skip to content

Releases: Eddio0141/UniTAS

v0.6.0

18 Nov 06:35
Compare
Choose a tag to compare

Brings in stability for many games that didn't work before
Also, the new input system support also brings in bunch of games that wasn't controllable before!!!
Some changes to how the UI works and stuff, it should be more friendly

Added

UniTAS

  • Added object tracker and object picker

TAS movie

  • maybe breaking: MOVIE_CONFIG now has a window table entry. width and height sets the game window's initial width and height. 1920 x 1080 by default unless specified. You can also set the resolution refresh rate (though it wouldn't matter unless the game is using this information) by setting refresh_rate to a number or a table containing numerator (or n) and denominator (or d)
    • Additional screen resolutions for the game to pick up on can be added to the list MOVIE_CONFIG.window.resolutions (this could be used for changing screen resolutions later on in the menu or something), where each entry of resolutions is a table containing width, height, and refresh_rate. Make sure they are valid or it is ignored otherwise
  • movie.no_refresh function for disabling and enabling game rendering for faster playback

Compatibility

  • Added new input system support, with keyboard and mouse working
  • Added basic support for rewired input system support

Changed

UniTAS

  • Cooler GUI theme
  • Most things can be configured within UniTAS GUI

TAS Movie

  • BREAKING: Changed controller functions, they don't use axis names for controlling anymore for accuracy

Performance

  • Loading should be faster if you've opened the game once with UniTAS
  • Slight performance increase in patching the first time

Fixed

Games

  • ULTRAKILL can be controlled now
  • Fixed itch.io Jaded Combat crashing on file selection
  • Fixed It Steals not being controllable properly with key, mouse, and controller
  • Fixed Lethal Company not loading the ship
  • Fixed Lethal Company breaking on soft restart
  • Fixed HuniePop soft locking after dialogs due to time being frozen
  • Fixed Rain World not booting and being stuck at a black screen
  • Fixed Cuphead not loading
  • Fixed Baldi's Basics itch.io release from not working

General

  • TAS encoding shouldn't show a command prompt anymore, probably
  • Fixed music overlaying on each other every restart
  • Fixed UniTAS not limiting realtime FPS making things go super fast

Compatibility

  • Fixed UniTAS not loading at all for games
  • Fixed accidentally skipping over static constructors
  • Fixed accidentally skipping over removing some readonly fields
  • Fixed crash when trying to remove readonly fields
  • Fixed sometimes UniTAS not receiving the first update, which might cause some movie desync by 1 frame
  • Fixed soft restart not properly taking in account for threads
  • Fixed soft restart not resetting cursor visibility and lock state
  • Fixed old input system's axis not being controlled by mapped inputs
  • Fixed async scene load event callback to be at proper timings
  • Fixed AsyncOperation instance not returning proper values
  • Fixed invoking RuntimeInitializeOnLoadMethod in the wrong order
  • Fixed games using ISerializationCallbackReceiver not receiving OnAfterDeserialize callback on soft restart
  • Fixed old games with only Time.captureFramerate appearing to have frozen time
  • Fixed most things related to asset bundles
  • Fixed old unity game times being frozen (unity 5 games and before most likely was affected)
  • Fixed static constructor throwing causing UniTAS to incorrectly track static constructors
  • Fixed unity not being reset, related to static extern properties
  • Fixed ScriptableObject not being reset to their initial state

Pull requests

Full Changelog: v0.5.1...v0.6.0

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