Releases: Tamk1s/Thwimp
v1.2.0.1 Bugfix Release
Minor bugfix revision of v1.2 that fixes various application-breaking and display formatting bugs related to foreign cultures.
- v1.2.0.1: v1.2 bugfix revision (06/20/21)
-
Bugfixes
-
Fixed various lingering cultural issues that would cause the application to break when processing THP videos and to display wrongly formatted data on foreign machines (outside en-US culture). Enforced invariant culture for bugfixes for issue #11, issue #16
- Fixed issues with FPS textbox in THP Info group box not displaying culture invariant single string format, further breaking program when processing THP videos on foreign machines
- Fixed issues with video start/end frame single strings for THP Viewer/Ripper cropper not using invariant culture for FFMPEG/FFPlay cmdline calls
- Fixed issues with FFMPEG calls not using the FPS string value with invariant culture formatting while THP encoding
- Fixed issues with the progress bar/application logger not using invariant culture format for the progress bar percentage string values
- Fixed issue with enforcing invariant culture date formatting for the pre-generated file name when saving the Thwimp application log file
-
Added more string parsing input validation
- THP Viewer
- THP Ripper
- Parsing changes
- Start/end video frame cropping information (handle parsing as UShort)
- FPS value (handle as Single)
-
Fixed a code typo of parsing the video frame end value string as a Single datatype instead of a proper UShort datatype
- Handled after changing the multiplicity Numeric Up/Down box in the video cropper (THP Viewer/Ripper section)
-
Added a newLine to the end of the Application name/version string in the application logger after booting up application (Main_Load() function)
-
-
Enhancements
- Versioning and application branding
- Updated application build and manual versions to v.1.2.0.1
- Updated application and GNU license copyright dates to ©2021
- Updated include Elevator Music song.wav file, MP3 file
- Application logger saving
- Added MsgBox display and logging of successful saving of application logger file to the log
- Versioning and application branding
-
v1.2 Release
Accumulation of all changes since v1.1, from the pre-release v1.2 beta builds:
Full change log
- v1.2: 2nd revision, bugfixes, enhancements, CLI support (08/01/20)
-
Bugfixes
-
Issue #5: Irfanview path bug/Issue, Issue #6: JPG Quality Bug
-
Fixed serious, application-breaking bug where pointing to a real i_view32.exe executable would cause the THP Encoder process to convert the ripped BMP frames from the final generated video to Progressive JPG files
-
This bug also fixes Issue #6 (same bug)
-
THPConv cannot handle Progressive JPG markers (SOF2 header of $FFC2), so this bug would cause THP conversion to fail
-
Bug cause
- Pointing to a symlink of i_view32.exe does not read i_view32.ini option files when calling Irfanview command-line commands, and thus ignores JPEG Save Progressive option
- Pointing to a real i_view32.exe install directory does read i_view32.ini option file, and thus may apply JPEG Save Progressive option (and break THP conversion)
-
Bugfix method (HackINIFile() function))
- Read i_view32.ini file (located at exe path)
- Locate the options i_view32.ini pointed to from within (usually located at %APPDATA%\Irfanview)
- Copy that options i_view32.ini file to the THP Encoding working directory
- Hack that INI file with changes
- Save Progressive=0 (false)
- Save Quality=[User-defined JPEG Quality setting]
- Run BMP -> JPG converion via Irfanview commandline during THP Encoding, using hacked INI file options and /JPGQ setting, in order to ensure no Progressive JPG output and proper JPG Quality setting
-
Issue #7: THP encoding optimization
- Issue related to encoding THPs that require dummy/padding frames
- Issue would cause the conversion of each multiplicities' dummy frame (dummy_N.bmp) into a dummy multiplicity video (dummy_N.mp4) to be poor, with their framecounts exceeding their intended value
- Issue would snowball further along the THP encoding process, and cause the final video to be much larger in framecount than expected
- This would, in turn, slow down the process of ripping BMP frames and converting to JPG frames for the actual THP encoding
- Application deletes all JPG files above the framecount limit ("Frame Trunc" * number_of_multiplicities), so many CPU cycles would be wasted without the bugfix
- Bug fixed with a better FFMPEG cmdline call, which properly converts the dummy BMP frames into a correct length dummy video
-
Fixed bug with THP Encoder "Trunc Frame" field not updating always when changing the selected THP video (THP combo box)
-
Made application start in Options Tab
-
-
Issue #11: Error parsing string into Single
- Fixed meat of TryParseErr_Single() function
- Made parsing of strings into Single be culture-invariant (EN-US culture)
- Fixes issue where FPS value from the data fileset wouldn't be read properly in other cultures (such as EN-GB)
- Single values must be defined as "ww.dd"
- w = whole value
- d=decimal values
- Fixed meat of TryParseErr_Single() function
-
Issue #12: KeepInRange parsing bugs
- Fixed issue where, in the THP Viewer/Ripper section, "Error Parsing String into [T]" errors will throw under the following conditions
- If a MaskedTextBox is focused on
- If MaskedTextBox cleared to empty (a bunch of underscores "_")
- If the user focuses elsewhere
- Fixed by less over-zealous error-trapping, to prevent false positives
- Fixed issue where, in the THP Viewer/Ripper section, "Error Parsing String into [T]" errors will throw under the following conditions
-
Issue #13: Path Separator Char
- Split the constants used for "\" (backslash path separator char) and "/" (FFMPEG cropping char) into 2 separate constants
- Refactored code to use proper const refs
- Allows for easier porting of code to other platforms
- MacOS
- Linux
- Wrt handling the proper path separtor char
-
Issue #14: Lingering File I/O from StreamReaders/Writers
- Added proper closing of StreamReaders/Writers, regardless of whether successful usage or failure due to Try-Catch errors
- This properly
- Closes file I/O handles on files, in case of error and application is then quit
- Unlocks them for everyday user file operations afterwards
-
Added an additional dummy entry as 0th entry in default MKWii data files
-
-
Enhancements
-
Issue #9: Thwimp CLI
- Implemented command-line interface into Thwimp!
- Redirected all stdoutput from the application's console into the calling Command Prompt
-
Issue #8: THP Viewer/Ripper enhancements
- Modified the THP Viewer playback so that it
- Applies the Crop Settings (both physical and time) to the playback
- Now properly trims any audio streams for playback of applicable THP videos!
- This is done via ripping audio and video streams separately (temporary MP4 files with only one stream type), trimming both, and remerging both back into a final temp mp4 video file
- Playback final temp mp4 video file with the trimming applied
- Temporary files generated in FFPlay WorkDir (new Options directory setting)
- Modified THP Ripper so that it now properly trims any ripped audio streams for applicable THP videos!
- Modified the THP Viewer playback so that it
-
New Options
-
Fileset Data
- New "FileSet.txt" file
- Informational file which lists this fileset's
- Game
- Desc
- Author
- Version
- Creation date
- Data is displayed in new fields within Options tab
- Informational file which lists this fileset's
- Updated stock MKWii Fileset with the new FileSet.txt file
- New "FileSet.txt" file
-
Paths
- FFPlay WorkDir
- Working Directory for FFPlay temporary files
- Used when viewing/ripping THP files with both Audio and Video streams, when cropping time
- Directory used must have read/write access!
- DataFile Dir
- Directory to use containing data files to use for Thwimp (e.g. customization to use for other games)
- FFPlay WorkDir
-
Option flags (in Options tab)
- "Audio" checkbox
- Toggles audio
- "Elevator Music" checkbox
- Toggle THP Encoder elevator music
- "Less MsgBox" checkbox
- Supresses most informational MsgBoxes during THP Encoding processes
- Prevents interruption for this long process
- "Full Logs" checkbox
- Logs everything (including stdout from Process cmdline calls)
- Settings INI file
- Buttons to save/load a Thwimp INI settings file
- Allows for saving/loading of settings
- "Audio" checkbox
-
Help/Resources
- Added new section with various buttons to launch URLs in default browser with Thwimp resources
- Buttons
- Webpage
- About
- Application about box
- MKWiiki Article
- Manual (Github)
- Latest Release
- Cmdline
- Details valid command-line options for application (for CLI mode)
-
-
Added audio to application
- Custom error sfx (SMB1 Mario death)
- Custom success sfx (SMB1 flagpole)
- Elevator Music
- Looping song bgm to play during long THP Encoding process
- Song.wav at application directory
- Default application song.wav is my own MKWii Menu (SMPS32x) song
- Audio toggle via new "Elevator Music" checkbox in Options tab
- Audio toggle via new "Audio" checkbox in Options tab
-
Progress bars/application logging
- Progress bars
- Added a "Progress" section in THP tab, showing status of processes
- 2 progress bar groups
- Total
- Current
- Progress for a particular chunk in total progress
- Think of those old Installshield installer wizards from Windows 95, with multiple progress bars
- Elements within a progress bar group
- Textbox (logs progress messages)
- Progressbar (self-explanatory)
- Label (display current progress percentage)
- Refactored and improved THP Encoding process
-
Display total/current encoding progress
-
Log informational progress messages
-
- Application logging
- Added new "Log" group box section
- Logs various mesages
- Application messages
- Total/Current progress messages
- MsgBox messages (and icons)
- Control buttons
- Cls
- Clears various log elements
- Total/current progress bar elements
- Progress bar
- Messages
- Progress percentage
- Main Log box
- Log text
- MsgBox icon
- Total/current progress bar elements
- Clears various log elements
- Save
- Saves log text to a file (for error reporting/debugging)
- Cls
- Progress bars
-
-
v1.2 Final pre-release
Bugfixes
- Completed issue #10 (implemented progress bars in THP Player/Viewer)
- Fixed an issue with preset crop settings values not updating from current setting when switching the current THP video from dropdown box
Enhancements
- Better UI arrangement in THP Viewer/Ripper section (more group boxes)
-- Made app wider, in order to be slightly less cluttered with above group box changes - Implemented functionality for "Full Log" option.
-- All FFMPEG/FFPlay stderror output is piped to a temp file, and then read into the logger
-- THPConv output also piped into logger.
-- Irfanview calls are not logged, due to difference in how the app operates for this application. - Added a new file into the data fileset, "FileSet.txt"
-- Informational file which lists this fileset's
--- Game
--- Desc
--- Author
--- Version
--- Creation date.
-- Data is displayed in new fields within Options tab
-- Updated stock MKWii Fileset with the new file
-- Changed MsgBox_Log function to record source code line file (WIP)
Next released should be v1.2 final (Thwimp CLI functionality #9)!
v1.2c Bugfixes
-
Fixed various issues with DataFile Directory option not working properly/being incomplete
-
Added additional dummy entry as 0th entry in default MKWii data files
-
Disabled Debug mode
-
Better default directories for various Options file browser dialog boxes
-
Other minor improvements
v1.2b Bugfixes/enhancements
-
v1.2b (04/11/20)
-
Bugfixes
- Issue #7: THP encoding optimization
- Issue related to encoding THPs that require dummy/padding frames
- Issue would cause the conversion of each multiplicities' dummy frame (dummy_N.bmp) into a dummy multiplicity video (dummy_N.mp4) to be poor, with their framecounts exceeding their intended value
- Issue would snowball further along the THP encoding process, and cause the final video to be much larger in framecount than expected
- This would, in turn, slow down the process of ripping BMP frames and converting to JPG frames for the actual THP encoding
- Application deletes all JPG files above the framecount limit ("Frame Trunc" * number_of_multiplicities), so many CPU cycles would be wasted without the bugfix
- Bug fixed with a better FFMPEG cmdline call, which properly converts the dummy BMP frames into a correct length dummy video
- Fixed bug with THP Encoder "Trunc Frame" field not updating always when changing the selected THP video (THP combo box)
- Made application start in Options Tab
- Issue #7: THP encoding optimization
-
Enhancements
-
New Options
-
Options
- DataFile Dir
- Directory to use containing Thwimp's data files
- Default directory is the application's
- Functionality to be used for alternative THP definitions to use Thwimp with other games
- "Audio" checkbox
- Toggles audio
- "Elevator Music" checkbox
- Toggle THP Encoder elevator music
- "Less MsgBox" checkbox
- Supresses most informational MsgBoxes during THP Encoding processes
- Prevents interruption for this long process
- "Full Logs" checkbox
- Not yet implemented!
- Will log everything (including stdout from Process cmdline calls)
- DataFile Dir
-
Settings INI file
- Buttons to save/load a Thwimp INI settings file
- Allows for saving/loading of settings
-
Help/Resources
- Added new section with various buttons to launch URLs in default browser with Thwimp resources
- Buttons
- Webpage
- About
- Application about box
- MKWiiki Article
- Manual (Github)
- Latest Release
- Cmdline
- Not yet implemented!
- Will detail cmdline options for application
- Can save details to a text file
-
-
Added audio to application
- Custom error sfx (SMB1 Mario death)
- Custom success sfx (SMB1 flagpole)
- Elevator Music
- Looping song bgm to play during long THP Encoding process
- Song.wav at application directory
- Default application song.wav is my own MKWii Menu (SMPS32x) song
- Audio toggle via new "Elevator Music" checkbox in Options tab
- Audio toggle via new "Audio" checkbox in Options tab
-
Progress bars/application logging
-
Progress bars
- Added a "Progress" section in THP tab, showing status of processes
- 2 progress bar groups
- Total
- Current
- Progress for a particular chunk in total progress
- Think of those old Installshield installer wizards from Windows 95, with multiple progress bars
- Elements within a progress bar group
- Textbox (logs progress messages)
- Progressbar (self-explanatory)
- Label (display current progress percentage)
- Refactored THP Encoding process
- Display total/current encoding progress
- log informational progress messages
-
Application logging
- Added new "Log" group box section
- Logs various mesages
- Application messages
- Total/Current progress messages
- MsgBox messages (and icons)
- Control buttons
- Cls
- Clears various log elements
- Total/current progress bar elements
- Progress bar
- Messages
- Progress percentage
- Main Log box
- Log text
- MsgBox icon
- Total/current progress bar elements
- Clears various log elements
- Save
- Saves log text to a file
- Cls
-
-
-
Release/usage Notes
- New Options
- Read "New Options" section under "Enhancements"
- This is a Beta build
- Tested to be working well, issues may exist
- Manual not yet updated; use these (and v1.2a's) release notes as updated manual with recent changes
- New Options
-
-
Todo
- v1.2 release!
- "Full Logs" checkbox option functionality
- Options "CmdLine" button functionality
- Display cmdline options
- Write syntax to file
- Progress Bars and message logging for THP Viewer and Ripper
- Thwimp CLI!
- v1.2 release!
v1.2a bugfixes/enhancements
-
v1.2a (04/06/20)
-
Bugfixes
- Issue #5: Irfanview path bug/Issue #6: JPG Quality Bug
-
Fixed serious, application-breaking bug where pointing to a real i_view32.exe executable would cause the THP Encoder process to convert the ripped BMP frames from the final generated video to Progressive JPG files
-
This bug also fixes Issue #6 (same bug)
-
THPConv cannot handle Progressive JPG markers (SOF2 header of $FFC2), so this bug would cause THP conversion to fail
-
Bug cause
- Pointing to a symlink of i_view32.exe does not read i_view32.ini option files when calling Irfanview command-line commands, and thus ignores JPEG Save Progressive option
- Pointing to a real i_view32.exe install directory does read i_view32.ini option file, and thus may apply JPEG Save Progressive option (and break THP conversion)
-
Bugfix method (HackINIFile() function))
- Read i_view32.ini file (located at exe path)
- Locate the options i_view32.ini pointed to from within (usually located at %APPDATA%\Irfanview)
- Copy that options i_view32.ini file to the THP Encoding working directory
- Hack that INI file with changes
- Save Progressive=0 (false)
- Save Quality=[User-defined JPEG Quality setting]
- Run BMP -> JPG converion via Irfanview commandline during THP Encoding, using hacked INI file options and /JPGQ setting, in order to ensure no Progressive JPG output and proper JPG Quality setting
-
- Issue #5: Irfanview path bug/Issue #6: JPG Quality Bug
-
Enhancements
- Issue #8: THP Viewer/Ripper enhancements
- Modified the THP Viewer playback so that it
- Applies the Crop Settings (both physical and time) to the playback
- Now properly trims any audio streams for playback of applicable THP videos!
- This is done via ripping audio and video streams separately (temporary MP4 files with only one stream type), trimming both, and remerging both back into a final temp mp4 video file
- Playback final temp mp4 video file with the trimming applied
- Temporary files generated in FFPlay WorkDir (new Options directory setting)
- Modified the THP Ripper so that it
- Now properly trims any ripped audio streams for applicable THP videos!
- Modified the THP Viewer playback so that it
- Issue #8: THP Viewer/Ripper enhancements
-
Release/usage Notes
- Irfanview usage
- Usage of a portable installatin of Irfanview with Bugfix #5/#6 should now be supported (untested)
- Irfanview must be run at least once on the machine before using Thwimp (in order to generate the default i_view32.exe INI files for later hacking)
- New Options
- FFPlay WorkDir
- Working Directory for FFPlay temporary files
- Used when converting THP files with both Audio and Video streams
- Directory used must have read/write access!
- FFPlay WorkDir
- This is an Alpha build
- Tested to be working well, issues may exist
- Manual not yet updated; use these release notes as updated manual with recent changes
- Irfanview usage
-
-
Todo
v1.1 enhancements
- v1.1: 1st revision (01/06/19)
- Bugfixes
- Fixed a bug with proper framerate not being applied to encoded THP videos for replacement
- Fixed a bug with ripping of some control frames from certain THP videos (especially file "thp\battle\battle_cup_select.thp") would be off by 1.
- Enhancements
- Made labels and group box headers bold
- THP Decoder
- Added nud, and array of radio buttons to select a particular multiplicity/subvideo cell to crop to
- Added start/end fields for clipping a video to a certain time period
- Removed "Rip to [format]" checkbox
- Audio file is automatically ripped if original THP has one
- Dummy frames (if exist) are ripped if "dum" radio button is selected, multiplicity=0, and the start/end frame values = video's min/max frame values
- Made Rip button use the appropriate default filename based on the subvideo/multiplicity being cropped
- Readme
- Updated THP Decoder section
- Added important information about streaming bandwidth from SD Card vs. DVD
- Images
- Additional external links
- Grammar/spelling checking
- Bugfixes