Skip to content

Releases: Toufool/AutoSplit

v2.2.2

16 Dec 19:55
Compare
Choose a tag to compare

Improvements:

  • BitBlt, Force Full Content Rendering and Direct3D Desktop Duplication capture methods can now recover window when 2 windows of the same executable have the same name.
  • BitBlt now has a clearer on-screen message for valid windows that have empty buffers (likely not compatible)
  • Image comparison timing should be up to 5% tighter by using "precise" Qt Timer Type. Default "coarse" timer type only tried to keep accuracy within 5% of the desired interval. At worst this means a difference of ±2.5ms at 20FPS. See https://doc.qt.io/qt-6/qt.html#TimerType-enum for more details.
  • Region Selection's transparent overlay now has a window name (visible when alt-tabbing/hover in taskbar)
  • It is now possible to select a window at position (0, 0)

Bugfixes:

  • Actually (hopefully) fixed "settings changed" detection for the save prompt on exit. (v2.2.1 made the popup appear when there was no changes)
  • Fixed a regression in v2.1.1 to sending LiveSplit commands where AutoSplit was looking at "start_also_resets" setting instead of whether it was being auto-controlled by LiveSplit.
  • Fixed Settings window accidentally being resizable
  • Region Selection's transparent overlay now has a fixed size in case the user finds some way to move/resize the overlay (backport from the Linux branch)
  • Fixed a running loop leak when cancelling the selection or attempting to select a window at position (0, 0)

Internal

  • General improvements by reducing now-redundant code and amount of data being passed around.

Full Changelog: v2.2.1...v2.2.2

Which build should I use?

Try the Python 3.12 version. It should be functionally identical, with a marginal performance boost. If you have any issue with it, please report it here or on the Discord server and use the Python 3.11 version in the mean time.

v2.2.1

03 Dec 04:16
af8ab61
Compare
Choose a tag to compare

Improvements:

  • When opening the settings window, "Capture settings" is now default and "hotkeys" have been moved to the end

Bugfixes:

  • Patched out more SetProcessDpiAwareness in libs to fix OpenCV warnings. May relate to #258
  • Fix "ask to save changed settings" detection on application close
  • Fix an issue with the "Video Capture Device" Capture Method when capture_device_id is -1. Fixes #252

Documentation

  • Update documentation about supported image formats for OpenCV 4.8

Internal

  • Drop support for running locally on Python 3.9
  • Add experimental Python 3.12 builds
  • Various dependencies updates

Full Changelog: v2.2.0...v2.2.1

Which build should I use?

Try the Python 3.12 version. It should be functionally identical, with a marginal performance boost. If you have any issue with it, please report it here or on the Discord server and use the Python 3.11 version in the mean time.

v2.2.0

21 Jul 21:07
377ebde
Compare
Choose a tag to compare

