Zero Munge (v1.1.0-beta) (NEW RELEASE)

Releasing the source files for your mod or map? Post em' here. (Applies to both SWBF1 & SWBF2)

Moderator: Moderators

Post Reply
Marth8880
Resistance Leader
Posts: 5042
Joined: Tue Feb 09, 2010 8:43 pm
Projects :: DI2 + Psychosis
Games I'm Playing :: Silent Hill 2
xbox live or psn: Marth8880
Location: Edinburgh, UK
Contact:

Zero Munge (v1.1.0-beta) (NEW RELEASE)

Post by Marth8880 »

Image


Image Image Image Image
Image Image


>> Download Latest Version (v1.1.0-beta) <<

release page | view changelog


OVERVIEW

What it is

The goal of Zero Munge is to act as a robust replacement for VisualMunge.

It is written in Visual C# for .NET Framework 4.

What it does

At its core, Zero Munge goes through a user-specified list of munge.bat files and executes each one at a time and copies the associated LVL files to the appropriate staging directory.

Zero Munge includes the following features.
  • Sequentially execute a list of munge scripts and any other batch scripts
  • Toggle whether or not certain scripts in the list will be executed
  • Log each script's output in real-time (with timestamps) to a log window and log file
  • Various methods of adding munge scripts to the file list
  • Automatically copy each file's associated LVL file(s) to the appropriate directory
  • Easily create the munge folders/scripts for a side or world
  • Apply the sound munge fix to a project directory
  • Visual interface for modifying which sound folders get munged when sound is munged
  • Save and load different "presets" of the file list's contents
  • Auto-save and auto-load functionality for save files
  • Automatically check for updates and point user to latest release's download page
Why I made it

As some of you may know, I don't use VisualMunge to munge projects. My reasoning is a) it's extremely limited in terms of extensibility and customization, meaning it's only really useful for standard single-map projects since you can't munge multiple worlds or sides in one run, and you can't specify LVL target directories and such things; and b) it doesn't work properly for like half of the people who try to use it.

For years I've been munging my mods by running the munge.bat files manually and manually copying over LVL files - up until this year when I started writing custom munge.bat files to run multiple sides/worlds/sound folders at once and copy files for me and whatnot. However, that still isn't good enough for me: I need to be able to munge all of these folders from a single location, so I decided to build a tool that lets me do so.

And with that, I present Zero Munge.


SCREENSHOTS

Because images speak louder than blocks of text, here's some screenshots:
Hidden/Spoiler:
Image
Hidden/Spoiler:
Image
Hidden/Spoiler:
Image
Hidden/Spoiler:
Image
Hidden/Spoiler:
Image

DOWNLOAD

You can download Zero Munge or view its source with the links below.

>> Download Latest Version (v1.1.0-beta) << (release thread)

>> View Source On GitHub <<


Please keep in mind that this tool requires you to have .NET Framework 4 installed.

>> Download .NET Framework 4 <<


