More actions
Ultrahand Overlay | |
---|---|
General | |
Author | ppkantorski |
Type | Overlays |
Version | 1.7.1 |
License | Mixed |
Last Updated | 2024/08/28 |
Links | |
Download | |
Website | |
Source | |
Ultrahand Overlay is a C++ program designed to provide a user-friendly main menu overlay for performing various file operations on different platforms, including the Nintendo Switch.
Inspired by the new Zelda feature, Ultrahand lets you unleash your creativity and shape your digital experiences like never before. It uses the Tesla library to create an interactive menu interface and allows you to perform actions such as creating directories, copying files, renaming files, moving directories, deleting files, and parsing INI files.
Please note that running homebrew software on your Nintendo Switch may void your warranty and can carry certain risks. Ensure that you understand the implications and follow the appropriate guidelines and precautions when using homebrew software.
Features
Ultrahand Overlay currently offers the following features:
- Create Directories:
- Effortlessly create directories on your SD card by specifying the directory path. Ultrahand will handle the creation process for you.
- Copy Files or Directories:
- Easily copy files or directories from one location to another on your SD card. Just provide the source and destination paths, and Ultrahand will seamlessly handle the copying process.
- Delete Files or Directories:
- Simplify file and directory deletion on your SD card. By specifying the path of the file or directory you want to delete, Ultrahand promptly removes it, making the deletion process hassle-free.
- Move Files or Directories:
- Seamlessly move files or directories between locations on your SD card. Provide the source path and the destination directory path, and Ultrahand takes care of the moving process, ensuring smooth relocation.
- Download Files:
- Download files to your SD card with ease. Efficiently retrieve files from repositories or URLs to your desired location. Whether you need to download/update homebrew or transfer files between locations, this feature simplifies the process, making repository management a breeze.
- Unzip Files:
- Extract compressed zip files on your SD card by unzipping archived files, preserving their original structure. Whether you have downloaded zip archives or received compressed files, this command simplifies the process of extracting them, making it effortless to access the contents within.
- Modify INI Files:
- Edit INI files on your SD card with ease. Take full control over your configurations by updating existing key-value pairs, adding new entries, or creating new sections within the INI file using Ultrahand.
- Hex Edit Files:
- Perform hexadecimal editing of files on your SD card. Edit the binary data directly, allowing for precise control over your data. Ultrahand's Hex Edit Files feature enables you to analyze, modify, and customize files in their raw form.
- Convert Mods:
- Convert
pchtxt
mods intoips
orcheats
format.
- Convert
- System Commands:
- There are a variety of system commands that users can utilize. These include functions to shutdown, reboot, reboot directly into Hekate entries/modes, manipulate the screen's backlight, and turn off all bluetooth controllers.
- Run Commmands On Boot:
- Users can also utilize their own
/switch/.packages/boot_package.ini
file (with a command sectionboot
) to run a series of commands once upon device boot-up.
- Users can also utilize their own
Installation
Your Nintendo Switch must have the necessary homebrew environment set up, running HOS (Horizon Operating System) version 16.0.0 or above.
- Make sure you have nx-ovlloader installed.
- Download the latest Ultrahand ovlmenu.ovl and place it within "/switch/.overlays/".
- Warning: This will overwrite Tesla Menu if already installed.
- After installing Ultrahand Overlay, a new folder named "ultrahand" will be created within the root config folder on your SD card (/config/ultrahand/) along with a
config.ini
file containing various Ultrahand settings. - Launch Ultrahand similarly to Tesla Menu with your specified hotkey. A new folder will be made ("/switch/.packages/") with a preset
package.ini
file for your base menu commands. - Place your custom "package.ini" package file in your Ultrahand package directory ("/switch/.packages/<PACKAGE_NAME>/"). This file will contains the commands for your custom Ultrahand package.
- Your commands will now show up on the packages menu within Ultrahand.
See Ultrahand Packages for a comprehensive list of known packages.
For additional assistance with custom packages, feel free to checkout the Ultrahand Overlay Wiki.
Controls
A - Execute any command
Minus - View/execute the individual command lines written in the ini for execution
Plus (main menu) - Enter the settings menu
X - Click on top of an overlay/package to star them
Y - Click top of an overlay/package to configure additional settings
Screenshots
Compatibility
HOS 16.0.0+.
Changelog
1.7.1
- Expanded
System
page to include various device related information.- This table currently includes device firmware, bootloader version, hardware type, memory information, and storage information.
- Special thanks to ComplexNarrative.
- New command placeholder variables
{ram_vendor}
,{ram_model}
,{ams_version}
, and{hos_version}
. - Expansion of
refresh
command to includewallpaper
for the ability to reloadwallpaper.rgba
,- Called
refresh wallpaper
.
- Called
- Improved scrolling implementation. (proper time-synced speed interpolation)
- Complete recalibration of character width map.
- This should result in more proper table alignments when using tables with info sections aligned to the right.
- Multiple memory related bug fixes.
- More memory leaks have been fixed, which should result in less heap overloads / crashes.
- Language replacements are now performed on every ListItem and CategoryHeader upon initialization.
- This fixed entries like, for example,
Reboot To
andShutdown
from not being properly translated. - Language json's may still need some translations for the new words that have been included.
- This fixed entries like, for example,
- Removal of
shutdown controllers
for space conservation. (commented out)- Did not want to remove this function, but because it only works with Nintendo controllers (and not Mission Control) it does seem somewhat redundant since the
sync button
on Nintendo controllers effectively turns off the controller as well. - If it is highly desirable, I may include this command again in future revisions. But for size stability, I could not get it to fit properly this time around.
- Did not want to remove this function, but because it only works with Nintendo controllers (and not Mission Control) it does seem somewhat redundant since the
- Numerous code optimizations and bug fixes.
- Placeholder bug fix for new variables + bug fix for
refresh
command. - 08/28/2024 4:40 PM PST - TrackBar highlight width adjustment / fix. - 08/29/2024 5:05 AM PST
- Rename hardware model
Nx
toIcosa
andx1
toX1
. (correction) - 08/29/2024 5:28 AM PST
1.7.0
- New memory expansion option (located inSettings > System).
- This function requires internet the first time it is ran, otherwise you can place nx-ovlloader.zip and nx-ovlloader+.zip in sdmc:/config/ultrahand/expansion/. (see here for the .zips)
- nx-ovlloader.zip (base memory) and nx-ovlloader+.zip (expanded memory) are recompilations of WerWolv's nx-ovlloader 1.0.6/1.0.7.
- Notice: This feature will utilize an extra 2 MB of system memory for overlays and will require a reboot after being toggled for changes to apply.
- New wallpapers implementation. (requires memory expansion)
- Wallpapers must be formatted in .rgba and be exactly 448x720 pixels in resolution.
- Place .rgba formatted wallpapers into sdmc:/config/ultrahand/wallpapers/, then they will show up in the Wallpaper Manager in the Settings Menu.
- Sidenote: For full 60 FPS in Ultrahand with wallpapers, overclock CPU >=1581.0 MHz.
- Numerous optimizations to the libTesla renderer.
- Multi-thread rendering (requires expanded memory).
- Reduced big-O complexity.
- Sidenote: With stock clocks and no wallpaper, users should expect to now get ~60 FPS in menu.
- Various improvements to tables, track-bars and the track-bar highlight/select cursor.
- Time-synced controller scrolling implementation, time-synced click saturation effect, and a variety of corrections within libTesla.
- Mod .pchtxt's now utilize @stop properly when generating IPS mods. (helpful for developers)
- New Polish language implementation and slight bug fixes to the languages menu.
- Various bug fixes.
- Fix for missing pre-generated root package. (was missing in v1.6.9)
- Downloads bug fix. (was broken fi missing path sdmc:/config/ultrahand/downloads/ in v1.6.9)
- Compilation libraries have been updated (excluding devkitA64 which has been left at r25.1-1).
1.6.9
- Dropdown and forwarder commands can now use custom labels/footers by using
footer=
with a value other thannull
in the package'sconfig.ini
. - Custom name and version labels for overlays and packages can now be set in
/config/ultrahand/overlays.ini
and/config/ultrahand/packages.ini
by using optionscustom_name=
andcustom_version=
.- Overlays will only be renamed when displayed on the menu. Direct modification of the overlay is still required for any re-naming of the overlay modules themselves.
- Packages will now assume names in the following priorities.
i. Priority 0: Custom names and versions written in packages.ini
.
ii. Priority 1: Package name stated in the header in the package.ini
file for the Ultrahand package.
iii. Priority 2: If none of the above, it will assume the name based upon the Ultrahand package folder.
- If left empty, custom name and version parameters will be unused.
- New option for table
;header_indent=
for drawing a single header indent on left side of the line.- This is meant to be used on one line "header-like" tables.
- New table text color options for
info_text_color
andsection_text_color
.text
: Ultrahand theme text color used for default text.header
: Ultrahand theme text color used for headers.on_value
: Ultrahand theme color forOn
values / values.off_value
: Ultrahand theme color forOff
values / version labels.
- Key combo string representations in packages will now return their symbolic representation.
- Software update menu will now pull an indicator for the latest Ultrahand Overlay version from the GitHub API.
- Themes
classic.ini
andultra.ini
will now be auto-downloaded when opening the Theme manager if they do not exist. - Downloads are now stored in a temporary state until completion. After completion, they are then moved into place.
- This should help with failed downloads and files being removed/replaced after a failed download to an existing filepath.
- The packages menu commands section now utilizes the same core logic as the packages themselves. (code optimization)
- Improvements to
Reboot To
pre-generated command in root package. (/switch/.packages/package.ini
)- If you are missing this feature, you may need to delete
/switch/.packages/package.ini
.
- If you are missing this feature, you may need to delete
- Various subtle UI positioning corrections and bug fixes.
- Bug fix for cursor jumping/sliding after using hotkeys (with a d-pad down button) in games.
1.6.8
- Introduction of
ini_file_source
function and expansion ofini_file
function.- Dropdown selections can now use
ini_file_source <PATH_TO_INI>
which will return a list of ini section name. - Introduction of new placeholder index replacements selections
{ini_file(<INDEX>)}
/{ini_file_source(*)}
for returning section names. (regular usage ofini_file
placeholder calls will still function the same way, as well asini_file_source
)
- Dropdown selections can now use
- Named step-trackbars can now use standard
json_source
,json_file_source
, andini_file_source
source functions and placeholder replacements. - Expansion of
filter
to non-path type entries in dropdown selections.- Called
filter <NAME_OF_ENTRY>
.
- Called
- Expansion of
exit
command to exit directly to the overlays menu or packages menu.- Called
exit overlays
/exit packages
.
- Called
- Expansion of
refresh
command.refresh theme
: reload/refresh the current current loaded theme (/config/ultrahand/theme.ini
)refresh package
: reload/refresh the current working package (redraws menu)
- Introduction of
compare
function to compare two text file lists and output a duplicate files list.- Called
compare <PATH_TO_TXT_1> <PATH_TO_TXT_2> <OUTPUT_TXT_PATH>
.
- Called
- New option
-copy_filter
/-cp_filter
formove
/mv
commands utilizing-src
+-dest
.- Called
move -src <SRC_TXT> -dest <DEST_TXT> -copy_filter <FILTER_TXT>
. - This will run a copy instead of move for files in the filter list text file.
- Called
- Introduction of new placeholder function
split
for splitting strings.- Called
{split(<STRING>,<PATTERN>,<INDEX>)}
. - For example, if the string is
Test - String
, the pattern is" - "
, and the index is0
, the output would beTest
.
- Called
- Updates to the pre-generated
/switch/.packages/package.ini
root package file to includeReboot To
(for booting directly into/bootloader/hekate_ipl.ini
boot entries.- Notice: Users may need to delete
/switch/.packages/package.ini
for it to generate a new one.
- Notice: Users may need to delete
- Various optimizations to the command interpreter, file manipulation logging, bulk execution implementations, and to
move
/mv
operations. - Additional tweaks to the dangerous pattern detection function.
- Update to Mod Alchemist now at v0.4.7.
- Bug fixes for toggling content mods with duplicate files (utilizing
-copy_filter
andcompare
).
- Bug fixes for toggling content mods with duplicate files (utilizing
Update:
- Filter bug fix. (affected
Reboot To
) - 07/22/2024 2:53 PM PST - Addition of
-filter <FILTER_TXT>
command option formove
,copy
, anddelete
. - 07/22/2024 8:35 PM PST- This allows for filtering of bulk executions (
-src
/-dest
).
- This allows for filtering of bulk executions (
1.6.7
New optional command parameters for
copy
/cp
,move
/mv
, anddelete
/del
commands for transfer logging and bulk executions.a. File manipulation logging:
-log_src
/-log_dest
(outputs a text list for source file and destination file locations)copy <source_file_path> <destination_file_path> -log_src <src_output_txt_file_path> -log_dest <dest_output_txt_file_path>
move <source_file_path> <destination_file_path> -log_src <src_output_txt_file_path> -log_dest <dest_output_txt_file_path>
delete <source_file_path> -log_src <src_output_txt_file_path>
b. Bulk execution:
-src
/-dest
(utilizes text lists to perform transfer operations on all entries)copy -src <src_input_txt_file_path> -dest <dest_input_txt_file_path>
move -src <src_input_txt_file_path> -dest <dest_input_txt_file_path>
delete -src <src_input_txt_file_path>
Improvements and fixes to
file_source
toggle functions.Improved handling of
null
placeholder replacements.Corrections to
isDangerousCombination
(the dangerous pattern combination detection function).- The following paths are now ultra-protected (unable to delete or move files from):
sdmc:/Nintendo/Contents/
sdmc:/Nintendo/save/
sdmc:/emuMMC/RAW1/Nintendo/Contents/
sdmc:/emuMMC/RAW1/Nintendo/save/
- Slight improvements to dangerous pattern detection.
- The following paths are now ultra-protected (unable to delete or move files from):
Updates to Mod Alchemist (now v0.4.6, requires Ultrahand v1.6.7+).
- Now utilizes the new command options for managing "Contents" mods.
1.6.6
- Major memory leak has been fixed.
- This issue was present for a while now, but until
Mod Alchemist
was never as concerning. SinceMod Alchemist
can draw extremely long menus, memory overflow problems became more apparent. - Has been resolved and should result in better memory handling across all Ultrahand packages/commands.
- This issue was present for a while now, but until
- Slight tweaks to the displayed version label formatting for overlays and packages.
- Failed interpreter spawning bug fix.
- Commands would occasionally get locked in an "in-progress" mode when there were memory related problems when trying to spawn the interpreter thread. When memory related problems occur, the command will return a failed command state instead (red "X").
1.6.5
- Introduction of root-layer boot package implementation for executing commands upon startup.
- Command
[boot]
located within/switch/.packages/boot_package.ini
(if it exists) will be now be auto-ran once on startup. - This feature can be useful for Switch Android users if they wanted to remove the auto-generated Android folders (for instance).
- Command
- Introduction of new command
pchtxt2cheat
(calledpchtxt2cheat /path/to/file.pchtxt
).- This function will convert
pchtxt
files and load them into the correct directory for the game's cheat. - Important: The game's title ID must be present somewhere within the pchtxt for this function to work.
- This function will convert
- Various bug fixes to
pchtxt2ips
's IPS generation. - Expansion of
shutdown
command to turn off all bluetooth controllers.- This function is called
shutdown controllers
. - Notice: I have heard that this command may fail (return a red X) with
MissionControl
due to conflicting services, so just a heads up.
- This function is called
- Source function
file_source
can now be chained (called one after another) for combining multiple sources into a single list. - Source function definitions can now also utilize an
ini_file
placeholder replacement (with theini_file
specified before the definition). - Various bug fixes to
file_source
toggles.- Subsequent clicks to
file_source
toggles are now handled properly with alternating path replacements according to the last linemove {file_source} /destination/path/
(must be present forfile_source
toggles).
- Subsequent clicks to
- Various bug fixes to
ini_file
placeholder replacements.- Failed replacements now return
null
again instead ofNot available
(theUNAVAILABLE_SELECTION
language variable). - When a value is
null
on a table info section, it is now auto replaced withUNAVAILABLE_SELECTION
.
- Failed replacements now return
- Language selections in the
Settings Menu
now state their full names in their translated language with their abbreviations listed as footers.- This included updates to all
/config/ultrahand/lang/
files.
- This included updates to all
- Additional key combo
LS+RS
has been added to the combos list.- This includes a correction to the
LS
button icon.
- This includes a correction to the
- Commands
mirror_copy
andmirror_delete
can now accept wildcard patterns. - Introduction of new Ultrahand Package
Mod Alchemist
designed for managing, converting, and installing game mods. (formerly theMod Master
example package)- Notice: This package requires Ultrahand Overlay v1.6.5+.
Update:
- Bug fix for the root-layer boot package implementation. - 07/07/2024 7:09 AM PST
- The issue was the commands appeared to be executing every time the overlay is spawned. Now it is fully isolated to run once on boot.
- Wildcard pattern bug fix. - 07/07/2024 9:00 PM PST
- The issue was that in certain cases, folder patterns were still returning files. Should be resolved now.
- Slight optimizations to transfer memory. - 07/07/2024 9:34 PM PST
- Freed up a little more memory to prevent some potential memory related bugs.
- Json replacement failure fall back value bug fix. - 07/08/2024 1:10 AM PST
- This includes fall back
null
related bug fixes as well as fixes to table drawing withnull
values.
- This includes fall back
- Transfer memory correction. - 07/09/2024 05:07 AM PST
- Issues noticed after freeing up a bit too much of the transfer memory, so corrections needed to be made.
- IPS generation bug fix. - 07/09/2024 06:16 AM PST
- Offsets were improperly being applied during
pchtxt2ips
generation. Corrections have been made.
- Offsets were improperly being applied during
1.6.4
- Optimizations to the
;on_every_tick=
implementation for track-bars.- Faster on every tick command execution.
- New table option additions
;section_text_color=
and;info_text_color=
.- Both section and info text color are optional parameters that can be set to:
default
(normallydefault
when unspecified)warning
(new built-in theme colorwarning_text_color
)- or any specified RGB888 hex color string
- Both section and info text color are optional parameters that can be set to:
- Forwarder package versions and title colors are now inherited from the layer 0 package (package.ini) if left unspecified within the forwarder package.
- Users no longer need to specify forwarder package versions and colors on every forwarder package ini.
- Bottom buttons and settings menu touch functions now utilize theme colors
click_color
andclick_alpha
for drawing highlights on the touch regions. - Various touch interaction bug fixes. (touching "OK" on top of a track-bar, bottom regions for touch adjusted to language text size, etc.)
- Slight tweaks to pixel blender for drawn strings during hiding.
1.6.3
List of changes:
IMPORTANT: Tables in v1.6.3 no longer utilize
;header=
pattern and no longer draw headers. Tables also no longer require a$
in the command name.- To define a header, use an empty package command (like how they are defined normally).
Introduction of 3 track-bar command mode implementations.
i. Regular track-bar is called utilizing;mode=trackbar
.;min_value=
sets the minimum integer value;max_value=
sets the maximum integer value;units=
sets the display units;unlocked=
is an optional true/false parameter for unlocked track-bars (locked by default)- At least one track-bar must first be clicked (A) for all track-bars to be editable (unless unlocked).
;on_every_tick=
is an optional true/false parameter for executing listed commands on every track-bar tick (off by default)- By default, commands are executed the moment the interactions with the slider stop.
ii. Step track-bar is called utilizing
;mode=step_trackbar
.;steps=
is an optional integer parameter for directly specifying the number of steps utilized with the step track-bar.
iii. Named step track-bar is called utilizing
;mode=named_step_trackbar
.- Requires a
list_source
definition or alist_file_source
definition (for loading the names). - Does not use
;min_value=
,;max_value=
,;units=
, nor;steps=
.
All track-bars commands can be used with placeholders
{value}
for returning the value and{index}
for returning the index. Both value and index are also stored within the package config.ini file according to the track-bar entry.Introduction of 5 new placeholder commands.
i.{slice(<ANY_STRING>,<START_INDEX>,<END_INDEX>)}
slices any string according to a start and end index.
ii.{decimal_to_hex(<DECIMAL>)}
converts a decimal string into a hex string.
iii.{ascii_to_hex(<ASCII>)}
converts an ascii string into a hex string.
iv.{hex_to_rhex(<HEX>)}
inverts the endian of a hex string.
v.{hex_to_decimal(<HEX>)}
converts a hex string into a decimal string.Bug fix: All variable placeholders no longer require a specified order for operations.
Optimized input handling for smoother / faster menu item traversal.
New theme colors and updates to theme
ultra.ini
.
i.header_text_color
is the text color for category headers.
ii.header_separator_color
is the separator rectangle color for category headers.
iii.star_color
is the color of the favorites star when unselected.
iv.selection_star_color
is the color of the favorites star when selected.
v.bottom_button_color
is the color of the buttons displayed at the bottom of the window.
vi.bottom_separator_color
is the color of the separator drawn near the bottom of the window.
vii.bottom_text_color
is the color of the text drawn at the bottom of the window next to the buttons.
viii.trackbar_slider_color
is the color of the trackbar slider.
ix.trackbar_slider_malleable_color
is the color of the trackbar slider when it is in a modifiable mode (unlocked / press A).
x.trackbar_slider_border_color
is the color of the thin border around the slider.
xi.trackbar_full_color
is the color of the trackbar for the filled portion.
x.trackbar_empty_color
is the color of the trackbar for the empty portion.
xi.default_package_color
is the default color for package titles (used if none is specified in the package header).IMPORTANT: All colors with word
seperator
are now spelt correctlyseparator
. (grammer typo fix)Expansion of
backlight
command.- In addition to
on
andoff
, backlight can now take an integer percentage value for precise backlight modifications. backlight <PERCENTAGE>
- In addition to
Bug fix for
refresh
command.refresh
should now behave on the level / page it is called upon.
Improved touch scrolling implementation. (cursor no longer is redrawn as touch scrolling is initiated)
Updated
libnx
fromv4.6.0
tov4.7.0
.Page left / right traversal now works with joysticks in addition to the d-pad.
Various bug fixes and command optimizations.
Update:
- Alignment correction for track-bar sliders and up / down bounce effect for track-bar cursors. (06/14/24 3:45 AM PST)
- Named step-bar tick indicator color and position correction. (06/14/24 3:53 AM PST)
1.6.2
List of changes:
- New methods
list_file
andlist_file_source
for reading lines from a text file.- They are defined
list_file <path_to_text_file>
/list_file_source <path_to_text_file>
. - Their behavior is similar to a regular list with placeholders
{list_file(<index>)}
and{list_file_source(<index>)}
.
- They are defined
- Bug fixes for nested package dropdown selections.
- Opaque screenshots will now be turned on by default upon initialization.
- To disable, enter the
Miscellaneous
menu and click the toggle item.
- To disable, enter the
- Bug fixes for Tesla combo persistence.
- Addition of a couple more default Tesla combos as well as fixes for reading alternate user specified combos.
- Settings menu code revision. (for smaller compilation)
- Various
libtesla
alignment corrections.
Update:
- Widget alignment correction. (05/26/2024 2:44 AM PST)
- Couple additional key combos (added by request). (05/26/2024 3:32 AM PST)
- Slight footer alignment correction. (05/26/2024 5:08 AM PST)
1.6.1
- New command mode
;mode=slot
for slot commands.slot
commands are similar todefault
, but with the ability to set footers (similar to anoption
command).
- Various placeholder replacement bug fixes.
- Preservation of
null
arg with default toNot available
upon final replacement. - Placeholder replacements now no longer contribute to command success/failure. (determined now solely by commands themselves.)
{file_name}
replacements no longer include file extensions.
- Preservation of
- Hex edits will now be unprocessed for
null
arguments and still return successful. (bug fix) - New placeholder
{timestamp(<strftime>)}
for logging time as a variable.strftime
are datetime formats like"%Y-%m-%d"
.
- Nested layers bug fix (for nested layers beyond layer 1).
- Package forwarder bug fixes.
- Slight tweaks to libtesla.
1.6.0
- More improvements to UI and libtesla.
- Rending related bug fixes and optimizations.
- Pixel blender bug fix (for transparency layer blending).
- Improvements to string/character length computations.
- Slightly improved cursor and menu layout.
- New themes values
selection_bg_alpha
andtable_bg_alpha
for blended transparency.- Updates to
default
+ultra
themes.
- Updates to
- New effect option
Opaque Screenshots
(located in Settings > UI Settings > Miscellaneous) for removing overlay transparency from screenshots for Ultrahand. - Slight improvements to the
unzip
command method. (boundary case bug fixes)
1.5.9
- More improvements and optimizations to the tables implementation.
- New option
;background=
which is atrue
/false
value for drawing the table background. - New configurable theme color
table_bg_color
for configuring table background colors.
- New option
- More refinements and optimizations to libTesla.
- Slightly faster rendering + cleanup of various implementations.
- Update to
default
and ultra themes. - Bug fix for Ultrahand starting opened after shutting down within an overlay. (only present in v1.5.8)
- Bug fix for nested package pages.
1.5.8
- Numerous across the board optimizations and bug fixes. (Significant memory/speed improvements from v1.5.7.)
- Improved code structure and memory consumption.
- Optimized menu item sorting. (for drawing the
overlays
/packages
menu) - Improved themes loading implementation.
- New hiding overlay implementation. (animations + widget throttling correction)
set-ini-value
now will create folders if necessary when initializing new ini's.- Bug fixes for
move
anddelete
commands. - CURL global initialization. (fix for random crashes using download function)
- Bug fixes for default key combo initialization. (for fresh setups)
- New table implementation for drawing information.
- Table commands must start with
$
in the command name and include;mode=table
. - Additional options for configuring tables:
;header=
is atrue
/false
option for drawing the section header with the table.;alignment=
is a string valueleft
,right
, orcenter
for controlling the value column alignment. (default value isright
).;offset=
is an integer value for configuring the values column offset with aleft
/center
alignment. (default value is160
);spacing=
is an integer value for configuring the newline spacings for drawing the table. (default value is0
);gap=
is an integer value for configuring the post-table gap. (default value is3
)
- Placeholders are fully functional for drawing tables with parsed values. (json, hex, list, etc.)
- New theme color options
table_section_text_color
andtable_info_text_color
.
- Table commands must start with
- New unzip + copy progress indicator.
- Progress animation. (see
Settings > UI Settings > Miscellaneous > Effects > Progress Animation
) - Various subtle UI improvements and corrections.
1.5.7
- List of changes:
- New function remove-ini-key for removing key/value pairs from a specified INI section.
- remove-ini-key <path_to_ini> <desired_section> <desired_key>
- Unzip / copy progress indicator for background commands in progress. (similar to the download progress indicator)
- WARNING: cp / copy now behaves more like the Shell / Bash version of cp, where it copies contents from the specified directory directly to the specified directory. it no longer forces a copy of the folder, requiring a potential rename.
- Buffer s and heap memory are now configurable from /config/ultrahand/config.ini. (see new package Memory Config)
- This was added for additional configurations during testing.
- When properly set, functions may gain a speed improvement. But configure with caution.
- Across the board optimizations and code revisions for faster functions with reduced memory.
- Numerous revisions and improvements to libultra.
- Various minor bug fixes.
- New function remove-ini-key for removing key/value pairs from a specified INI section.
- Update:
- Copy folder related bug fix. (05/10/2024 6:51 AM PST)
- hex-by-custom-rdecimal-offset bug fix. (05/10/2024 4:59 PM PST)
- More slight optimizations + bug fixes with hexing. (05/10/2024 11:14 PM PST)
1.5.6
- List of changes:
- Package path shortcuts implementation, called ./ for package path within command ini's.
- i.e. /switch/.packages/<NAME_OF_PACKAGE>/ can now be called as ./
- When fully utilized, this allows users to rename Ultrahand packages without any path conflicting.
- Basic toggles called without sourcing can now take a default state.
- ;mode=toggle?on for defaulting to on when never clicked
- ;mode=toggle?off for defaulting to off when never clicked (current default functionality for ;mode=toggle)
- backlight command now requires a on / off state. (bug fix)
- Here is a simple way to use can the backlight function as a toggle.
- [Backlight]
- ;mode=toggle?on
- on:
- backlight on
- off:
- backlight off
- Numerous optimizations for a variety of the *_funcs.hpp methods. (faster menu drawing and commands)
- New scroll bar implementation has been corrected.
- Returning from a hidden overlay now takes you back to the hidden overlay menu.
- Reduced memory imprint of ovlmenu.ovl.
- Creation of libultra (restructuring of project into a custom library).
- This allows users to potentially build their own Ultrahand Overlays when utilized with my libtesla fork.
- To use, users simply need to copy the libs folder into their project, then import and use libtesla as they would normally.
- Package path shortcuts implementation, called ./ for package path within command ini's.
- Update:
- Hidden package / overlay settings bug fix + setIniFile bug fix. (05/07/2024 5:49 AM PST)
- If you did use v1.5.6 before this update, you might want to run this command once (just to be safe).
- [Clear INIs]
- delete /config/ultrahand/packages.ini
- delete /config/ultrahand/overlays.ini
- delete /config/ultrahand/theme.ini
- delete /config/ultrahand/config.ini
- delete /config/.packages/config.ini
- delete /switch/.packages/*/config.ini
- Path shortcut fix for json_file_source + fix for commands grouped together with a package forwarder. (05/07/2024 4:04 PM PST)
- Wildcard pattern bug fix + move files/folders bug fix. (05/07/2024 8:55 PM PST)
- This may have affected this line from executing properly delete /switch/.packages/*/config.ini. You may still want to run this command once if you used v1.5.6 earlier than the first update.
- More last minute wildcard pattern bug fixes. 😅 (05/07/2024 11:19 PM PST)
- Hidden package / overlay settings bug fix + setIniFile bug fix. (05/07/2024 5:49 AM PST)
1.5.5
- List of changes:
- Implementation of new package forwarders for extended Ultrahand packages.
- To use forwarders, use command mode ;mode=forwarder with * in the command name.
- Forwarder package is defined with package_source <PATH_TO_FORWARDED_INI>.
- Additional commands listed along side package_source are executed upon click.
- UI related bug fixes and tweaks.
- Scroll bar implementation has been modified.
- Page alignment has been slightly adjusted.
- Adjustments to spacing of info sections.
- Touch implementation has been cleaned up a bit more.
- Fix for unmapped toggle commands (and others).
- Various minor menu traversing related bug fixes.
- Implementation of new package forwarders for extended Ultrahand packages.
- Update:
- Nested package implementation bug fix. (05/05/2024)
1.5.4
- List of changes:
- Better memory management and utilization of smart pointers. (potential memory leaks resolved hopefully)
- Interpreter thread now is initialized when command is ran.
- Root package commands now accept dropdown commands (similar to the current package command implementation).
- Removal of last_menu setting from /config/ultrahand/config.ini. (no longer needed)
- Setting key combo from the Settings Menu now also updates /config/tesla/config.ini. (for persistence reasons with libTesla overlays)
- Menu traversing related bug fixes.
- Various bug fixes.
1.5.3
- List of changes:
- Removal of <sys/stat.h>/<cstdio> and implementation of <fstream> in every function.
- More improvements to make every function to make them thread safe (json, hex, ini, etc.)
- Slight restructuring of various sections of code.
- Reduction of compilation size.
- Various bug fixes and improvements.
1.5.2
- List of changes:
- Numerous menu related memory leak bug fixes.
- Revision to the background thread implementation.
- Various improvements to download, json, ini, and path functions.
- Bug fixes for refresh function as well as exec boot.
1.5.1
- List of changes:
- Full touch support is now included.
- You can now touch the logo/widget section to enter the settings menu.
- Multi-threading implementation for the interpreter.
- Package commands (except boot_package for now) now operate on a background thread, allowing users to hide the overlay during long tasks. This includes background downloads.
- Introduction of new theme coloring variables. (mostly for commands in progress)
- New ;system= command headers, called ;system=erista or ;system=mariko.
- These headers will only draw commands onto the menu depending upon what system they are being displayed on.
- New file path grouping types (will be better documented later with the revision of Mod Master, now planned for v1.5.2).
- Pressing L jumps back to the first item on the menu.
- Various bug fixes in download_funcs as well as libTesla.
- Full touch support is now included.
- Update:
- Download progress implementation.
- Pressing R cancels / kills a command in progress.
- Many bug fixes.
- New command exit for exiting Ultrahand directly.
- Interpreter optimizations and stability bug fixes. (final update 04/25/2024)
1.5.0
- Introduction of new pchtxt2ips method, called pchtxt2ips <PCHTXT_FILE_PATH> <OUTPUT_FOLDER>.
- This allows the easy conversion of .pchtxt files into .ips binaries.
- Download commands now show a downloading indicator (footer) to help users understand when a file is downloading.
- Failed replacements now return null instead of -1. Failed json replacements now return Not available (UNAVAILABLE_SELECTION variable).
- Bug fix for starring / favoriting hidden overlays and packages.
- libnx has been updated.
1.4.9
- List of changes:
- Numerous refinements to the UI and libTesla.
- (cleanup alignments, rounded corner cursor, corrections to footer draw locations, listItem size, etc.)
- Expansion of the configurable themes.
- New variables for customizing background color, various text colors, logo color, and dynamic logo color.
- New themes light.ini and light-v2.ini (light mode themes) as well as updates for the rest.
- Introduction of DEFAULT_CHAR_WIDTH variable within the language json for more precise mapping of character width in alternate languages.
- Numerous refinements to the UI and libTesla.
- Update:
- Slight default logo color tweak.
1.4.8
- List of changes:
- Improved toggles implementation.
- Toggles no longer require a source and use the pre-generated config.ini for storing state information.
- Sidenote: Dropdown selection toggles still may require revisions to their implementation some time down the line.
- Failed variable replacements now return a value.
- Currently set to -1 for failed replacements, but may be revised to something more unique in the next update.
- Various bug fixes as well as code optimizations.
- This included a footer bug fix (was present in v1.4.6 but missing from v1.4.7).
- More memory related optimizations across a variety of functions.
- Updates to OC Toolkit (now at v0.3.6).
- Sys-clk Settings are now configurable from the Tools menu.
- Improved toggles implementation.
- Update:
- Another bug fix for option command selection footers. - 11/25/23 10:06 PM PST
- libTesla bug fixes (widget drawing related fixes). - 11/26/23 7:00 AM PST
1.4.7
- Numerous code optimizations and revisions across the board for all methods.
- These ranged from bug fixes to stricter/cleaner memory management within functions.
- Especially helpful for downloading command failure related bugs.
- New commands:
- backlight toggles on/off the screen
- hex-by-custom-decimal-offset, hex-by-custom-rdecimal-offset (similar to hex-by-custom-offset but accepts decimal representations of hex for replacement.
- mariko:, erista: define code blocks that will execute based upon if the device is mariko or erista.
- Update:
- Bug fix for mariko: and erista: calls.
- More memory related optimizations. - 11/19/23 6:21 AM PST
- Default Tesla combo bug fix. - 11/20/23 2:40 PM PST
- Overlay sorting bug fix for overlays with _ within overlayNames. - 11/20/23 8:08 PM PST
- Last minute memory related optimizations. - 11/21/23 3:40 AM PST
- Rewrite of Studious Pancake's functions for IsErista and IsMariko. (bug fix) - 11/21/23 5:02 PM PST
- Bug fix for Not available commands in alternate languages. - 11/22/23 6:47 AM PST
- More libTesla optimizations. (faster menu). - 11/22/23 6:47 AM PST
- New clear command clear hex_sum_cache for clearing the hexSumCache. - 11/22/23 7:22 AM PST
1.4.6
- Addition of a toggle-able User Guide (drawn by default on the Packages Menu).
- Reboot directly to Hekate menu now implemented within the reboot command.
- Called reboot hekate or reboot HEKATE (similar to reboot ums).
- Initialization / auto-generation of /config/tesla/config.ini for legacy compatibility.
- This is primarily for preserving hide/show hot keys within overlays.
- You are not required to ever touch nor modify /config/tesla/config.ini.
- Modifications within Ultrahand will automatically carry over.
- Default Tesla launch combo (L+DDOWN+RS) now works upon first run in addition to Ultrahand's default launch combo (ZL+ZR+DDOWN).
- The combo that is clicked first will be the combo that Ultrahand assumes.
- Combo can then be updated from the Settings Menu.
- Version Labels is now a subcategory within Miscellaneous in addition to Menu Items.
- Users can show/hide the User Guide from within Miscellaneous.
- Various bug fixes and implementation modifications.
- Update:
- Slight indentation cleanups.
1.4.5
- New function try: for executing blocks/lines of code with error catching.
- Commands in the chain are still executed normally without try:.
- Subsequent try: statements blocks will be executed in order until success is reached throughout an entire block.
- (See updated examples Easy Installer and OC Toolkit.)
- New highlight color added to themes for "clicking".
- This color will only be applied when the selection background is set to not be drawn.
- When selection background is disabled, clicking backgrounds will also be disabled.
- If any of the lines within the command that involve sourcing, hexing, downloading, or unzipping fail, it will return a red cross symbol instead of a checkmark.
- Various bug fixes.
1.4.4
- Theme manager is now built into the Settings Menu (PLUS / +).
- Themes will have their own custom name and be placed within /config/ultrahand/themes/<THEME>.ini.
- Themes have been expanded to include variables selection_text_color, selection_bg_color, disable_selection_bg and disable_colorful_logo.
- disable_selection_bg is set to true by default. This significantly improves the speed of rendering the UI, resulting in a smoother experience moving around (especially noticeable in the Script Overlay).
- Addition of several extra Key Combo button combinations on the Settings Menu. (ZL+ZR+PLUS, L+R+PLUS, PLUS+MINUS)
- Numerous libTesla bug fixes and optimizations.
- These ranged from improper cropping of certain menu items to correcting draw locations.
- Additional improvements to text scrolling.
- Half float data-type implementations.
- Update: 11/6/23 2:13 AM PST
- Bug fixes for download functions, json_source functions, and Package Info drawing.
- Updates, fixes and expansions to OC Toolkit (now v0.2.9).
1.4.3
- Key combo initialization bug fix (primarily for people not coming from Tesla Menu).
- This bug made an initialized /config/ultrahand/config.ini file not write hotkeys to the ini without Tesla config files.
- Default key combo is now ZL+ZR+DDOWN if no key combo is found and will be auto generated with the config.ini.
- ListItem scrolling is now time synchronized in libTesla.
- When you under clock your device and see a long command name, this is especially noticeable.
- Previous behavior would scroll the text from left to right very slowly when clock speeds go down, then faster when they speed up.
- With time synchronized animation, behavior is standardized, creating an overall smoother experience on the menu. (better resource management)
- Various (minor) fixes and improvements.
- Update: 11/02/2023 10:49 PM PST
- Credits are now an addition in Ultrahand packages, called ;credits= (similar to ;about=).
- Slight cleanup of scrolling implementation.
- smoothing effect has been added to scrolling (for cleaner animation)
- Toggles for "On" and "Off" for Ultrahand Packages now use the active language.
- Credits are now an addition in Ultrahand packages, called ;credits= (similar to ;about=).
1.4.2
- Built with latest libnx for official HOS 17.0.0 support.
- Temperatures are now working on HOS 17.0.0.
- Addition of UI Settings menu. (within Settings Menu PLUS/+).
- Widget for clock, temperature, and battery is now easily toggleable.
- Version Labels has been moved into it's own subgroup.
- Software Update is now its own subgroup with overlay info for Ultrahand as well as language update options.
- Ultrahand Overlay information is now displayed in the Software Update section.
- JSON placeholder replacement functions have been rewritten/improved.
- Various bug fixes and improvements.
1.4.1
- Ini parsing and formatting related bug fixes.
- This fixes issues like the first key in your keyCombo not working in libTesla.
- Also improves formatting structure when adding in entries into ini files.
- Expanded themes and UI improvements.
- Themes (/config/ultrahand/theme.ini) now have options trackbar_color, highlight_color_1, highlight_color_2.
- The /config/ultrahand/config.ini also lets you control visibility of clock, temperatures, and battery.
- libTesla dynamic color effects are now synced to time instead of being driven by clock-speed. You will notice that even when under-clocking the color effects are always full speed.
- RebootToPayload functions via Studious Pancake (AMS 1.6.0+).
- The reboot command has now been expanded with payload / Hekate functionality. This was done in preparation for HOS 17.0.0.
- reboot ini <ENTRY_NAME> or reboot ini <ENTRY_INDEX>
- reboot boot <ENTRY_NAME> or reboot boot <ENTRY_INDEX>
- reboot /path/to/payload.bin
- reboot UMS
- reboot
- sidenote: Reboot by id is coming soon. All of these functions have been coded to work on both Mariko and Erista.
- The reboot command has now been expanded with payload / Hekate functionality. This was done in preparation for HOS 17.0.0.
- Software updates for Ultrahand can now be performed from the Settings menu (PLUS / +).
- Launch arguments for overlays are now passable from /config/ultrahand/overlays.ini.
- You can press Y on an overlay to enter the Overlay settings menu, then enable/disable launch arguments.
- Launch arguments must be set by hand within /config/ultrahand/overlays.ini otherwise are initialized empty.
- Temperature now include both SOC and PCB temperature, but 17.0.0 implementation for temperature is currently still pending on libnx. (soon).
- Backend for implementation has been written and is currently commented out.
- Various updates to languages files (still a WIP).
1.4.0
- Improvements to UI (battery, configurable clock, sensor, drawspace, etc.)
- International languages implementation.
- Language files go in /config/ultrahand/lang/*.json
- NOTE: Help is still needed to get some of these translations down. Language files are subjected to updates, but feel free to modify them yourself for your language.
- Expanded settings menu.
- key combo is now configurable from the Settings menu (PLUS)
- Start of themes implementation (text_color, clock_color, battery_color).
- Themes are stored in /config/ultrahand/theme.ini.
- Improved overlay sorting. (done by Overlay name instead of Overlay file name).
- Multiple bug fixes.
- Faster command interpreter. (update 10/20/23 9:23 PM PST)
- After inspection, this actually resulted a in ~0.4MB file size reduction.
- Sidenote: HOS 17.0.0 messed up temperature readings with libnx. This should be easily fixed once libnx is updated for 17.0.0.
1.3.9
- Star-ing overlays is now done by pressing X instead of PLUS.
- Pressing PLUS on main menu now invokes the Ultrahand Settings menu (a page to control some settings in the config.ini).
- Pressing Y on top of an overlay / package pulls up the Menu settings for that particular item.
- New hidden overlays/packages page for storing hidden overlays/packages (will be drawn at the bottom when populated).
- New option clean_version_labels in /config/ultrahand/config.ini (can be set on Ultrahand Settings menu).
- Clean versions restricts all displayed version labels into a X.X.X format.
- Various bug fixes.
1.3.8
- Introduction of Pages: Now, you can define pages using empty commands [@PAGE1] and [@PAGE2], where PAGE1 and PAGE2 are labels for the page. Note that only two of these empty @-commands can be referenced in a package. You can navigate between PAGE1 and PAGE2 using the left and right buttons on the DPAD.
- New Command remove-ini-section: I've added a new command called remove-ini-section <ini_file_path> <section_name>. This command allows you to quickly remove a section from an INI file.
- Package Info Section: You can now include a Package Info section within your package.ini file by using [Package Info] as an empty command. If there's no reference to [Package Info], the package info section will not be displayed.
- Package title colors now accept custom RGB888 hex representations (i.e. #FFFFFF for white).
- NOTE: RGB888 hex color format will be downscaled to RGB444 for libTesla compatibility.
- Bug Fixes: Addressed various bug fixes, including a memory leak issue on the main menu.
- New updates to OC Toolkit.
1.3.7
- Hex offset caching has been implemented for faster hexing read/write calls.
- Various additional improvements to hex functions.
- New true/false property hide for packages.ini and overlays.ini to toggle visiblity.
- New command logging to enable/disable command logging (now off by default).
- New command clear for deleting Ultrahand relavent files (so far only clear log works).
- New ;color= header definition in package.ini for choosing colors for your package title.
- Colors: red, green(default), blue, yellow, orange, purple, pink, white, ultra(wip)
1.3.6
- Added the ability to define functions in boot_package.ini other than boot.
- Enabled referencing and execution of global functions defined in boot_package.ini from your script using exec <COMMAND>.
- Introduced a new refresh command to redraw the current menu page.
- Various bug fixes as well as improvements to OC Toolkit.
- Menu related bug fix (memory leak). Opening and closing selection overlay with dictionaries was not unloading the dictionary. Issue has been resolved.
- If a command has the footer "Not available" it will no longer function.
1.3.5
- Introduction of boot_package.ini (commands that will run when your package is opened). This file is placed in the same folder as your package.ini file.
- Introduction of new hex_file advanced function for reading/parsing hex data from files.
- Introduction of command tags, i.e. [COMMAND?Tag]. Tags are not printed, but are helpful for making similar named commands unique (which is essential).
- New example package OC Toolkit for advanced modifications of kip files. (WIP)
- Update:
- Ive added a new function ini_file to read data from ini files.
- ini_file <ini_file_path> is how it is defined.
- {ini_file(section, key)} is how it will be called.
1.3.4
- List of changes:
- Empty commands now define grouping sections.
- Empty commands with a * at the start of them define group commands. Commands defined after will show up in a dropdown menu.
- To end the identification of a group command, a group section must be defined.
- New command set-footer.
- Various bug fixes.
- Basic example:
[Section 1] [*Test] ;mode=option list_source '(test1, test2, test3)' set-footer {list_source(*)} [*Timings] ;mode=option list_source '(1, 2, 3, 4, 5, 6)' set-footer {list_source(*)} [*Commands Group] [*Test2] json_source '[{"key_1":"entry 1", "key_2":"entry 2", "key_3":"entry 3"}, {"key_1":"entry a", "key_2":"entry b", "key_3":"entry c"}]' key_1 [Section 1] [*Test3] ;mode=option list_source '(test4, test5, test6)' set-footer {list_source(*)}
- update:
- Bug fix for selected footer after entering command groups. - 10/3/2023 4:48 PM
1.3.3
- List of changes:
- Fixed dropdown toggles. (Setup double click prevention to ensure commands are properly parsed.)
- New option command mode for selections. (useful for developing configurators scripts.)
- New auto-generated config.ini for each package.ini within the package folder. Settings will be parsed from package.ini if provided as a comment.
- mode: this can be set to default, option, or toggle.
- grouping: this can be set to default or split (split splits commands into groups based upon subfolders)
- footer: null by default. When used with option mode, it can be dynamically read on the menu.
- DONE is now replaced by a checkmark.
- Basic Option Example:
- Package: /switch/.packages/Test/package.ini
1.3.2
- Bug fixes with interpreter allocating too much memory.
- This affected unzip and download in certain test cases, but is no longer an issue.
- Easy Installer and other download packages should now work properly again.
- UPDATE: (stable)
- Root menu commands (/switch/.packages/package.ini) now behave the same way as package menu commands.
- Config menu has now been fixed. (09/26/23 11:21 PM)
- Multiple menu related bug fixes. (09/27/23 2:25 AM)
1.3.1
- json_data (the non source version) is now json_file.
- json is now a new non-source version of json_source for storing data within the package.ini.
- list_source has been fixed. Items defined in list can be called by {list_source(<INDEX>)}.
- list is now a new non-source version of list_source. Items defined in list can be called by {list(<INDEX>)}.
- Re-built interpreter and SelectionMenu/SubMenu.
- Introduction of selection modes ;mode=.
- Drop of _on and _off functions.
- Sections can be defined using ;mode=toggle and on: followed by the on commands and off: followed by the off commands.
1.3.0
- config.ini is now package.ini for Ultrahand packages.
- source is now file_source
- source_on is now file_source_on
- source_off is now file_source_off
- json_source is now json_file_source
- New function json_source for defining JSONs directly within the package.ini file.
- Example: json_source '[{"key1":"value1"}, {"key1":"value2"}]' key1
- Menu item sorting are now implemented differently.
- New files /config/ultrahand/overlays.ini and /config/ultrahand/packages.ini for manually specifying priority and storing information.
- Priority value is a number from 0 to 9999
1.2.1
- hide_overlay_versions and hide_package_versions are now true or false options within /config/ultrahand/config.ini.
- hex-by-custom-offset is now a new command for using custom string pattern offsets for more advanced hex-editing scenarios.
- New wildcard source command type list_source implementation for specifying list variables within package inis.
- Several bug fixes.
1.2.0
- Commands now state "DONE" after pressed.
- Bug fix for "set-ini-value". Issue was that for a new entry, it would inject the new entry into every section.
- Simple fix, but since its bound to affect someone's project eventually, I'm updating the release.
1.1.9
- Bug Fixes: Static menu variable and rootFrame handling.
- These bug fixes potentially resolve the menu handling issue that occasionally can occur for some testers.
- Overall it should be more stable with static implementations of the particular variables I modified.
1.1.8
- Introduction of footers for commands.
- Testing potential bug fix for handling menu input.
- This issue is not very common, but occasionally the menu can get locked into a weird orientation, preventing you from moving to packages or overlays at times. Its hard to figure out the exact trigger, but I've attempted to address the issue here. Pre-release will be dropped after more testing. If you see this bug on this version, do let me know in issues.
1.1.7
- Download and unzip files implementation has been added.
- Command to download:
- download <FILE_URL> <DESTINATION_FILE_OR_FOLDER>
- Command to unzip:
- unzip <SOURCE_FILE> <DESTINATION_FOLDER>
- CURL has made it a bit beefier as you can tell, but the potential benefits are pretty great for having these commands handy. Lots of new packages can be made for updating and installing software.
- update: slight bug fix for handling more URLs (07/07/2023)
- update: bug fix for unzip and createDirectories (07/08/2023)
1.1.6
- Move commands now create directory if the directory does not exist.
- Bug fix for exiting main menu that can sometimes occur when exiting (locked users in the menu until an item is selected).
- Multiple filters are now implemented. filter, filter_on, filter_off calls will store your filter path into a list.
1.1.5
- Bug fix for those who specify their default menu mode instead of resorting to last_menu.
- Several cosmetic improvements.
- Easier transition from Tesla Menu by copying combo from sdmc:/config/tesla/config.ini if it exists and the combo is not within sdmc:/config/ultrahand/config.ini.
- update: more cosmetic improvements after initial release (only difference)
1.1.4
- Ultrahand is now a replacement for ovlmenu.ovl.
- Ultrahand packages are now relocated to sdmc:/switch/.packages/.
- Ultrahand specific settings are now stored in sdmc:/config/ultrahand/config.ini.
- Left on the menu takes you to your overlays.
- Right on the menu takes you to your packages and commands.
- More improvements to come.
1.1.3
- Introduction of more selection command features.
- Multi-wildcard statements.
- New functions 'mirror_copy' and 'mirror_delete' for implementing mirror functions on directory contents.
- All copy functions now create destination directories.
1.1.2
- Selection (wild card commands) toggles are now implemented.
- Simple one line filter added. (see updated examples).
1.1.1
- Introduction of wildcard commands (new command-type).
1.10.0
- Pre-release: Testing new hex editing functions.
- New commands "hex-by-offset", "hex-by-swap", "hex-by-decimal", "hex-by-rdecimal"
- Still needs more testing to confirm full functionality, but since it appears to be compiling properly ill leave it here for now for testing.
1.0.9
- Implemented safeguards so you don't delete or move your entire SD card or essential files. Still have more features to implement for this version, it should be better than using 1.0.8 but since I made changes that need review I am still calling it pre-release for now.
- Update: More advanced pattern searching. Multiple wildcards. 2:42 AM PST 06/08/2023
- Update: Updated safeguards for more advanced patterns. 3:16 AM PST 06/08/2023
1.0.8
- Added new feature "new-ini-entry" and restored original example config.ini generated if no config is present.
v1.0.7
- Improvements to menu. Version handling for user packages.
v1.6
- More improvements, "edit-ini" commands have now been labeled "set-ini". You can also press X on an individual command and see and execute individual lines within.
- Update: Faster copying. - 05/31/23 4:19PM PST
- Update: Even faster copying. - 05/31/23 4:35PM PST
- Update: Slight size reduction. - 06/01/23 6:34PM PST
v1.0.5
- Too many bug fixes with statement logic.
- Ability to execute individual commands from a package have been added (press X on package).
- More slight tweaks and capabilities packed into the functions.
- Update: Fixed editINI adding new lines by mistake. - 05/29/23 05:16 PM PST
- Update: Fixed copy directory not copying subdirectories. - 05/29/23 05:59 PM PST
- Update: Edit ini key or value now. - 05/29/23 09:40 PM PST
v1.0.4
- Slight tweaks to libtesla. This is pre-release, but it is still commits ahead of 1.0.3 and stable.
- Update: Got new features as well as pattern searching implemented. New documentation coming soon. 05/29/23 9:11 AM PST
v1.0.3
- Improvements to code structure, menu layout, new commands (reset, shutdown), etc.
- Update: Copy function now can rename to file as well as copy to directory. This makes it simulate "cp" a bit better. - 05/27/23 7:37 AM PST
- Update: Fixed edit-ini bugs. - 05/27/23 2:21 PM PST
- Update: Fixed even more edit-ini bugs. Should be working. - 05/27/23 3:27 PM PST
- Update: Fixed one last edit-ini bug for handling command. Testing safer reboot method. - 05/27/23 9:40 PM PST
v1.0.2
- Folders have now been added.
- Future plans: cleaner UI, separation for "Packages" and "Commands" sections with titles.
- Update: Fixed a bug that occurred with linking folders. - 05/28/23 05:59 PM
v1.0.1
- New feature 'parse-ini'.
- Update: Delete directory bug fix. - 05/28/23 8:11 AM PST
v1.0
- First Release.
- Update: Improved structure and examples for testing. - 05/25/23 5:52 PM PST