12th January 2023 - TMCR v0.7.0_alpha_rev1 (Test Build)
Changes since Christmas Test Build:
Randomizer UI (User Interface):
New Features:
BPS Patches:
Setting Organization:
Tooltips:
Randomization Retries:
Logging:
Shuffle Options:
Main Settings:
World Settings:
Logic Settings:
Other Settings:
Cosmetic:
Game Features:
New/Changed Features:
Previously seen Features:
Randomizer Core:
Logic File Format Changes:
BPS Patching:
Logging:
Randomizer CLI:
Misc.
Known Issues:
Plans for Next Testing Build:
Other Plans Before 0.7 Release:
Randomizer UI (User Interface):
We have a completely new UI! The new UI takes heavy inspiration from Wind Waker Randomizer and is generated based on the logic file supplied.
New Features:
BPS Patches:
- You can now save a patch after creating a randomized ROM directly from the randomizer! This can be found on the Seed Output page and can be done by clicking the button “Save BPS Patch”. These patches can be shared with other people to share your seed!
- You can create a patch from a patched ROM so you can share it. This is done from the General page. It requires an EU Donor Rom.
- You can patch a ROM on the general page as well. It requires an EU Donor Rom and a BPS Patch and will output a patched ROM.
Setting Organization:
- The randomizer now has support for multiple tabs! Settings are grouped into tabs based on the logic file.
- Settings also now have groupings for the new UI. Settings are grouped according to the logic file.file.
Tooltips:
- The randomizer now supports tooltips! Tooltips provide descriptions of settings and are displayed when you hover over the text on a setting.
Randomization Retries:
- You can now specify a number of times to retry randomization if randomization fails. This is especially useful for complex setting combinations that cause randomization issues.
Logging:
- The new randomizer uses logging to make debugging issues easier. If you encounter any issues with the randomizer, please click “Logging” and then “Write and Flush Logger” to write out the log data. A new channel in the discord, “#rando-issue-logs”, has been created for you to publish these logs to.
Spoiler Log Output:
- Got rid of the spam of dummy locations used for resembling dungeons with elements, music, etc. from the spoiler, so the spoiler is much smaller and easier to read now.
Shuffle Options:
Many settings that were previously available are still around but in a new location, either combined with newer settings or split into different settings. Make sure to read the new Tooltips for a full description of what the setting does. As stated in the UI changes, settings are sorted by which window tab they can be found in, and also settings of a similar nature are combined into groups. Some older settings can still be found but you will just have to have a look through the tabs to find which one it is in.
Main Settings:
- Keys Split: `Small Keys`, `Big Keys` and `Maps/Compasses` get their own settings.
- `Vanilla` (Unshuffled), `In Dungeon` (Standard), `Removed` (Keasy), `Anywhere` (Keysanity)
- `Regional Items`: Dungeon items can be found in the vicinity of Dungeons
- `Inter-Dungeon Items`: If items are shuffled `In Dungeon` then they are shuffled to any dungeon, not just their own.
- NonElement Dungeons more options:
- `Standard`
- `Unrequired` (No items from this dungeon are needed to beat vaati)
- `Unrequired + Regional` (The dungeon as well as the vicinity are unrequired)
- `Barren` (Only junk can be found in this dungeon)
- `Barren + Regional` (The dungeon as well as the vicinity are barren)
- `Element shuffle` is an independent toggle from this, however if it is enabled then the above options are disregarded. Also if `Dungeon Requirement` is set to 5 or 6 dungeons then the above options are also disregarded.
- Figurine Adjustment: Instead of `Extra Figurines` it now asks for `Total Figurines`
- `Heart Pieces and Containers` Shuffle: selected by default.
- `Obscure Locations` split into 3 different settings: `Special Pots`, `Dig Spots`, `Underwater spots`
- `Golden Enemies`: Golden enemies have randomized items.
- `Sanctuary Pedestal`: used to be in the DHC options but is now separate, still functions exactly the same and requires `Open DHC` to be enabled.
World Settings:
- `Open World`: actually works this time.
- Fusions Split: `Gold`, `Red`, `Blue` and `Green` Fusions get their own settings.
- `Removed` (Closed).
- `Vanilla` (Kinstones are shuffled into logic).
- `Combined` (All fusions of that color ask for a kinstone of the same shape, all kinstones of that color are combined into the same shape).
- `Completed` (Open).
- Additional Fusion Settings:
- `Defickle`: Makes NPCs always offer a fusion if they have one available
- `Show Map`: Always display the map after the fusion cutscene even if the cutscene is skipped.
Logic Settings:
- `No Logic`: Does what it says on the tin.
- `Items can lock themselves`: not very effective in its current implementation but it works sometimes.
- Tricks: Special logical requirements that are skill/knowledge dependent.
- `Blow Dust`, `Crenel Mushroom`, `Light Arrows`, `More Weapons`, `Guard Skip`, `LikeLike Cave`, `Crenel Beam`, `DownStrike Beetles`, `Dark Rooms`, `Cape Extension`, `Lake Minish`, `Swim to Cabin`, `Cloud Sharks`, `Palace Jump`, `Palace Pot Later`, `DHC Canon strat`, `DHC Blade Puzzle`, `DHC Switch Spin`, `Fortress Pot`. Check the Tooltips for more information.
Other Settings:
- `Fun Junk`: Adds some fun useless items to replace junk items in the pool.
- `Maximum Health`: Limit your maximum health for an extra challenge, see if you can beat vaati with only 7 hearts like the speedrunners.
- `Hero Mode (WIP)`: Work in progress, aim will be to disabled heart/fairy drops. Currently only enables the following option. WARNING: DO NOT ENABLE WITH TIMED OHKO.
- `Damage Multiplier`: Requires `Hero Mode (WIP)` enabled, set a multiplier to the damage received by link for an extra challenge.
- `Random Bottle Contents`: Bottles will start out filled with various different contents, see if you can find the butter.
- `Shy Fairies`: Fairies in Bottles do not revive you from death.
- `Homewarp`: Use the Sleep option in the pause menu to respawn in Link's bed.
- `Minish Dash`: Can use boots while minish sized.
- `Firerod`: added `Start with` and `Shuffle` options.
Cosmetic:
- Music: `No Background Music` option added
Fun fact: The logic file has almost doubled in size due to the new features added. We are working on a new implementation that will cut this down again.
Game Features:
New/Improved Features:
- New version number on the File Select.
- Spoiler Log overhaul: Locations are in a more understandable order, Names are easier for users to understand which location it refers to.
- Credits additions, complete the game and have a look at what is added.
- Refill Hearts and Fairies are shuffled into the item pool as junk items (removed if `Hero Mode (WIP)` is enabled).
- Traps have more disguises, these are smart and adapt to the settings you play on.
- Any Fusions set to `Vanilla` will require you to reach the fuser and also have enough kinstones of that type so that you cannot “waste” them under the worst case scenario.
- Any Logic errors pointed out by discord members have been addressed.
- Currently a very crude system is used whenever `Big Keys` are set to `In Dungeon`, this makes seeds unlikely to generate, many seeds have to be attempted to find one that will generate a seed.
- The old `Disable Glitches` option has many gameplay issues with it, it has been defaulted to off and renamed `Prevent Speedrun Glitches` to avoid confusion.
Previously seen Features:
The following changes found in Deoxis’ and Catobat’s Forks have been ported in:
- Sword Clones now have a manual selector, press select while hovering over the Sword icon in the pause menu to change the number of clones you want to create (depending on how many sword upgrades you have).
- Dojo Tutorials skipped.
- Café Follower/Charm visual bug fixed.
- Tingle Trees torches can now be lit with the lantern to activate the ladder.
- Random Bottle Contents can be seen if they are in visible locations.
- Press Select to use Ocarina.
- Getting a progressive item with Plentiful Item Pool, when you are already maxed, will still tell you what you collected.
- Clone amount is no longer preset, press select on the pause menu while hovering over the sword to adjust the amount of clones you want to create.
- Fixed the `Đig Butterfly` display.
Randomizer Core:
The randomizer is now decoupled! There is now a randomizer core that is able to be run on both windows and linux! This also means that we can have a CLI (Command Line Integration) and more importantly a web randomizer! A web randomizer is still tentative.
Changelogs will describe any changes made to any of the 3 applications in the randomizer (Core, UI, or CLI) under their header. Logic file format changes will be included under core.
Logic File Format Changes:
- All logic elements (flag, dropdown, numberbox, colorpicker)
- Added the fields (Setting Group) and (Tooltip Text) to each element,
- Setting group defines what group the setting will appear in on the UI
- Tooltip Text is a description of the setting that will be displayed when the user hovers over the element, or in the CLI that is displayed when a user edits an option.
- Each element has (Tooltip Text) added to them
- For dropdown tooltips 2 newlines are placed between descriptions for each setting
- Added a parameter for default value. This value is used if no other value is supplied.
BPS Patching:
- There are 2 ways to create BPS Patches in the randomizer now: after randomization and from a patched ROM
- You can also now patch a vanilla EU ROM with a BPS Patch. This requires a BPS Patch and a donor ROM to be supplied.
Logging:
- Removed any use of writing to the console from the Core for a logger instead.
- The logger has the following logging commands:
- Log Info - a message
- Log Warning - an error occurred but it isn’t critical and randomization will continue
- Log Error - an error occurred and the randomization stopped
- Log Exception - Log Error except also has a stack trace for debugging purposes
- The logger has the following commands to publish and flush
- Flush - Removes all cached logs from the logger
- Publish - Writes all logs to the destination output path
- Moving forward any error reports will require the logger output to be sent to make bug fixing easier
Randomizer CLI:
- Due to the refactor to the randomizer core, we now have an interactive CLI version of the randomizer! This version can be run on windows or on unix systems. We recommend using the UI on windows unless you are creating a bot. We will not be publishing a detailed changelog for the CLI since it is still very much in early testing stages, however it is fully functional and supports most commands currently supported by the UI.
Misc.
Known Issues:
Here are some, check the pinned messages in the forum post for an updated list.
- Tooltips disappear after 30 seconds. This is a limitation of Windows Forms and unless we migrate to a different UI framework this will sadly not change. You can show the tooltip again by moving your mouse off the text and back on.
- Setting windows scale to higher than 100% will break the UI layout.
- Currently a very crude system is used whenever `Big Keys` are set to `In Dungeon`, this makes seeds unlikely to generate, many seeds have to be attempted to find one that will generate a seed. The same issue exists with Non Element Dungeons set to anything other than `Standard`.
- Setting Dungeon requirements to 5 or 6 breaks everything.
- The old `Disable Glitches` option has many gameplay issues with it, it has been defaulted to off and renamed `Prevent Speedrun Glitches` to avoid confusion.
Plans for Next Testing Build:
All plans are out of the window atm, more info later. Nothing here is applicable anymore.
- Setting Strings v2
- Fully implement logging
- CLI upgrade from Proof of Concept to Alpha
- Setting Presets
Other notes:
- More Commenting to provide context for what is done in sections of the logic.
- All logic locations explicitly state their original item now (if they have to be replaced with another item then a comment is added).
- Helpers have been made for each fusion and are looked at by what they open.
- Kinstones are removed from the pool by default and then the number added in reflects the number of fusions available (based on fusion settings for the other colors).
- Some steps have been taken for the next stage of feature implementation: `Non-Progressive Items`, `Pedestal listing requirements`, `Items Collectable from a distance`, `Cucco game rework` and Expanding the `Open World` setting are next on the agenda, once all bugs have been resolved in this build.
- An elegant method of toggling any specific location to have junk is in the works.