-
v1.21 Stable
released this
2026-03-28 17:38:22 +00:00 | 0 commits to main since this releaseVersion 1.20
New features
- Added xxHash32 integrity checksum: every compressed G3Z file now stores a 32-bit hash of the original uncompressed data, verified automatically on decompression
- Checksum is algorithm-agnostic: works identically for zlib and LZ4 compressed files
- Old G3Z files (versions 1.10--1.13) without a checksum are still decompressed normally (flag
0x00skips verification) - Named constants for algorithm byte codes (
ALGO_BYTE_ZLIB_MAX/FAST,ALGO_BYTE_LZ4_MAX/FAST) replacing bare character literals in the file format layer - Checksum value in the file information popup is now displayed in hexadecimal (e.g.
0xA3F2C1B0) consistent with how hash values are conventionally represented
Bug fixes
- Fixed use-after-free: partial
.g3zoutput is now correctly deleted before the path buffer is freed when compression is aborted - Fixed
jpopup_add_empty_line(): empty separator lines were allocated but never inserted into the list and never displayed - Fixed popup widget used before NULL guard:
jpopup_set_size()andjpopup_set_font()were called before the NULL check ininit_app() - Fixed missing
FileDataargument in the non-FXCG100 build path ofSquishIt_GetFileInformation()(crash / undefined behaviour on simulator) - Fixed buffer overflow in
getfileinformation():name_lenread from file was not clamped beforefread()into the 256-byteoriginalfilenamefield - Fixed
delete_file()returning the rawremove()value (-1 on failure) instead of a definedSQUISHIT_*error code - Fixed unchecked
fwrite()in LZ4 compression and decompression loops: write failures now propagate asSQUISHIT_WRITE_ERROR - Fixed unchecked
fwrite()when writing the filename into the G3Z header - Fixed LZ4 chunk size stored/read as platform-dependent
int; now explicitlyuint32_t(no format change on SH4 whereintis 32 bits, but correct by specification) - Fixed
strcpy()without bounds check onFileData->filename; replaced withstrncpy()
Code quality
- Refactored
event_handling()(~215 lines) into three focused static helpers:handle_compress(),handle_decompress(),handle_info_popup() - Removed stale TODO comment from
read_checksum()(error handling was already complete) - Removed dead commented-out
decompress_file_zlib()function - Added
statictoclamp()injprogressbar.cto avoid link-scope name pollution - Removed dead
l = NULLassignment afterfree(l)injpopup_poly_destroy() - Corrected misleading copy-paste header comment in
jpopup.h(was describing a progress bar) - Replaced unexplained commented-out
jwidget_emit()calls with an explanatory comment - Updated G3Z file format to version 1.20
Version 1.21
New features in 1.21
- Multi-language support (English / French): all user-facing strings are now fully translated; the active language is selectable from the Settings menu
- Persistent user settings: language, CPU overclock level and default compression algorithm are saved automatically to
SquishIt.inion the calculator storage and restored on the next launch - INI configuration file (
SquishIt.ini): plain-text format with[Key] valueentries and#comment lines; human-readable and hand-editable directly on a PC; a default file with full comments is provided and auto-created on first launch if absent - CPU overclock is now accessible from the Settings menu (SHIFT+MENU), allowing the user to select speeds F1 (default) through F5 without leaving the application
- Default compression algorithm is now remembered across sessions and pre-selected on startup
Code quality in 1.21
- Introduced
src/lang/subsystem:lang.h(string ID enum + API),lang_en.h,lang_fr.h(translation tables),lang.c(runtime dispatch); adding a new language requires only a newlang_XX.hfile - Introduced
src/core/ini_file.h/ini_file.c: self-contained INI parser and writer; all filesystem calls are wrapped ingint_world_switchfor safe OS-world access - Widget strings (
jpopuptitle,jjackintheboxmenuhint bar,jfileselectempty-folder and save-as labels) are now configurable at runtime via dedicated setters, enabling live language switching without rebuilding the widget tree
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
SquishIt.g3a
0 downloads ·
2026-03-28 17:38:19 +00:00 · 239 KiB
-
v1.13 Stable
released this
2026-01-04 20:08:10 +00:00 | 12 commits to main since this releaseVersion 1.13
- Corrected a bug in the calculation of compression ratio of G3Z file (visible in File Info Popup)
- Improvement of texts within the program
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
SquishIt.g3a
0 downloads ·
2026-01-04 20:26:06 +00:00 · 218 KiB
-
v1.12 Stable
released this
2025-12-28 19:45:47 +00:00 | 15 commits to main since this releaseVersion 1.12
- Added an Abort Key to stop current compression/decompression operation (mapped to BACK key)
- Added an estimator of the operation duration (Compression & Decompression)
- Corrected some hidden bugs when Information popup window was opened
- Remove temporary files created before user abort
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
SquishIt.g3a
1 download ·
2025-12-28 19:47:55 +00:00 · 218 KiB
-
v1.11 Stable
released this
2025-12-24 12:44:00 +00:00 | 25 commits to main since this releaseAdded inforrmation on files (G3As and G3Zs)
Added information on available space on user storage
Added verification of enough available space before compression and decompression
Some minor changes/bugs corrections to improve the programDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
SquishIt.g3a
1 download ·
2025-12-24 12:43:58 +00:00 · 217 KiB
-
Source code (ZIP)
-
v1.10 Stable
released this
2025-11-23 14:39:26 +00:00 | 37 commits to main since this releaseVersion 1.10 with the following additions :
- Check for hardware - only works on fxCG100 / Graph Math+ (fxCG-120/20/50 not supported because of crash of OS when writting G3As)
- Support 2 compression formats (LZ4 + Zlib)
- Compression level : Best Compression / Fast Compression
- Adjustement of the internal buffer to get better balance compression/memory consumption with LZ4 compression algorithm (no effect on Zlib)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Squishit.g3a
5 downloads ·
2025-12-07 19:27:46 +00:00 · 214 KiB
-
v1.00 Stable
released this
2025-11-16 10:02:24 +00:00 | 47 commits to main since this releaseV1.00 of
Squish It !!Compression / decompression of G3A addin with Zlib 1.2.5.
Make sure to have the latest version of mpm.bin on your machine.Run only on fxCG-100 or Graph Math+.
Not compatible with Prizm machines and fxCG-50 / Graph 90+E.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
SquishIt.g3a
2 downloads ·
2025-11-16 09:58:59 +00:00 · 148 KiB
-
Source code (ZIP)