Releases: Eddio0141/UniTAS
v0.6.0
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 awindow
table entry.width
andheight
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 settingrefresh_rate
to a number or a table containingnumerator
(orn
) anddenominator
(ord
)- 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 ofresolutions
is a table containingwidth
,height
, andrefresh_rate
. Make sure they are valid or it is ignored otherwise
- Additional screen resolutions for the game to pick up on can be added to the list
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
- 266 jaded combat crash on file selection by @Eddio0141 in #268
- 270 mouse coordinate overlay by @Eddio0141 in #273
- create plugins dir on init by @Eddio0141 in #275
- Preloader cache by @Eddio0141 in #278
- 280 agressive unitas hooks for initialization by @Eddio0141 in #281
- stop all audio sources on restart by @Eddio0141 in #282
- 267 fix new input system compatibility by @Eddio0141 in #272
- 106 getting unity config directly by @Eddio0141 in #290
- 289 check property getter for unity api for initial value by @Eddio0141 in #293
- 247 multiple fixedupdate in a row by @Eddio0141 in #304
- Deinitialize GOG Galaxy during soft restart by @HimitsuYuki in #320
- Add UnityAdsManager to skipProperties by @HimitsuYuki in #321
Full Changelog: v0.5.1...v0.6.0
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