Madmax-win-pause: a tool I made to pause and resume the MadMax plotter

I made a simple Windows tool to pause and resume the MadMax chia plotter in Windows. It’s fully open-source, but I’ve also released a pre-compiled EXE file for ease of use.

Download the EXE file from the release link above, and run it. The tool starts a system tray icon (image: a plot). Simply right-click on the icon in the system tray and click “Pause” to pause all running MadMax instances, or “Resume” to resume those instances (after you’ve already paused them).

This is my first open source project, so feel free to give any feedback! Hopefully this tool is as useful for others as it has been for me.

Do NOT download .exe from unverified sources!

4 Likes

Wtf lol.

To pause mad max simply move the mouse somewhere in the window and click on the mouse.

To resume, iirc , double tap space.

I’m sure that’s how to do it, did it countless times by accident.

As far as I can tell, that doesn’t pause execution of the process. It merely pauses the output while you select and copy/paste text. If I’m wrong, perhaps you can supply a source or give a demo with Task Manager open to show resources utilization for verification?

Maybe your correct, maybe not, I’m not testing.

The original code was written in Power Shell (nice and concise code). You tripled the number of lines to make it Python. In addition, you need to build an exe, that no one wants to touch with a long pole (who knows how you built it). So, as much as I sympathize with your intentions, I think that you took the wrong route.

Instead of that, you could take that PS code, extend it to also support CPU Priorities, and you could take a look at something like PSChiaPlotter, to see how you can make it as a simple GUI app (without the need for an exe). This way, there would be no risk of getting potentially infected exe, as PS code could be easily examined. Some people were already asking for for a tool to modify CPU priorities already. Even in your case (playing games), dropping MM down to BelowNormal would make MM crawl, but still make progress. On the other hand, for those that run MM 24/7, setting it AboveNormal would potentially also boost their throughput a bit. Another thing that you could also research is CPU affinities. Potentially, (for some people) that has more value than pausing MM, or changing CPU priorities.

Of course, it is your code, and I assume you wanted to learn Python, so it was a good exercise for you.

I know that GUI plotters exist out there, but my intention was to make something that’s compatible with the simple way of launching a plotter via command line/batch files. I had a bad experience with a minimally-tested GUI plotter wasting my time, so I wan’t to create something simple.

As far as I’m concerned, running the Python script in Python is trivial, so I assume that’s how most people would use this tool. The EXE is there as well (along with the instructions I used to build it). Still, I can appreciate that it’s not an ideal scenario. Python is probably overkill for such a simple application.

Great suggestion about adding CPU Priorities! I’ll absolutely consider something like that! Could be added as a simple picklist in the system tray icon. Thanks for sharing that idea.

As far as those CPU priorities, I would follow that reddit code. Basically, monitor all Chia related processes and let at least some to be manipulated. I am thinking that bringing harvesters to AboveNormal priority may help them, but am not sure of that.

On the other hand, specifying affinities would help people that are running on multi CPU boxes (and running MM in parallel).

Another thing that currently came up is that when people close Chia, they don’t realize that potentially not all processes are being killed. It may be helpful to have a list of Chia running processes, so people would not that restarting Chia while there are still orphaned processes running will basically not work. I do monitor those processes on Chia shutdown, and kill them when they are stuck, so would not mind seeking process kill button next to each item on that list. I guess, we can argue that killing those processes may corrupt something, but when those processes are not responding in a timely fashion, at some point they will need to be killed (whether through a reboot or manual kill). Bad code is just bad code.