ZHelper Version History
Version 5 Preview BuildsNOTE: These are only preview builds, and are missing critical features such as saving and loading support, as well as hotkeys! I would not recommend using them during races yet! They are still perfectly usable for casual playthroughs.
- Added a basic Options menu.
- Timer function has an option to output area and total run times to a text file when it is stopped.
- Many more misc. changes and additions throughout.
- Added the updater. It has both beta and stable channels now, although betas like this will be locked to the beta channel. They can still get stable updates as well if they're newer than the beta. Currently there isn't a stable update, so it makes no difference.
- More changes to the OW screen, including support for loading custom maps from programs such as Infinite Hyrule. To use it, Shift + Left click the QW:1ST button to enable custom quest, then click the load custom map image button below the blank map. Do note that because of the way GM sandboxes things, you'll have to move the image to %LocalAppData%\ZHelper\maps\ for it to work.
- Added basic dungeon tracking. Its far from complete, but hopefully enough to at least be usable right now. The entire dungeon system will likely be overhauled at some point, so I wouldn't get too used to it.
- Initial preview build. Only has a barebones OW screen.
Version 4 (No longer updated!)
The following is a complete version history from 4.00 onwards. To download a particular version, click on the version number.(NOTE: GMS2 builds are built in Gamemaker Studio 2 for better compatibility with newer versions of Windows. They are untested, and might have bugs that aren't in the GMS 1.4 builds!)
v4.45 (GMS 1.4 Build) (GMS2 Build) (01/06/20)
- Made the updater not pop up a messagebox unless clicked. It will still show the status at the bottom right of the main menu.
- Added an option to switch display of the overworld coordinates on the map to A1-H16 style instead of hexadecimal. It only changes on the map right now, and also disables the player indicators on the overworld map to make room for the longer string.
v4.44 (GMS 1.4 Build) (GMS2 Build) (01/06/20)
- Made the updater handle Gamemaker Studio 2 builds correctly. To start getting GMS2 builds in the future, be sure to manually download the 4.44 GMS2 build off Discord or the website. From this point on, it should keep you on the same GM version.
- Added the ability to shift dungeon maps around using a new set of buttons on the D maps. It only works when both network mode and auto-mapping are not active, however. This is due to the auto-syncing between D and C maps on the server, and obviously auto-mapping would never need to shift maps. Its always those old classic dungeon maps causing problems. :(
- Added an X item icon to manually mark an item box as disabled. Hold shift, and middle-click an item box to set the icon. It cannot be accessed by other means.
- Added a couple types of negative overworld color palettes to the randomizer addons, as suggested by Devan2002. It doesn't change the black color yet unfortunately. Sounds like fun times either way.
- Added dungeon icons for ladder, bow/arrow, sword/wand, and recorder blocks.
- Added in two new dungeon guides. LEVEL-? text at the bottom next to each tile picture, and item icons along the right to help align markings easier.
v4.43-GMS2 (11/01/19) (NOTE: This build is untested!)
- This release is the same as 4.43, but compiled in GM Studio 2. It is just here for (hopefully) better compatibility with newer versions of Windows. It is completely untested, so use it at your own risk during races and such! Going forward, I'll try to post a GMS2 build alongside the GMS 1.4 builds if it doesn't crash horribly. Right now it uses the same update system as the GMS 1.4 builds, so don't update it if you want to stay on GMS2 for now! It'll be a separate update channel in future builds.
- Added a mirrored toggle for the overworld map screen. Right-click the MIX button to mirror the overworld map. It doesn't swap all the already-marked locations though.
- Fixed the ladder & white sword item icons below their respective boxes.
- Added a dungeon transparency setting. You can turn unmarked rooms and doors on the D1-D9 maps translucent by left clicking the TR button while on a dungeon map. The translucency amount can be adjusted in the Options menu.
- Turned off the GM debug overlay that I accidentally left on.
- Added support for loading custom graphics. You can replace almost anything, except for a few special graphics that need to be left alone. You can use the reload button in the options menu to reload graphics on the fly without restarting the program. Please note this feature may have a noticeable performance impact on very slow systems as it negates some of GM's built in optimizations. See the help page of the website for more details on this feature.
- Added a dungeon door icon for attempted but failed walk-through. It looks like faded horizontal/vertical lines with a ? on it. Its used when you tried to walk-through but haven't ruled out bombs yet.
- Changed the item icon order. Heart container is now the last item in the list. Just right click an empty box once to get a heart now.
- Added a button to toggle between item boxes or heart icons below the triforce. They don't sync up yet, so beware of that. You can change which one shows up by default in the options menu.
- Changed the SRL warning screen message to reflect that SRL mode MUST be on before using the tracker during races.
- Made the SRL warning screen only show up once. No more having to keep clicking through it every single time.
- Changed the message about bug reports on the title screen to refer to the new section on the Zelda 1 Randomizer Discord server.
- Fixed a minor oops in the default value for the dungeon finder delay setting dialog. Likely won't affect the majority of users since SRL mode disables that feature anyway.
- Minor fix for the item boxes having repeating items at the end.
- Adjusted the size of the new dungeon heart itemboxes so they look better and avoid clicking two at once.
- Nuked what I hope are the last forgotten remenants of the old multi-seed support. Remember that mess?
- Hopefully fixed all the wrong packet sizes and such on the server. It should work again. Let me know if it still explodes.
- Changed the hearts below the triforce icons to generic item boxes to accomodate the new boss item shuffling option in the randomizer. Thanks to Azeryn for changing those boxes!
- Fixed a bug where trying to load the backup data when it doesn't exist would crash the program. Now it just gives a nice error message instead.
- Made the updater delete the v5 update check text file when its done with it to avoid conflicts.
- Changed the save format to a custom binary buffer format instead of using GM's data structure serialization functions. Save/load performance should increase dramatically since its now a 16KB file instead of a multi-MB file.
- Disabled some outdated/broken randomizer addons. Dungeon prefab rando & lost woods rando are out for the moment. They'll return at a later date when they're in a more complete state.
- Fixed an updater bug that's been around since v3 (yep, seriously!). If you happen to get a 404 page instead of the actual update file, ZHelper would crash from expecting a number. Now it checks to make sure it didn't get a 404 page first. I'd be surprised if that never crashed anybody up till this point.
- Made some behind-the-scenes changes to the updater to get it ready for the release of ZHelper 5. Its mainly going to be for putting up a special note on the main menu once its released instead of constantly throwing the important update message. v5 will not run on very old PCs due to being made in GameMaker Studio 2, which doesn't support DirectX 9.
- Added quick view switch buttons to the top bar where the multiseed stuff was. Thanks to PanzerDave for the idea!
- Hotkeys can now use letters and not just numbers. This should allow for more hotkey options until a better system is finished.
- Made some major optimizations to the overworld and classic dungeon map drawing. The new dungeon maps can't be optimized much further.
- Made the transparency toggle hotkeys show messages like the button.
- Gutted multi-seed support ENTIRELY! Worst decision I ever made was to implement that considering ironman isn't a thing now. Something's bound to explode so get the bug reports ready.
- Made the player names get saved to save files. Been a bug for ZH4's entire life. Oops.
- Added player position indicators. Connected players who are using the automapping feature will show a blinking cursor on the maps of all connected players showing their current location. These are disabled completely if SRL mode is on because some people think this is a cheat and shouldn't be allowed in races.
- Added a player list to the bottom of the tracker window. It shows all the connected players' names and positions (if available).
- Made the server stream data twice as fast during full client syncs. It should be fine now with the recent OoB fix on the server side.
- Changed the update.txt format and made the updater show the important update message if an important update has been released since they last updated instead of only checking the newest version.
- Added SRL mode. It is on by default, and disables various tracker features that some people may consider cheating during races. These features include dungeon narrowing, network mode (including the server), and the overworld automapper. To toggle SRL mode, click the button on the main menu.
- Added a notice screen with information about the recent discussions on the ZeldaOne Discord server. Please note that certain ZHelper features may soon be banned from use on SpeedRunsLive! If need be, I will put out an update with the banned features removed once its decided.
- Fixed an error with the white sword cave itembox tooltip. I forgot a break statement so it was drawing the I AM ERROR text on top of the tooltip.
- Added a button to quickly clear the currently selected dungeon map as suggested by PanzerDave. Useful if you just want a sort of scratchpad to work with instead of fiddling with a bunch of separate maps. Its disabled in network mode for obvious reasons.
- Switched vertex buffer method to the 'Most Compatible' option. Hopefully this fixes the program not running at all for some. If not, or if it causes you issues, let me know and I'll just start pushing two separate builds.
- Made the server output log messages to a text file in the save directory so its easier to track down weird crap when it happens.
- Permakilled the OoB buffer read bug on the server, because it decided to show its disgusting, ugly self with less than 100 bytes of incoming data compared to the 170+ KB it took to blow up the client. Its amazing that it worked until now, and barfed with such a small amount of incoming data. If you see ANTICRASH messages on the server, it would have blown up.
- Fixed an issue where you could get stuck on screen 45 if the overworld routing rando is enabled.
- Added a 3rd setting for the overworld icon transparency toggle and settings for the overworld map tiles.
- Added hotkeys for the transparency toggle. Use F5/F6 to toggle map tile/icon transparency.
- Added an overworld automapper for use with the overworld randomizer addon. Shift-click the auto button in the tracker to learn more and enable the feature. Please note that this feature is experimental and may have bugs and/or instability issues, and does not have network support or even save/load support. It is only compatible with FCEUX 2.2.2 at the moment, and you must use an integer scale, the default palette, and no filters. It uses a custom DLL I made that reads pixels from the screen. Let me know if it doesn't work for you. More automatic tracking features will come once ZHelper 5 is done. Thanks to Kababesh & PanzerDave for all the bug testing they did on my auto-tracking beta build this stuff was ported from!
- Added a transparency toggle button for overworld icons, so you can see the map below them if needed.
- Fixed the derp where the white sword icon below the itembox was showing as a wand. Forgot to change the subimage number when I added the shield icon.
- Removed the B1-B4 overworld icons that were meant for drjasonkimball's auto-tracker use for shops since he's not around anymore. They'll probably be added back if he ever comes back and updates his tracker, or if someone else gets an auto-tracker running.
- Added a Rupee? icon for marking unknown rupee secrets that you haven't collected. Mainly there for those who don't use player indicators at all.
- Added confirmation prompts to F1, F2 and F9 in the tracker window to help avoid accidents.
- Fixed a very minor visual error on the potion shop screen north of level 3 in the overworld randomizer.
- Added a shield icon for the dungeon item boxes.
- Added a book shop icon for the overworld.
- Added a new map screen that has options for tracking the helpful hints about dungeon locations. It has network support too. Also added tooltips to the dungeon item boxes to show the hint messages as well. TY for the ideas jkoper!
- The ultimate form of overworld madness is finally here! Added a randomizer addon that randomly opens and closes paths on the overworld. Every screen should always be accessible without having to use glitches. If not, let me know the seed and where. Its incompatible with the burn/bomb overworld rando option right now, so it'll ignore that one if its checked too. Compatibility will come once I know this beast is actually working properly.
- Fixed the error that showed when you clicked cancel when picking a ROM for the randomizer addons (finally!).
- Moved a couple large sections of the rando addons generation code to scripts, because GM:S' code editor was lagging up a storm from almost 5k lines of code in a single action.
- Added a keep-alive ping packet for the network mode. Hopefully this stops the seemingly random disconnects after inactivity.
- Added an AUTO button to the main tracker window. It doesn't do anything useful yet.
- Added critical update functionality. You'll see the update prompt every time one is available. This will get used for major bugfix updates or those that change the randomizer addons or network functionality.
- Made the mouseover outlines draw above everything else.
- Clicking a valid classic dungeon cell will create a dungeon in the new dungeon maps if one doesn't exist and there is room for it. The color of the new dungeon map has to be set manually.
- Added a bunch more overworld palettes.
- Fixed the bug where clicking the Reset All Data button on the server causes it to stop responding.
- FINALLY!!! Nailed the coffin shut for good on the 'read from outside the buffer' bug on clients. I even tested it with a lag/drop/throttle simulator with settings worse than the most unreliable 28.8k modem imaginable and it still doesn't crash.
- Fixed a few other small networking bugs. The Reset All button is still broken for an unknown reason.
- Added a notification to the client when the OoB buffer read anticrash mechanism kicks in. If you see this you would have crashed before, but shouldn't anymore unless corrupt data somehow got past TCP's error checking. You'll see stuff like this pop up over the location bar with a red background.
- Fixed the incorrect itembox coloring. It was just assuming 1-9 = 1-9 and not actually checking if they were out of order.
- Added Tropical overworld palette.
- Corrected the Blackout overworld palette to use 0F instead of 0D.
- Slowed down sync streaming to half its current speed to (hopefully) keep crashes from happening because GM:S networking sucks.
- Lowered the spam of full sync messages in the server.
- Added new/classic dungeon syncing. Syncing only occurs if you have a new dungeon map set to a particular level. It will auto-sync what is already entered on both maps when clicking a dungeon number, and will automatically sync everything for that dungeon after that.
- Added audio alerts to the server for certain events like a client connecting and disconnecting, and for dungeon sync conflicts. Its a configurable option in the server screen if you don't want them.
- Network mode has (hopefully) been fixed. It shouldn't crash anymore as long as you don't spamclick the sync button. Thanks to Kababesh for helping with stability testing and making sure it all works!
- Made the dungeon item boxes colored based on the selected dungeon colors (in the new dungeon tracker, not classic). I meant to do this from the start, but never did for some reason.
- Network mode is finally here again! Just click Start Server to start a server and then have clients connect to it by shift-clicking the net button on the main tracker window and putting in the server's ip & port. You'll still have to forward ports and all that if you're behind a router. I'm thinking of a way to solve that issue, but I need to get the existing network code stable before I try to do it. If you use multiple clients, use a different player name on each or it probably won't work properly, if at all. WARNING: There could be bugs and glitches that I've missed that could cause data loss, crashes, or other grief. I'm still a huge n00b at writing network code, so please test it thoroughly and be sure to report any problems you find! I've tested and debugged it quite a bit myself, and it seems to be stable. Just don't go spam-clicking the resync buttons and you should be alright (that would be asking for trouble anyway, right?).
- Added several new overworld palettes to the randomizer addons, including blackout/whiteout!
- Made all rooms other than the tracker 30fps again to lower CPU usage in menus and in the server.
- Lots of minor changes, fixes, adjustments, and refactoring to get network mode functioning.
- Made the coordinate text on the overworld and classic dungeon maps darker.
- Updated credits in the readme.
- Hotfix for a bug where using the mouse in the empty black area below maps with indicators off was changing incorrect icons and/or trying to write to OoB locations, possibly causing crashes or corrupting memory since its compiled to C++ by the YYC. Updating is HIGHLY recommended.
- Added the ability to select which icons are selectable on the tracker (as requested by caracarnvi).
- Added hotkeys that you can assign to the 0-9 keys (above the letters, not numpad), allowing you to quickly set a cell to certain icon types. Use your emulator's background input function, keep ZHelper focused, move the mouse over the cell you want to change, and press the number to set the cell.
- Implemented a temporary workaround for filename_change_ext() not working, causing randomizer addons rom filenames to lose their original filename. Go figure, they break something that worked just fine before.
- The program now runs at 60FPS. This should make mousewheel scrolling through icons MUCH more responsive than ever. You'll immediately notice a massive difference.
- Added a randomizer addon that lets you change the square wave instrument used for the game.
- Added a randomizer addon that lets you choose an alternate overworld palette. There are several presets defined. If you've came up with a good palette that isn't already in, send it to me and I'll add it. You should have a total of 6 hexadecimal values from 00-3F, 3 for the 'green' palette and 3 for the 'brown' palette.
- Added a map icon to the dungeon icons because I've somehow forgotten that one ever since dungeon tracking was a thing back in 3.0, just like the compass icon.
- Added a 10-rupee room dungeon icon (the yellow rupee icon).
- Made the updater ask for a filename when you choose to download an update zip. This eliminates the need to keep finding the file in the appdata folder. This is the only way I can implement this due to GM Studio's sandboxing.
- Made the overworld, dungeon, and door icon boxes automatically find how many icons there are because I got fed up with changing a bunch of numbers every time I had to add one.
- Rewrote the existing randomizer addons generation code. It uses buffers now, making it MUCH, MUCH faster and the code is cleaner than before.
- Changed descriptions of a couple randomizer addons options.
- Added a randomizer addon that changes the columns the burn bushes and bomb tiles are in on the overworld. Its limited by the possibilities of the vanilla combos right now, but might get expanded eventually. This thing was a nightmare to make, so it needs lots of testing.
- Made the overworld and classic dungeon maps not have black bars in between rows when player indicators are disabled.
- Made a custom icon to replace the default GM one.
- Test build using the YoYo Compiler. Not really necessary yet since performace is very good right now, but the server will definitely benefit, so I want to make sure it works before I get that far.
- Made the randomizer addons starting seed different every time you start the program.
- Added the Start Server button to the main menu. It doesn't do anything yet though.
- Now built with GM Studio Professional, so no more annoying splash screen on startup, and the hotkeys are in the window title again.
- Added a tooltip that shows the current dungeon assignments when the mouse is over the view button.
- Added mouseover outlines to the new dungeon maps. The existing setting affects these as well.
- Added a dungeon icon for the Grumble Grumble room.
- Made horizontal and vertical dungeon door markers have their own icon sets, to reduce amount of clicks needed.
- Added a ? door icon, which is now the default, and a solid wall icon (dark lines on sides, black in middle).
- Band-aid fix for the updater being retarded thanks to GM Studio bugs. If your update says it failed, check %localappdata%\ZHelper for the file anyway. It most likely downloaded.
- Fixed the updater showing message boxes upon entering the main menu after the first time.
- Added a randomizer addon that randomizes the lost woods and hills paths. It doesn't change the exits, only the first 3 directions in each. It also doesn't update the hint messages yet.
- Added a vanilla-only version of me and half-witted's room layout randomizer to the randomizer addons. This one replaces each of the 42 'rooms' the game uses with a different room that's compatible. It only uses vanilla rooms at the moment, so duplicate room layouts may occur, although that just adds to the confusion, which is the whole point of this thing anyway :). This is different from what fcoughlin's randomizer does, in that this one actually changes the room prefabs themselves, meaning custom room prefabs can be used.
- Added the randomizer addons screen. It will be home to randomizers for a few things the existing randomizer doesn't do.
- Added the first randomizer addon, Scramble Drop Tables. It shuffles the data in the drop tables. There are still the same number of each drop overall in the tables, but they may not all be in the same group. For example, bombs could be in 2 groups instead of 1, and less likely in each group.
- Fixed a bug where 1st quest L7 was misaligned on the dungeon layouts.
- Fixed the new-style dungeon maps (D9 in particular). All of them were actually bugged, writing and reading one map higher than they should have been.
- Added classic dungeon mapping for those that prefer the old dungeon mapper. Select maps C1-C4 to use it. It works like ZH3's dungeon tracking, except it has the new icons and it supports player indicators. Automatic dungeon finding, doors, and other advanced features are not supported. There is and will be no interaction between the classic and new dungeon maps whatsoever.
- Made the dungeon finder much more efficient. Startup time has increased slightly, but it gives 20x performance improvement in dungeon tracking. As a result, the default dungeon finder delay is now 5 frames instead of 30. You can change this manually in the options.
- Fixed a bug where the 2nd quest overworld background was shown even in 1st quest.
- Added an option to disable all coordinate drawing and player indicators on the overworld and dungeons.
- Adjusted the background color of the armos icon because it was too close the overworld map background color.
- Added several new dungeon icons.
- Made the dungeon finder's guide images super dark so they're barely visible on screen now.
- Initial release of ZHelper 4. Too many changes/additons to even think about listing them all.
- Network mode will be coming once I know the program is somewhat stable and I get everything figured out for it.