New features:

  • Added a Screenshot hotkey (Closes #223)
  • Added an option to specify the screenshot folder (Closes #223)
  • Added an option to not immediately open the screenshot file (Closes #223)
  • Added an option for the Start command to also Reset. This allows you to trigger a Reset whilst AutoSplit isn't running.
  • Allow unsetting a hotkey with Esc (escape). This mirrors LiveSplit's behaviour. (Closes #244)
  • Indicate that AutoSplit is externally controlled in the main window's title
  • Redesigned the Settings window with tabs

Improvements:

  • Updated list of upstream issues. Please help us out by upvoting them
  • Performance improvement by reducing unneeded image color conversion
  • Improved hotkey restrictions when starting AutoSplit (Closes #243):
    • reset hotkey for reset image wasn't properly being checked
    • start image only needs to check for start hotkey
    • start image now also checked on start
  • Added an error message for invalid split image when parsing and validating images
  • Align Region now opens Splits Images directory and fallsback to AutoSplit's directory
  • Documentation updates

Bugfixes:

  • Fixed AutoSplit hanging when closed from LiveSplit
  • Fixed an issue where only the first hotkey could be set from the GUI (Closes #249)
  • Fixed an error popup from rapid new hotkeys presses
  • Fixed live preview not showing when parsing fail with a Start Image present
  • Fixed a DPI warning by Qt

v2.1.0

06 Jun 01:49
dbf50f9
Compare
Choose a tag to compare

New features:

  • Support OBS' integrated Virtual Camera
  • Use Qt's "fusion" theme
    • Windows darkmode support (Closes #209)
    • Respect the system's theme. Both palette and accent colors.
    • More consistent style between Windows 10, 11 and Linux
    • Changes live without having to reboot autosplit
    • Removal of Windows 11 UI hacks

Bugfixes:

  • Catch pygrabber failure when adding video input device (Fixes #238)
  • Add image dimension check to region auto align feature. By @Gikkman (Fixes #231)

Internal / infrastructure:

  • Add another option to download dev builds for non-GitHub users
  • Use Ruff to replace a lot of linting and formatting
  • Drop PyQt6 in favor of PySide6
    • Will lead to better upstream support from the Qt team and stability improvements
    • Removal of ShortcutContext hacks
    • Removal of QListView height hack
  • Add Magic Numbers to Coding Standards doc

External

obs-virtualcam plugin has been updated to 3.1.0 and now supports OBS 29.1+
Do note, however, that it should no longer be needed thanks to the integrated OBS Virtual Camera support.

v2.0.1

26 Apr 17:22
6ec7ebe
Compare
Choose a tag to compare

This is a patch release, there are no new features or breaking changes.
Read https://github.com/Toufool/AutoSplit/releases/tag/v2.0.0 for all the changes since 1.6.1

Bugfixes

  • Fixed the D3D Desktop Duplication Capture Method not working at all (Fixes #229)
  • Fixed an error that could happen with BitBlt Capture Method when closing the target window of a multi-windows application (like Dolphin).
  • Fixed pHash comparison method returning a match of 0 upon a perfect match
  • Fixed an issue where AutoSplit would automatically restart if the "Loop Last Split Image to First Split Image" was checked, and AutoSplit was manually "Reset" rather than only looping from hitting the last split.
  • Fixed some numbers being rounded up in the GUI instead of being truncated. (a 0.996 match was incorrectly displayed as a perfect 1.00 match)
  • Better handle some camera errors
    • If a Capture Card isn't currently available available or is not supported by OpenCV, the blank frame given by OpenCV will be used instead of popping up an error. (Closes #58 , relates to opencv/opencv#23539)
    • Hide OBS Virtual Camera to prevent confusion with the plugin and prevent AutoSplit crash when selected.
  • Support Dummy Flag for start image (Fixes #222)

Optimizations

  • Make the autostart image comparison timer and the live preview refresh timer respect FPS limit setting changes
  • Optimize the live preview by re-using the image from comparison instead or requesting another new image

Documentation

v2.0.0

22 Apr 16:53
48b025d
Compare
Choose a tag to compare

First and foremost, HUGE thanks to @Avasam for maintaining AutoSplit and for basically all of the changes listed below. My (@Toufool ) only contribution was designing the new UI and some QA work. Without Avasam, these changes would have not been possible.

Breaking Changes - PLEASE READ before updating!

  • Settings files have changed extensions from .pkl to .toml. Settings Files in versions before 2.0.0 will not be compatible with 2.0.0. These toml settings files are compatible with LiveSplit Integration
  • Some of the comparison methods have been changed to improve accuracy. This may require you to tweak your similarity thresholds
  • Start Image pause time behavior has changed. It now pauses comparison before moving to your first split image as opposed to pausing before attempting to compare the start image after a reset/after your run is finished

Because there are breaking changes, we would advise that you keep your previous autosplit version and settings files in case you run into issues using 2.0.0.

Main New Features

  • UI Redesign
    • Settings have been moved to File -> Settings to unclutter the main window
    • A new "Similarity Viewer" table has been added for better readability of similarities during comparisons. The Reset Image similarity is also now visible.
    • Arrows above the Current Image have been added to always have the option to only move directly one split image forward or backward.
  • Multiple Capture Methods for performance and supportability (OBS 28, Video Capture Device, Windows 11, etc.)
  • A new custom split image setting that allows you to specify which capture method you want for a specific image. See Custom Split Image Settings
  • {m} flag is deprecated. Transparency in an image is now auto detected. You can safely remove the flag from your filenames if you'd like.
  • Support for hotkeys with modifiers

Main Bug Fixes

  • AutoSplit can now capture windows in OBS 28 by using the default Capture Method (Windows Graphics Capture)
  • Fixed "Comparison FPS Limit" not being respected
  • AutoSplit will now attempt to recover a Capture Region if the target window is closed and reopened
  • Any uncaught exception will now be presented to the user so that it can be copied into an issue, and AutoSplit will attempt to recover from the exception.
  • General stability improvements

All Changes

  • Change default capture method to Windows Graphics API (#200)
  • Slight build size improvement
  • Documentation updates:
    • Add link to dev builds
    • Update some phrasing in capture method descriptions to be more accurate
    • Added Discord badge in readme
  • The settings file is now a human readable TOML file, better backward/forward compatibility in the future, but your old settings in pickle (.pkl) format won't be compatible. (Closes #70)
  • Accessibility and UX/UI improvements:
    • Completely new UI
    • Added a splashscreen
    • "Missing profile / setting files" error now appears after the main window loaded
    • Centered region labels
    • Disable Next/Previous Image buttons when delaying (Closes #183, Closes #130)
    • Updated some messages
    • Round down floats shown in UI
    • Win11 high DPI visual fixes
    • Fixed a few focus and tabstop issues
    • Adjusted some UI spacing
    • Automatically reference the right repo/fork from within the app
    • Prevent opening the same menu window multiple times at once
    • Added actions/menu bar shortcuts (Closes #154)
    • Added a warning if another instance of AutoSplit is detected to already be open (Closes #150)
    • Split dropdown for supported imread filetypes
    • Max fps will show ... while running
    • Reset image now indicates that its paused when starting a run
  • Hotkeys improvements:
    • Prevent setting invalid hotkeys, including from loading settings (Closes #155)
    • Added a hotkey and setting to disable the auto-reset image
    • Disable unused hotkeys when autocontrolled
    • Allow to move / set an existing hotkey
    • Support for hotkeys with modifiers
  • Fixed loading and clearing of start image from loading profile
  • Fixed "Comparison FPS Limit" not being respected
  • Add support for pause time after start image (Closes #182)
  • Adaptive resizing for masked images (read more here: #177, thanks @zalgo3, Closes #157)
  • Fix split below threshold when image is not valid. An invalid image has a similarity of 0, and triggered the "below threshold".
  • Properly fix region alignment Fixes Avasam#21
  • Better saved window detection on load
  • Don't reset pause timer on undo split (Closes #68)
  • Added Windows Graphics Capture API (thanks @Algomancer for IDirect3dDevice LearningModelDevice fallback), D3D Desktop Duplication and Capture Device (webcams and capture cards, including OBS virtual camera) as capture methods.
    Read https://github.com/Toufool/AutoSplit#capture-device for more details. (Closes #110, Closes #147, Closes #160, Closes #175, Closes #160)
  • Change default capture method to Windows Graphics API (#200)
  • AutoSplit can now recover the captured window if it is closed then re-opened (ie game crashed, or Save&Quit) (Closes #94)
  • Image comparison method and default delay time in the image filename.
  • Documentation updates:
    • Added summary of histogram in readme
    • Move build instructions to a different file
    • Update Virtualcam link for OBS 28+ https://github.com/Avasam/obs-virtual-cam
    • Add link to dev builds
    • Update some phrasing in capture method descriptions to be more accurate
    • Added Discord badge in readme
    • Updated documentation for image comparison
    • Updated redits
  • Update to Python 3.11 and PyQt 6.4.2
    • Performance improvements
    • Fixed a rare machine-specific issue where AutoSplit could crash when given options to load from the LiveSplit integration.
  • Build improvements:
    • Faster builds and boot times
    • Smaller file size
    • Generate a build number from datetime (Closes #149)
    • Some dev setup cleanup
    • Added tooling to help write cleaner code and catch potential bugs earlier
    • Special Thanks to @ AlexWaygood and the entire typeshed team who helped me get a lot of libraries' typing in order. Specifically d3dshot, keyboard, Pillow, psutil, PyAutoGUI, pyinstaller and pywin32. (we use more types-*, but they didn't need an update).
  • Tons of bugfixes, including some infinite error loops and hard crashes. (Closes #109, Closes #119)

v1.6.1

28 Nov 01:00
ad06af4
Compare
Choose a tag to compare

v1.6.0

27 Nov 19:24
43d5535
Compare
Choose a tag to compare

New Features and Feature Updates:

  • LiveSplit Integration is now available. This component allows you to:
    • Use Hotkeys directly from LiveSplit
    • When opening a LiveSplit Layout, AutoSplit and the chosen AutoSplit Settings open automatically.
  • A "Start Image" feature has been implemented. It is similar to the reset image, but is used to start AutoSplit.
  • Masked images (images with transparancy) are now automatically detected and no longer require the {m} flag.
  • Custom Thresholds and Custom Pause Times no longer require a checkbox to be detected and are automatically pulled from the filename.
    • The values in the UI have been changed to "default values".
    • These default values are set for an image when it appears in the "Current Split Image" window if they do not have custom values.
  • You can now use "Group dummy splits when undoing/skipping" even if some of your split images are looped.
  • AutoSplit will now check for updates upon opening and will prompt to update if you there is an update available.
    • You can check for updates manually under Help -> Check for Updates...
    • You can enable/disable auto-checking for updates Help -> Check for Updates on Open.

QOL updates:

  • Browse split folder button now opens the file selector from the parent of the currently selected folder (or parent of AutoSplit's directory).
  • Load Settings and Save Settings As now defaults to the AutoSplit.exe directory.
  • Added "settings.pkl" as the default settings filename when saving or loading settings.
  • Instead of displaying an error message, AutoSplit will just not allow you to select a window with 0 width or height.
  • "Image Loop #" below the Current Split Image now displays the "Current Loop Number / Total Loops" for that image.
  • Added a check to make sure the folder path is actually a folder.
  • Optimised UI buttons and labels placement and sizes + updated to PyQt6 UI.

Bug Fixes:

  • Fixed an issue where hotkeys using numpad number keys with Numlock on did not work.
  • Fixed an issue where Numlock-on keys were linked to linked to numlock-off keys when using them as hotkeys.
  • Fixed an issue where an image with full transparancy was causing an error that was getting swallowed that lead to being unable to reset.
  • Fixed an issue where using an empty Split Image Folder crashed AutoSplit.
  • Fixed an issue where the settings file in the same directory as AutoSplit.exe is not loaded upon opening AutoSplit if AutoSplit is launched from a location other than the AutoSplit.exe directory.
  • Fixed an issue where AutoSplit was freezing and becoming unresponsive in some instances when closing the program.
  • Fixed an issue where the screenshot resolution was incorrect if the user selected a window with values identical to current spin box values. (by Ontwikseltsaar)
  • Fixed an issue where loading settings that contained a window that was not open was not clearing out the capture region.
  • Fixed an issue with loading settings with incomplete hotkey configuration.
  • Fixed an issue with intermitant crashing when the captured window is closed while AutoSplit is running.
  • Fixed an issue using Select Window on some multi-monitor setups.
  • Fixed an issue where comparing to an image that no longer exists in the images folder crashed AutoSplit.
  • Fixed an issue where split images with a pause time of 0 were still entering the pause loop.
  • Fixed an issue with text scaling on High-DPI monitors.
  • Fixed an issue with Windows 11 high-DPI pixel rounding which was causing the capture and split image regions to be cut off at the top.

Special thanks to: @Ontwikseltsaar , @Avasam, @kadiwa4, and @Moliman for all of their help on this big release.

v1.5.2

12 Nov 02:44
b1b9beb
Compare
Choose a tag to compare

Bug Fixes:

  • "Take Screenshot" was creating an image with the wrong resolution in some instances. This has been fixed.
  • Max FPS performance is back to normal for any windows being captured that are not accelerated or not on Windows 11. The performance drop will still be present in accelerated windows or if you are on Windows 11, but as long as your window is not large, you should still be able to obtain a Max FPS of over 60.

v1.5.1

03 Nov 22:40
7e8e04e
Compare
Choose a tag to compare

Major Bug fixes:

  • Windows with Hardware Acceleration can now be captured thanks to @Avasam
    • With this fix, Windows 11 is now supported and windows like Streamlabs OBS can be captured!
    • Note that your settings may not perfectly transfer if you are transferring them from an older OS to Windows 11.

Minor Bug Fixes:

  • Fixed Issue #55
  • Fixed Issue #53