Please note that this is a beta release. Use this with your own mods at your own discretion (although there's no reason or way that this could really break anything, due to its nature). With that said, the tool isn't finished, so I'd love to hear everyone's suggestions and whatnot for new features, changes, etc.! Also please let me know if you're able to cause the tool to crash.
Last edited by Marth8880 on Wed Jan 02, 2019 8:00 pm, edited 32 times in total.
AQT
Gametoast Staff
Gametoast Staff
Posts: 4910
Joined: Sat Nov 03, 2007 4:55 pm
Location: SoCal, USA

Re: Zero Munge (VisualMunge replacement)

Post by AQT »

An improvement to VisualMunge? :o This should be of great help!
THEWULFMAN
Space Ranger
Posts: 5557
Joined: Tue Aug 17, 2010 3:30 pm
Projects :: Evolved 2
Location: Columbus, Ohio
Contact:

Re: Zero Munge (VisualMunge replacement)

Post by THEWULFMAN »

Now we just need a replacement to ZeroEditor.

A shame that project died, rip
User avatar
Anakin
Master of the Force
Master of the Force
Posts: 4817
Joined: Sat Sep 19, 2009 11:37 am
Projects :: RC Side Mod - Remastered - SWBF3 Legacy
Location: Mos Espa (germany)

Re: Zero Munge (VisualMunge replacement)

Post by Anakin »

Great work. I thought you were no programmer :wink:

Some improvement ideas:
Get all projects automatically from a base folder,
Generate all munge.bat by itself, depending on the folder structure in data_XXX
Checkbox in treestructure
Data_XXX
- common
-sides
-- rep
--cis
...

Checking a base checks all subentries and lunge it. If there is no proper mange.bat it is generated.
User avatar
AnthonyBF2
Sith
Sith
Posts: 1254
Joined: Wed Aug 21, 2013 3:55 pm
Projects :: PS2+PSP Overhaul

Re: Zero Munge (VisualMunge replacement)

Post by AnthonyBF2 »

I was just thinking about doing something like this in au3 which I still might for my personal use. Glad to see new tools after all this time, I will try it out for sure later.
Marth8880
Resistance Leader
Posts: 5042
Joined: Tue Feb 09, 2010 8:43 pm
Projects :: DI2 + Psychosis
Games I'm Playing :: Silent Hill 2
xbox live or psn: Marth8880
Location: Edinburgh, UK
Contact:

Re: Zero Munge (r42) (VisualMunge replacement)

Post by Marth8880 »

(view spoiler for r35 release thread)
Hidden/Spoiler:
@everyone: Thanks for the suggestions and whatnot! I'll look into it all in the future.

_______________________________________________

I've released a new build. Download link is below.

>> Download Outdated Version (r35) <<


Changelog:

[code]- Adjusted output log character and line limit
- Optimized the way the output log purges characters
- Changed file dialogs' default start directory to the app's current working directory[/code]
I've released a new build. Biggest additions to this update are significant performance improvements as well as user-feedback features for when a job is started/completed/aborted. Download link is below.

>> Download Outdated Version (r42) <<


Changelog:

Code: Select all

- Vastly improved performance with large output logs
- Mostly fixed scrolling behavior when output log is full
- Added functionality that logs all output to a file located in the EXE's working directory
- Added functionality that plays a sound when a job is started, when a job is completed, and when a job is aborted
- Added functionality that shows a Windows notification when a job is completed
- Added a tray icon
Last edited by Marth8880 on Sat Jan 20, 2018 2:22 pm, edited 4 times in total.
RaveYoda
Recruit Womprat Killer
Posts: 8
Joined: Tue May 16, 2017 6:25 am
Projects :: MshViewer -- Collab with Anakin
xbox live or psn: No gamertag set
Location: Earth
Contact:

Re: Zero Munge (r42) (VisualMunge replacement)

Post by RaveYoda »

This just brings pure joy to my heart. I'm very happy to see that there are those who are still bringing out new tools to make great additions to this game.
User avatar
AnthonyBF2
Sith
Sith
Posts: 1254
Joined: Wed Aug 21, 2013 3:55 pm
Projects :: PS2+PSP Overhaul

Re: Zero Munge (r42) (VisualMunge replacement)

Post by AnthonyBF2 »

I finally got around to trying this and it is okay but it could be much better with the simple ability to remember project folders. It can't remember project folders so when I run the application I have to program all the munge files I have again. For now I'm sticking with using manual munge.bat as I've always done.
Marth8880
Resistance Leader
Posts: 5042
Joined: Tue Feb 09, 2010 8:43 pm
Projects :: DI2 + Psychosis
Games I'm Playing :: Silent Hill 2
xbox live or psn: Marth8880
Location: Edinburgh, UK
Contact:

Re: Zero Munge (v1.1.0-beta) (NEW RELEASE)

Post by Marth8880 »

(view spoiler for r78 release thread)
Hidden/Spoiler:
Image

I finally got base functionality working for saving the state of the file list to a binary file! And because I want users to be able to edit the contents of the saved files manually if they wish, I also got it to serialize the data as XML instead!

Image

Image
Also automated LVL copying is now a thing!

EDIT:

Having trouble deserializing XML, so for now it's gonna have to be binary. :( But hey, saving is still a thing now regardless!

--------------------------------------------

I've released a new build. First and foremost,

SAVING/LOADING FILE LISTS IS HERE!

Yep, that's right! It's incredibly easy to save the contents of the file list to a new file for re-loading later. On top of that is a completely revamped file list GUI and the ability to have the application automatically copy the munged LVL files to the correct locations. Please refer to the changelog for the complete list of changes. Download link to the new build is below.

>> Download Outdated Version (r78) <<


Changelog:

[code]- Added functionality for saving/loading the file list
- Completely reworked the file list
- Added functionality for copying LVL files to the proper locations
- Added a munge parser so that when you add a munge.bat file to the list, the associated LVL file(s) and staging directory are auto-detected
- Added adjustable preferences that allow users to toggle notifications, LVL file/staging directory auto-detection, etc.
- Added menu bar
- Added hotkeys for various different commands
- Added help file (basic first pass includes topics detailing the UI)
[/code]
(view spoiler for r89 release thread)
Hidden/Spoiler:
I've released a new build, r89.

>> Download Outdated Version (r89) <<

Release notes:

[list][*]Fix for Issue #2 - world LVL files are now auto-detected based on world REQ files
[*]Updated links in About form[/list]

(GitHub release page)
(view spoiler for r113 release thread)
Hidden/Spoiler:
I've released a new build, r113.

>> Download Latest Version (r113) <<

Release notes:

[list][*]Expanded functionality of world LVL auto-detection to apply to sides as well
[*]Added functionality to check for application updates[/list]

(GitHub release page)
(view spoiler for r146 release thread)
Hidden/Spoiler:
I've released a new build, r146.

>> Download Outdated Version (r146) <<

CHANGELOG

[list]Added:

[list]- When an update is available, the build num/date, download link, and release notes are printed to the Output Log on application load
- If GameDirectory is unset, user is prompted on application load to set it (#15)
- Menu items to check for updates, report bugs, provide suggestions, view all open issues, and view changelog/license/readme files (#17)
- User preference to toggle whether application should check for updates on startup[/list]

Changed:

[list]- Output Log now updates at a timed interval when a job is running, fixing its performance issues
- 'Remove' button now removes all selected rows instead of only the last-selected row (#13)
- User can now target any executable when setting GameDirectory[/list]

Fixed:

[list]- Stray sub-REQs are added to the Munged Files list for side REQs (#4)
- Copy/Cut/Paste/Select All/Delete key combos in Munged Files Edit window don't do anything (#7)
- Out-of-date tooltip text for 'Check for updates' link (#9)
- Exception thrown when attempting to commit an empty Munged Files list (#5)
- Exception thrown when a job finishes that contains an empty Munged Files list (#6)
- 'Add Files...' button updates the selected row instead of always inserting a new row (#11)
- 'Remove All' button doesn't always remove all rows from the file list (#12)
- Exception thrown when attempting to save a file list with an empty row (#16)
- Exception thrown when update URL domain can't be resolved during update check[/list][/list]

(GitHub release page)
(view spoiler for v1.0.0-beta release thread)
Hidden/Spoiler:
I've released a new build, v1.0.0-beta.

>> Download Outdated Version (v1.0.0-beta) <<

CHANGELOG

[list]Added:

[list]- On application exit, the file list is automatically saved; with this functionality comes a user preference to disable it (#19)
- On application startup, the last-loaded file list is automatically loaded; with this functionality comes a user preference to disable it (#14)
- Buttons in the tray icon context menu to start and abort execution of the file list (#28)
- User preference to specify the Output Log's maximum line count (#26)
- Pre-exit prompt to save dirty file list if auto-save is disabled (#29)
- "Open Recent" sub-menu that lists the last 10 recently-opened files (#24)[/list]

Changed:

[list]- Vastly improved Output Log performance by having it only update once every N milliseconds, and added a user preference to specify N
- When a (checkbox) setting that is a dependent of other settings is unticked, those dependent settings are also unticked
- All log messages that refer to file paths and directories now wrap the paths in quotes
- In the About window, replaced the "Frayed Wires Studios" link with a link to open a dialog listing all of the third-party software that is used in Zero Munge (#30)
- Application DLLs are now stored in and loaded from `ZeroMunge\lib`
- "Report a Bug" and "Provide a Suggestion" menu links now take the user to the correct issue template form for each [/list]

Fixed:

[list]- Exception thrown when application checks for updates while minimized
- When user starts a new file list out of the File menu, the file list's current contents aren't cleared (#20)
- Exception thrown when loading save file that contains empty file list (#22)
- Main window's title doesn't reflect the current file when a save file is opened (#27)
- File List isn't marked as dirty when rows are removed
- Various logic issues with save flow[/list][/list]

(GitHub release page)
I've released a new build, v1.1.0-beta.

>> Download Latest Version (v1.1.0-beta) <<

CHANGELOG
  • Added:
    • - Actions menu: Easy File Picker (#36)
      - Tools menu: Create Side Munge Folder (#38)
      - Tools menu: Create World Munge Folder
      - Tools menu: Fix World Munge Script (#37)
      - Tools menu: Fix Sound Munge Files (#42)
      - Tools menu: Modify Munged Sound Folders (#42)
      - Status bar displaying log length/lines, job status, and update link (when available)
      - Save file versioning
      - Help docs: Getting Started topics (#39)
      - Help docs: Commands section and topics (#39)
      - Help docs: UI topics for Easy File Picker and Modify Munged Sound Folder dialogs (#39)
      - Help button in most dialogs that opens the relevant UI topic in the help docs
      - Context menu in Third Party Software dialog to Copy or Select All text
    Changed:
    • - Overhaul of help docs (#39)
      - Many various code refactors
    Fixed:
    • - JSON parser has no exception-handling (#35)
      - Null reference exception when attempting to abort updateCheckThread
      - File list doesn't auto-save when the last change is Remove All (#41)
      - Improper save logic when exiting the application
      - Incorrect default directory for dialogs that prompt to browse for a folder
(GitHub release page)

---

Let me know if you have feature requests, suggestions, etc.! :)
Post Reply