SweetScape 010 Editor Release Notes

What's new in SweetScape 010 Editor 13.0:

The following is an overview of the new functionality in version 13.0 of 010 Editor:

  • Added support for Project and Workspace files.
  • Tabs can be torn off to a new window and multiple Floating Tab Group windows can be created.
  • The Workspace now supports multi-select and drag and drop.
  • Processes now properly use process addresses within the editor.
  • Jump from a variable in the Template Results to the source code using 'Goto Definition' or 'Goto Type Definition'.
  • Added middle-click scroll mode. Middle-click and drag to scroll or middle-click once to enter scroll mode.
  • Merging after a comparison is now supported.
  • Set a custom starting address for a file using 'View > Addresses > Set Starting Address'.
  • Added 'Duplicate', 'Move Lines Up' and 'Move Lines Down' commands to the Format menu.
  • Added support for Motorola 68000 (m68k) disassembly.
  • Intel Hex and Motorola S-Record import now skips the blank area at the beginning of a file and sets a custom Starting Address.
  • Can now export, import or reset settings for the entire application using the General Options dialog.

The following is a list of all new features in version 13.0 of 010 Editor:

  • Projects and Workspaces
    • Added support for Projects, which can contain a list of files in a tree structure.
    • Can save the currently open files as a Workspace file which can be loaded later.
    • Projects can be created with or without an associated Workspace file.
    • Loading a project that has an associated Workspace file will close all files and load the files in the Workspace file.
    • Project files are saved to disk with extension ".1pj" and Workspace files are saved to disk with extension ".1wk".
    • Projects can be viewed in the 'Project' section of the Workspace tab or in the new Project tab.
    • Create projects using 'Project > New Project/Workspace' which displays the Project Options dialog.
    • In the Project Options, enable 'Store Workspace with Project' to create the project with an associated workspace.
    • Manage projects using the new 'Project' menu or by right-clicking on a project node in the Workspace tab or Project tab.
    • Open projects or workspaces using 'Project > Open Project/Workspace' or Ctrl+Shift+E.
    • To close projects use 'Project > Close Project' or mouse-over the top Project node and click the 'X' button.
    • Add files to a project using 'Project > Add to Project' or by right-clicking on a Project node and choosing 'Add to Project'.
    • Click 'Add to Project > Existing Files' to use a standard file dialog to add one or more files to the project.
    • Can also add 'Current File' or 'All Open Files' to the project using the Add to Project menu.
    • Use 'Add to Project > Existing Folder' to add a live folder to the project using a standard folder dialog box.
    • All files in the live folder are added to the project automatically.
    • A popup Folder Options dialog allows specifying a custom mask for the live folder and has a toggle for 'Include Subdirectories'.
    • Live folders are rescanned when a project is opened or can be rescanned with 'Project > Refresh Folders'.
    • Use 'Add to Project > New Folder' to create a project folder that does not exist on disk.
    • Other files or folders can be dragged inside a project folder, but not inside a live folder.
    • Project folders can be renamed by single-clicking or by right-clicking and selecting Rename.
    • Edit the options for a live folder by right-clicking on the folder and selecting 'Folder Options'.
    • Delete files from projects by right-clicking and selecting Remove from Project or by using the Delete key.
    • Use drag and drop to rearrange files or move files between folders.
    • Access the options for the project using 'Project > Project Options'.
    • Save the project using 'Project > Save Project' or 'Project > Save Project As'.
    • The project will be saved automatically when adding files if 'Auto-Save Project' is enabled in the Project Options.
    • Project and Workspace files are integrated with Windows Explorer, macOS Finder or Linux File Manager. Double-click or drag and drop onto 010 Editor to open.
    • Open or close projects in scripts using the ProjectOpen/ProjectClose functions.
    • Search across all files in a Project using Find in Files and selecting 'Current Project' as the search target.
    • Multi-select is supported when editing projects.
    • Save the current list of open files to disk using 'Project > Save Workspace'.
    • Opening a saved Workspace file will close all current files and open the files inside the Workspace file.
    • Projects may be saved to disk using absolute file paths or file paths relative to the project file (control with the Project Options dialog).
    • The application title bar shows [Project: ] when a project is loaded.
    • To view the full path for the current project, place the mouse over the top Project node.
    • Drag and drop from a project to the Open Files list or the editor to open files.
    • Open projects using -project on the command line.
    • The recent projects list can be sorted by access time or alphabetically.
    • The Workspace tab now shows 'Open Files: ' if using a project that has an associated workspace file.
    • Edit the source XML for a project by right-clicking on the project node and choosing 'Edit Project'.
    • If 010 Editor is closed when a project is active, the project is automatically reloaded when 010 Editor is restarted.
    • Turn off automatic reloading using the Opening Files Options dialog.
    • By default projects are saved in the 'Documents\SweetScape\010 Projects' directory.
  • Tabs
    • Tabs can now be torn off to a new window by dragging the tab up or down and releasing.
    • Multiple 'Floating Tab Group' windows can be created.
    • Use 'View > Floating Tab Groups' to show or hide the floating windows.
    • Better tab animation when dragging a tab to a different Tab Group.
    • Each Floating Tab Group window can have multiple Tab Groups laid out either horizontally or vertically.
    • Added new option 'Move to New Floating Tab Group' to the Tab right-click menu.
    • Added new option 'Move to Main Tab Group' to the Tab right-click menu for Tabs in a Floating Tab Group.
    • Each Floating Tab Group window now shows the name of the currently selected tab in its Title Bar.
    • All Floating Tab Groups are now hidden by pressing the Esc key.
    • Floating Tab Groups are no longer dockable with the main application.
    • Tab tear-off can be disabled in the Opening Files Options dialog.
    • Changed the background image for empty Tab Groups.
  • Workspace
    • Workspace now has 'Project' and 'Recent Projects' sections.
    • Multi-select is now supported with Shift and Ctrl (Cmd on macOS).
    • Drag and drop is supported between sections.
    • Drag from the workspace to the editor to open files.
    • Files can be added to the Favorites list using drag and drop.
    • Access options for the Workspace by right-clicking and selecting 'Workspace Options'.
    • Headers for the sections are now bold by default but can set to normal typeface using the Workspace Options.
    • Star icons are now shown for files in the Favorites list and this can be turned off using the Workspace Options.
    • The different sections of the Workspace can be hidden using the Workspace Options.
    • Controlling whether modified files in the Open Files list are shown as bold has been moved to the Workspace Options dialog.
    • The Workspace now shows 'Open Files: ' if using a project that has an associated workspace file.
  • Processes
    • Processes now properly use process addresses within the editor.
  • Set Starting Address
    • Set a custom starting address for a file using 'View > Addresses > Set Starting Address'.
    • The custom starting address is used in the Hex Editor, status bar, goto, find, etc.
    • 'OFFSET' label appears in the status bar when a Starting Address is set and click the label to change the address.
    • Can also set a custom starting address by right-clicking on the address column in the hex editor and selecting 'Addresses > Set Starting Address'.
    • Custom starting addresses are saved with the current workspace.
    • Starting addresses can be set on the command line using -startaddress.
    • In Scripts or Templates, the starting address can be set using the GetStartingAddress/SetStartingAddress functions.
  • Templates and Scripts
    • Can jump from a variable in the Template Results to the source code by right-clicking on the Template Results and choosing 'Goto Definition'.
    • Can also locate the struct or type definition for a variable by right-clicking on a Template Results variable and choosing 'Goto Type Definition'.
    • A popup dialog now warns when an array of structures is encountered that may cause issues when being optimized.
    • Use or for the array or click the 'Do not show this message again' toggle to disable the message.
    • Arrays created with are now collapsible in the Template Results like a normal array.
    • For backwards compatibility, the collapsible node can be turned off for all Templates using the Compiling Options dialog.
    • The collapsible node can also be turned off for individual Templates using the SetUnoptimizedArraysCollapsible function.
    • The active Script or Template chosen using a drop-down list will be remembered the next time 010 Editor is restarted or a workspace is loaded.
    • Turn off remembering the last Script or Template using the Opening Files Options dialog.
    • Formalized that all functions in Templates and Scripts use local coordinates where 0 is the first byte of the file and FileSize()-1 is the last byte.
    • Local coordinates are almost always the same as what is displayed in the editor except when editing a Process or a file with a custom Starting Address.
    • Use the AddressLocalToFile and AddressFileToLocal functions to transform between local coordinates and the displayed file coordinates.
    • Added SetFileCharSet function to change the character set of the current file.
    • Added IsCharPunct/IsCharPunctW functions to test if a character is punctuation.
    • Added EXPORT_PYTHONCODE constant to the ExportFile function.
    • Templates using 0x0D (Mac-style) linefeeds are now supported.
    • Can open or close projects in a script using the ProjectOpen/ProjectClose functions.
    • An error message is now shown when trying to call the MessageBox function inside a read/comment/name function.
  • Goto
    • Goto Line supports jumping to a column number using "line,column" or "linecolumn" (e.g. "5,3").
    • Goto Sector supports jumping to an offset number using "sector,offset" or "sectoroffset" (e.g. "0x100,5").
    • Using Goto when seeking upwards in a file now jumps to the middle of the display.
  • Compare
    • Merging after a comparison is now supported.
    • Icons above the Compare Results Table can be used to jump to the next difference or copy and paste a difference to File A or B.
    • Use keyboard shortcuts Ctrl+Up/Down/Left/Right to merge when the Compare Results Table is focused.
    • Editing the files after a Compare will update the Compare Results Table as edits are made.
    • After a Compare, clicking on a byte in either editor selects the corresponding row in the Compare Results Table.
    • Changed the algorithm for initial choices for File A and File B when the Compare dialog is opened. File A is usually the current file.
    • In the drop-down list of current files for File A and File B, the list is now sorted alphabetically.
    • When switching between different files, the scroll state of the Compare Results Table is saved.
    • Control the maximum number of rows in the Compare Results Table with the 'Max Output Rows' field.
    • Shortcut keys for the Compare Results Table can be customized using the Shortcuts page of the Options dialog.
    • After a comparison, the Compare results can be cleared by right-clicking on the editor and selecting 'Clear Compare Results'.
  • Editor
    • Added middle-click scroll mode. Middle-click and drag to scroll or middle-click once to enter scroll mode.
    • In the Editor, Ctrl+Left behaviour now matches other editors (always jumps to the beginning of words).
    • Added 'Duplicate' command to the Format menu to duplicate the selection, or the current line if no selection is active.
    • Added 'Move Lines Up' and 'Move Lines Down' command to the Format menu to rearrange lines in the editor.
    • Right-click on the left-most column to access the Addresses/Line Numbers menu.
    • Right-click on the ruler to access the ruler menu. In hex mode line layout options are shown as well.
    • Keys for the editor can now be customized using the Shortcut Options dialog box.
    • Editor shortcuts are now displayed in the 'Help > View Shortcut List' dialog.
  • Hex Editor
    • Removed colons after addresses by default (this can be turned back on in the Hex Editor Options dialog).
    • Added option to prevent the hex editor 'Char' column from automatically resizing when a wide character is encountered.
    • 'Char' column will automatically try to reduce size after expanding from wide characters.
    • Right-click on the address column and select 'Addresses > Set Starting Address' to set a custom starting address.
  • Disassembler
    • Added support for Motorola 68000 (m68k) disassembly.
    • Added to disassembler dialog plus flags for 68010, 68020, 68030, 68040 and 68060.
    • Can use in Template disasm with DISASM_M68K constant plus the flags DISASM_OPTION_M68K_010, DISASM_OPTION_M68K_020, etc.
  • Import/Export
    • Intel Hex and Motorola S-Record import now skips the blank area at the beginning of a file and sets a custom Starting Address.
    • This functionality can be turned off using the Importing Options dialog.
    • Added new export type 'Python Code'.
  • Find
    • New resize handles are shown in the Find Bars to resize the Find Bar sections.
    • After a Find All operation, right click on the Editor and select 'Clear Find Results' to clear coloring.
    • Fixed Find in Files can stop responding when scanning a large directory.
    • Fixed sometimes the selection would not be copied to the Find bar correctly when regular expressions were enabled.
  • Linux
    • Linux distribution is now provided as a .tar.gz archive with no installer.
    • Installation tasks such as creating icons and associations are performed the first time 010 Editor is run.
    • SHA256 hashes are available on the download website to verify archive integrity.
    • Can run '010editor -install' if the program is moved to update the installation paths.
    • Support wayland with '010editor -platform wayland' or 'export QT_QPA_PLATFORM=wayland'.
    • XCURSOR_SIZE environment variable can be used to adjust cursor size on some systems.
  • Portable Version
    • Portable version is now available as a .zip archive with no installer.
    • The EULA for 010 Editor must be accepted the first time 010 Editor is run.
    • SHA256 hashes are available on the download website to verify archive integrity.
  • General
    • Can now export, import or reset settings for the entire application using the General Options dialog.
    • For text files, renamed 'View > Addresses' to 'View > Line Numbers'.
    • Also renamed 'Show Addresses' to 'Show Line Numbers/Addresses'.
    • Reorganized the 'View' menu to put Line Numbers higher in the list.
    • Added 'Edit > Copy As > Copy as Python Code'.
    • Added 'Reset All Docking' option to the Window menu on the main menu.
    • Files restore their last selection when 010 Editor is restarted.
    • Can copy text from a message box.
    • 'Window > Window List' dialog now has buttons for Save and Close and supports multi-select.
    • When multiple files were deleted externally to 010 Editor, a new dialog shows all deleted files in one dialog instead of separate messages for each file.
    • When multiple files were modified externally to 010 Editor, a new dialog lists all modified files with options for Reload, Ignore, Always Reload or Always Ignore.
    • If Always Reload or Always Ignore is set for a file, an up/down arrow icon appears in the status bar. Click to manage reload settings.
    • When opening a file that is already loaded in the editor, a dialog gives the option to 'View' or 'Duplicate' the file.
    • The dialog has an 'Always use this option' toggle and can also be controlled using the Opening Files Options dialog.
    • When opening a file from the command line that does not exist, a dialog gives the option to create the file or ignore the request.
    • The default action can also be controlled with the Opening Files Options dialog.
    • Faster to close the application when a lot of files are loaded.
    • Links now use https instead of http whenever possible.
    • Allow 'Save All' to be clicked when the 'Startup' tab is active and files are opened.
    • Now using the user interface library Qt 5.15.2.
    • Added link to the Capstone license in the EULA.
    • Fixed missing tooltips for some icons.
  • Status Bar
    • The Status Bar now shows a clipboard icon instead of 'W'.
    • Copy the current cursor position to the clipboard by left-clicking on the position label and selecting 'Copy Position'.
    • Left click on the size label and choose 'Copy Size' to copy the current file size to the clipboard.
    • The 'OFFSET' label appears in the status bar when a custom Starting Address has been set. Click the label to manage.
    • An up/down arrow icon appears in the status bar when files in the editor are set to Always Reload or Always Ignore for file changes.
    • Click the up/down arrow to access the Manage Reloading Modified Files dialog, used to turn off Always Reload or Always Ignore.
  • Options
    • On the General page added 'Export' and 'Import' buttons to export or import all application settings to a .cfg file.
    • On the General page added a drop-down menu to the 'Reset' button that can be used to reset all pages or reset the entire application.
    • On the Hex Editor page added 'Show Colon After Addresses' toggle.
    • On the Hex Editor page added 'Automatically Resize Char Area for Wide Characters' toggle.
    • Added new 'Opening Files' page and moved the choice for the starting Edit As from the Editor Page to the new page.
    • Moved 'Remember Last Used Edit As', 'Remember Last Cursor Position', and Windows LNK options to the Opening Files page.
    • On the Opening Files page added 'Remember Last Selection' and 'Remember Last Project'.
    • Added 'Remember Last Script' and 'Remember Last Template' to remember the chosen Script or Template when a workspace is loaded.
    • Added a drop-down list to choose the default action when opening a file that is already loaded in the editor.
    • Added a drop-down list to choose the default action when opening a file from the command line that does not exist.
    • On the Opening Files page added drop-down lists to choose whether script and templates or regular files are loaded in the main interface or a Floating Tab Group.
    • Added drop-down to control whether Tabs are created at the end, start or before/after the current tab.
    • Added 'Allow Tab Tear-Off to New Window' toggle.
    • On Linux added 'Paste on Middle Click' option on the General page. If turned off then middle-click starts the middle-click scroll mode.
    • On the Shortcuts page Editor keys can now be customized using the 'Editor' section.
    • On the Shortcuts page the keys for the Compare Results Table can be customized in the Tools section.
    • Now a popup warning is displayed if a duplicate shortcut was found.
    • On the Toolbars page, when dragged a New File icon onto a Tool Bar, an icon is placed instead of text.
    • On the Importing page added a toggle for 'Automatically Set Starting Address for Intel Hex Files/Motorola Files'.
    • On the Theme/Colors page added color options for the middle-click scrolling icon.
    • On the Compiling page added 'Unoptimized Arrays are Collapsible' toggle.
    • On the Compiling page moved the option for controlling where Scripts and Templates are loaded to the Opening Files page.
    • On the File Dialogs page added 'Open Project' and 'Save Project' dialog options.
    • Added new 'Workspace' page with options to hide each section of the Workspace.
    • The Workspace page can be used to set bold states for headers and modified files, control favorite icons and set the sort order for recent lists.
  • Bugs
    • Fixed some processes on 64-bit machines were not being displayed properly.
    • Fixed a possible error popup using a Custom Inspector and disasm.
    • Fixed Find in Files can stop responding when scanning a large directory.
    • Fixed a crash switching an empty hex file into text mode.
    • Fixed possible crash using Find in Files and wildcards.
    • Fixed using 'parentof' inside of a custom size function.
    • Fixed during Find Next/Previous the numbering and wrap warning were not always consistently displayed.
    • Fixed Copy as Web Page (HTML) now properly transforms symbols such as > to >.
    • Fixed the '&' symbol in file names was not being displayed properly in the file tabs.
    • Fixed landscape printing not working properly in some cases.
    • Fixed pressing Left at the beginning of a file incorrectly jumped to the end of the first line.
    • Fixed a crash with a very long enum value.
    • Fixed the custom Inspector was not being executing while debugging.
    • Fixed the sizeof operator can now work on a struct that is bigger than the current file.
    • Fixed the Assert function was displaying text as html and changed to plain text.
    • Fixed the TextWriteLine function should clear a line when passed an empty string.
    • Fixed sometimes the selection would not be copied to the Find bar correctly when regular expressions were enabled.
    • Fixed the ExportFile function was not exporting HTML, RTF, or text areas properly.
    • Fixed using %D when printing sometimes was not printing dates correctly.
    • Fixed problem updating the repository when the local repository is read only on Linux.
    • Fixed a crash if updating the repository on Linux and the config directory cannot be written.
    • Fixed was missing a few possible actions in the shortcuts list.
    • Fixed in the Page Setup margin fields, sometimes commas were being displayed instead of periods.
    • Fixed -resetdocks command line option was not working properly.
    • Fixed importing bookmarks with spaces in their names.
    • Fixed documentation of Highlight functions to accept colors in 0xBBGGRR format.
    • Fixed Templates using 0x0D (Mac-style) linefeeds are now supported.
Go to Download Page and Program details: Download SweetScape 010 Editor