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