Skip to content

Releases: Tamk1s/Thwimp

v1.2.0.1 Bugfix Release

20 Jun 22:04
Compare
Choose a tag to compare

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

v1.2 Release

03 Aug 01:02
Compare
Choose a tag to compare

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
      • 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
      • 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!
      • 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
          • Updated stock MKWii Fileset with the 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)
        • 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
        • Help/Resources

      • 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
            • Save
              • Saves log text to a file (for error reporting/debugging)

v1.2 Final pre-release

05 Jul 15:07
Compare
Choose a tag to compare
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

07 Jun 06:41
Compare
Choose a tag to compare
v1.2c Bugfixes Pre-release
Pre-release
  • Fixed issues #11 , #12 , #13 , #14

  • 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

12 Apr 04:05
Compare
Choose a tag to compare
Pre-release
  • 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
    • 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)
        • Settings INI file

          • Buttons to save/load a Thwimp INI settings file
          • Allows for saving/loading of settings
        • Help/Resources

      • 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
            • Save
              • Saves log text to a file
    • 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
  • 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.2a bugfixes/enhancements

06 Apr 19:46
Compare
Choose a tag to compare
Pre-release
  • 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
    • 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!
    • 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!
      • 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
  • Todo

    • v1.2b
      • Optimize THP Encoding (Issue #7)
      • THP Encoding Progress Bars (Issue #10)
    • v1.2 release
      • Thwimp CLI, settings load/saving (Issue #9)

v1.1 enhancements

07 Jan 23:27
Compare
Choose a tag to compare
  • 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