Releases: Eddio0141/UniTAS
UniTAS 0.5.1
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
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
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 APIenv.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
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()
andmovie.stop_capture()
Changed
TAS movie
- Errors at runtime and set up now don't dump the exception stack trace
- Renamed and moved method
adv
asmovie.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
- Moved UniTAS set up tool to unitas-setup-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
sinceMOVIE_CONFIG.frametime
already exists
UniTAS 0.2.0 - Set up tool 1.1.3
This release is important as I've swapped the TAS movie scripts to use lua, which reflects the wiki notes
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
Change log
Fixed
UniTAS set up tool
- Fixed installing UniTAS from GitHub release
UniTAS 0.1.0 - Set up tool 1.1.1
β οΈ 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