<feed xmlns='http://www.w3.org/2005/Atom'>
<title>2ship2harkinian/mm/2s2h/BenGui/MenuTypes.h, branch develop</title>
<subtitle>2Ship2Harkinian: Majora’s Mask PC port</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/'/>
<entry>
<title>[Enhancement] Alien speed modifier (#1940)</title>
<updated>2026-09-13T14:18:12+00:00</updated>
<author>
<name>Jordan Longstaff</name>
<email>JordanLongstaff@users.noreply.github.com</email>
</author>
<published>2026-09-13T14:18:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=3f51ada632e2eea7f3d95ed9ecdc804165710503'/>
<id>3f51ada632e2eea7f3d95ed9ecdc804165710503</id>
<content type='text'>
* [Enhancement] Alien speed modifier

* Clang-format</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* [Enhancement] Alien speed modifier

* Clang-format</pre>
</div>
</content>
</entry>
<entry>
<title>Bump LUS to port-maintenance (#1801)</title>
<updated>2026-07-22T02:22:35+00:00</updated>
<author>
<name>Jameriquiah</name>
<email>42100286+Jameriquiah@users.noreply.github.com</email>
</author>
<published>2026-07-22T02:22:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=65fb1b6e3cc49780057208f4050a160d1a4bdfc7'/>
<id>65fb1b6e3cc49780057208f4050a160d1a4bdfc7</id>
<content type='text'>
* bump lus to port-maintenance

* clang

* remove redundant cast

* clang again

* update lus commit</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bump lus to port-maintenance

* clang

* remove redundant cast

* clang again

* update lus commit</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add CoreAudio audio backend option (#1746)</title>
<updated>2026-06-25T13:59:29+00:00</updated>
<author>
<name>banteg</name>
<email>4562643+banteg@users.noreply.github.com</email>
</author>
<published>2026-06-25T13:59:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=ce2563a267c7b10954484adf6af277478935af00'/>
<id>ce2563a267c7b10954484adf6af277478935af00</id>
<content type='text'>
* feat: add CoreAudio audio backend option

* fix: avoid enumerating audio backends in menu</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* feat: add CoreAudio audio backend option

* fix: avoid enumerating audio backends in menu</pre>
</div>
</content>
</entry>
<entry>
<title>Increase save buffer. Again. (#1493)</title>
<updated>2026-01-23T03:31:59+00:00</updated>
<author>
<name>Garrett Cox</name>
<email>garrettjcox@gmail.com</email>
</author>
<published>2026-01-23T03:31:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=1fdc7ba6de47c80e619d4102f56ca6827c7c7c03'/>
<id>1fdc7ba6de47c80e619d4102f56ca6827c7c7c03</id>
<content type='text'>
* Increase save buffer. Again.

* Sneak in a small menu fix</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Increase save buffer. Again.

* Sneak in a small menu fix</pre>
</div>
</content>
</entry>
<entry>
<title>Tweaks to speed modifier cheat (#1464)</title>
<updated>2026-01-17T19:08:33+00:00</updated>
<author>
<name>Garrett Cox</name>
<email>garrettjcox@gmail.com</email>
</author>
<published>2026-01-17T19:08:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=5cbb0fc3e7eeabd976b2d0e049e3eead89cbfa42'/>
<id>5cbb0fc3e7eeabd976b2d0e049e3eead89cbfa42</id>
<content type='text'>
- Moved to cheats menu (removed from controller menu)
- Added BtnSelector UIWidget
- On controller menu pressed inputs will now darken to indicate they are pressed
- Simplified Movement speed cheat, combined swim &amp; walk speed and just made it one modifier instead of two</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Moved to cheats menu (removed from controller menu)
- Added BtnSelector UIWidget
- On controller menu pressed inputs will now darken to indicate they are pressed
- Simplified Movement speed cheat, combined swim &amp; walk speed and just made it one modifier instead of two</pre>
</div>
</content>
</entry>
<entry>
<title>[Enhancement] Difficulty options to tweak Swamp Boat Archery minigame (#1376)</title>
<updated>2025-12-11T21:36:36+00:00</updated>
<author>
<name>Jordan Longstaff</name>
<email>JordanLongstaff@users.noreply.github.com</email>
</author>
<published>2025-12-11T21:36:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=30a16e4b47f06b7688dd7e65daa56fbf74a18449'/>
<id>30a16e4b47f06b7688dd7e65daa56fbf74a18449</id>
<content type='text'>
* Add options to tweak the Swamp Boat Archery minigame

* Add missing include

* Adjustments to score widget

* Move health CVar to VB hook

* Change timing of score reset to before first attempt

* Add option to make Koume invincible

* Add condition to Koume's health hook</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add options to tweak the Swamp Boat Archery minigame

* Add missing include

* Adjustments to score widget

* Move health CVar to VB hook

* Change timing of score reset to before first attempt

* Add option to make Koume invincible

* Add condition to Koume's health hook</pre>
</div>
</content>
</entry>
<entry>
<title>[Audio Editor] Port Audio Options from SoH Audio Editor (#1325)</title>
<updated>2025-11-20T18:31:41+00:00</updated>
<author>
<name>Glought</name>
<email>Glought@users.noreply.github.com</email>
</author>
<published>2025-11-20T18:31:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=ddee25d7ece8a1cd87cb33c321dac202a4daa4e3'/>
<id>ddee25d7ece8a1cd87cb33c321dac202a4daa4e3</id>
<content type='text'>
* Ported Audio Options from SoH Audio Editor

*Moved "Mute Low HP Alarm" to Audio Editor -&gt; Audio Options
   Changed Cvar
   From: "gEnhancements.Sfx.LowHpAlarm"
   To: "gAudioEditor.LowHpAlarm"
*Moved "Mute Carpenter Sounds" to Audio Editor -&gt; Audio Options
   Changed Cvar
   From: "gEnhancements.Sfx.MuteCarpenterSfx"
   To: "gAudioEditor.MuteCarpenterSfx"
*Moved "Mute Crying Goron Child" to Audio Editor -&gt; Audio Options
   Changed Cvar
   From: "gEnhancements.Sfx.ChildGoronCry"
   To: "gAudioEditor.ChildGoronCry"
*Added "Disable Tatle Call Audio"
*Added "Disable Enemy Proximity Music"
*Added "Randomize All Music and Sound Effects on New Scene"
*Added "Randomize All Music and Sound Effects on Randomizer Generation"
*Added "Display Sequence Name on Overlay" and "Overlay Duration" Slider
*Added "Link's Voice Pitch Multiplier" Slider

* *Ported "AddSearchWidget" Functionally
  Enabled for Audio Editor -&gt; Audio Options

* Cleaned up some code I missed and ran clang format.

* Renamed "OnScene" Hook to "OnSceneChange"

* Made it so "Link's Voice Pitch Multiplier" slider only effects Link's voice.

* Forgot the "AudioHook.cpp" file its needed for the
"Display Sequence Name on Overlay" option.

* Moved the "Sfx" folder to the "Audio" folder.

* Removed extra line breaks between sections in "RegisterAudioWidgets()".

* Renamed "OnGenerationCompletion" hook to "OnRandoSeedGeneration"

* Changed "gAudioEditor.*" to use "CVAR_AUDIO("*") in "AudioEditor.cpp"

* Added "AddAudioSearchWidget" function
Changed all "BenGui::mBenMenu-&gt;AddSearchWidget lines to use
"AddAudioSearchWidget".

* Changed the "OnSeqPlayerInit" hook parameters type to use the "s32" Macro.

* Update BenMenu/BenGui include paths: Replaced "../../" with "2s2h/".

* Ran Clang Format.

* Added "DisableEnemyProximityMusic.cpp"
Added "VB_PLAY_ENEMY_PROXIMITY_MUSIC" enum to "GIVanillaBehavior" in
"GameInteractor.h"
"Audio_UpdateEnemyBgmVolume" is now wrapped in a "GameInteractor_Should"

* Added "DisableTatlCallAudio.cpp"
Added "VB_PLAY_TATL_CALL_AUDIO" enum to "GIVanillaBehavior" in
"GameInteractor.h"
"Audio_PlaySfx(NA_SE_VO_NAVY_CALL)" is now wrapped in a "GameInteractor_Should"

* Added "LinksVoicePitchMultiplier.cpp"
Added "Enable Link's Voice Pitch Multiplier" checkbox to Audio Editor
The "Link's Voice Pitch Multiplier" slider is now disabled when
"Enable Link's Voice Pitch Multiplier" is not enabled.
Added "VB_LINK_VOICE_PITCH_MULTIPLIER" enum to "GIVanillaBehavior" in
"GameInteractor.h"
"AudioSfx_PlaySfx" in the file "z_actor.c" in function "Player_PlaySfx"
is now wrapped in a "GameInteractor_Should".

* Removed "OnSceneChange" Hook.
Removed "GameInteractor_ExecuteOnSceneChange".
Removed "GameInteractor_ExecuteOnSceneChange(play-&gt;sceneId);" from
"z_play_2SH.cpp:OTRPlay_SpawnScene" function
Renamed "AudioEditorRegisterOnSceneChangeHook" to
AudioEditorRegisterOnRoomInitHook".

* Made Changes requested by Eblo to "LinksVoicePitchMultiplier.cpp" and
"z_actor.c"

* WIP Randomize On New Scene</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Ported Audio Options from SoH Audio Editor

*Moved "Mute Low HP Alarm" to Audio Editor -&gt; Audio Options
   Changed Cvar
   From: "gEnhancements.Sfx.LowHpAlarm"
   To: "gAudioEditor.LowHpAlarm"
*Moved "Mute Carpenter Sounds" to Audio Editor -&gt; Audio Options
   Changed Cvar
   From: "gEnhancements.Sfx.MuteCarpenterSfx"
   To: "gAudioEditor.MuteCarpenterSfx"
*Moved "Mute Crying Goron Child" to Audio Editor -&gt; Audio Options
   Changed Cvar
   From: "gEnhancements.Sfx.ChildGoronCry"
   To: "gAudioEditor.ChildGoronCry"
*Added "Disable Tatle Call Audio"
*Added "Disable Enemy Proximity Music"
*Added "Randomize All Music and Sound Effects on New Scene"
*Added "Randomize All Music and Sound Effects on Randomizer Generation"
*Added "Display Sequence Name on Overlay" and "Overlay Duration" Slider
*Added "Link's Voice Pitch Multiplier" Slider

* *Ported "AddSearchWidget" Functionally
  Enabled for Audio Editor -&gt; Audio Options

* Cleaned up some code I missed and ran clang format.

* Renamed "OnScene" Hook to "OnSceneChange"

* Made it so "Link's Voice Pitch Multiplier" slider only effects Link's voice.

* Forgot the "AudioHook.cpp" file its needed for the
"Display Sequence Name on Overlay" option.

* Moved the "Sfx" folder to the "Audio" folder.

* Removed extra line breaks between sections in "RegisterAudioWidgets()".

* Renamed "OnGenerationCompletion" hook to "OnRandoSeedGeneration"

* Changed "gAudioEditor.*" to use "CVAR_AUDIO("*") in "AudioEditor.cpp"

* Added "AddAudioSearchWidget" function
Changed all "BenGui::mBenMenu-&gt;AddSearchWidget lines to use
"AddAudioSearchWidget".

* Changed the "OnSeqPlayerInit" hook parameters type to use the "s32" Macro.

* Update BenMenu/BenGui include paths: Replaced "../../" with "2s2h/".

* Ran Clang Format.

* Added "DisableEnemyProximityMusic.cpp"
Added "VB_PLAY_ENEMY_PROXIMITY_MUSIC" enum to "GIVanillaBehavior" in
"GameInteractor.h"
"Audio_UpdateEnemyBgmVolume" is now wrapped in a "GameInteractor_Should"

* Added "DisableTatlCallAudio.cpp"
Added "VB_PLAY_TATL_CALL_AUDIO" enum to "GIVanillaBehavior" in
"GameInteractor.h"
"Audio_PlaySfx(NA_SE_VO_NAVY_CALL)" is now wrapped in a "GameInteractor_Should"

* Added "LinksVoicePitchMultiplier.cpp"
Added "Enable Link's Voice Pitch Multiplier" checkbox to Audio Editor
The "Link's Voice Pitch Multiplier" slider is now disabled when
"Enable Link's Voice Pitch Multiplier" is not enabled.
Added "VB_LINK_VOICE_PITCH_MULTIPLIER" enum to "GIVanillaBehavior" in
"GameInteractor.h"
"AudioSfx_PlaySfx" in the file "z_actor.c" in function "Player_PlaySfx"
is now wrapped in a "GameInteractor_Should".

* Removed "OnSceneChange" Hook.
Removed "GameInteractor_ExecuteOnSceneChange".
Removed "GameInteractor_ExecuteOnSceneChange(play-&gt;sceneId);" from
"z_play_2SH.cpp:OTRPlay_SpawnScene" function
Renamed "AudioEditorRegisterOnSceneChangeHook" to
AudioEditorRegisterOnRoomInitHook".

* Made Changes requested by Eblo to "LinksVoicePitchMultiplier.cpp" and
"z_actor.c"

* WIP Randomize On New Scene</pre>
</div>
</content>
</entry>
<entry>
<title>Bump LUS and OTRExporter, add null audio backend (#1289)</title>
<updated>2025-10-29T16:56:57+00:00</updated>
<author>
<name>Eblo</name>
<email>7004497+Eblo@users.noreply.github.com</email>
</author>
<published>2025-10-29T16:56:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=83921dc012588c520efe0ed8c7ac1406806543c7'/>
<id>83921dc012588c520efe0ed8c7ac1406806543c7</id>
<content type='text'>
* Bump LUS and OTRExporter, add null audio backend

* Missed an include change

* And again

* Thanks macOS

* Another one

* Bump LUS again, fixing SDL audio backend bug

* Sync LUS bump changes to merged PRs

* Bump LUS again

* Update CMakeLists.txt includes</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Bump LUS and OTRExporter, add null audio backend

* Missed an include change

* And again

* Thanks macOS

* Another one

* Bump LUS again, fixing SDL audio backend bug

* Sync LUS bump changes to merged PRs

* Bump LUS again

* Update CMakeLists.txt includes</pre>
</div>
</content>
</entry>
<entry>
<title>Port advanced resolution editor et al from SoH (#1200)</title>
<updated>2025-07-21T18:27:08+00:00</updated>
<author>
<name>Eblo</name>
<email>7004497+Eblo@users.noreply.github.com</email>
</author>
<published>2025-07-21T18:27:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=0126e4561b7adc84a9761dae369c638e4be7d403'/>
<id>0126e4561b7adc84a9761dae369c638e4be7d403</id>
<content type='text'>
* Port advanced resolution editor from SoH

Port N64 Mode from SoH
Port increased menu resolution from SoH

* Port the rest of UIWidgets from SoH

Apply clang format to UIWidgets.hpp

* Fix the Show Horizontal Resolution Field option

* Remove redundant assignment

* Remove redundant reset button, fix flag checkboxes

* Remove unused InsertHelpHoverText</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Port advanced resolution editor from SoH

Port N64 Mode from SoH
Port increased menu resolution from SoH

* Port the rest of UIWidgets from SoH

Apply clang format to UIWidgets.hpp

* Fix the Show Horizontal Resolution Field option

* Remove redundant assignment

* Remove redundant reset button, fix flag checkboxes

* Remove unused InsertHelpHoverText</pre>
</div>
</content>
</entry>
<entry>
<title>Menu Modularize &amp; MenuInit (#968)</title>
<updated>2025-05-05T22:34:55+00:00</updated>
<author>
<name>Malkierian</name>
<email>malkierian@gmail.com</email>
</author>
<published>2025-05-05T22:34:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/2ship2harkinian/commit/?id=667edb04d0f1425977f4a298aa0e37c3f99b4b87'/>
<id>667edb04d0f1425977f4a298aa0e37c3f99b4b87</id>
<content type='text'>
* MenuEntries now uses unordered_map for storage, and vector for draw order.
AddMenuEntry is now used for main menu entries (settings, enhancements, etc).
MenuInit (based off of ShipInit) added to be able to register update and init functions (init can handle widgets, new sidebars in existing menu entries, or entirely new menu entries).
Fixed top search modification to headerWidth to restore proper scrollbar functionality.
Advanced resolution options now use MenuInit to handle update and init (options still hidden in push because of framebuffer issues).

* Don't need `protected:` in BenMenu.h anymore.

* Fix header define typo.

* Fix search aggregation (was only checking first column).

* Harden index OOB for header and sidebar indices.

* Fix fullscreen checkbox.
Make slider clamping opt-out.

* Fix merge issues and change rando registration to MenuInit.

* Bit of header cleanup.

* Resolve merge errors.

* Fix LUS ref

* clang</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* MenuEntries now uses unordered_map for storage, and vector for draw order.
AddMenuEntry is now used for main menu entries (settings, enhancements, etc).
MenuInit (based off of ShipInit) added to be able to register update and init functions (init can handle widgets, new sidebars in existing menu entries, or entirely new menu entries).
Fixed top search modification to headerWidth to restore proper scrollbar functionality.
Advanced resolution options now use MenuInit to handle update and init (options still hidden in push because of framebuffer issues).

* Don't need `protected:` in BenMenu.h anymore.

* Fix header define typo.

* Fix search aggregation (was only checking first column).

* Harden index OOB for header and sidebar indices.

* Fix fullscreen checkbox.
Make slider clamping opt-out.

* Fix merge issues and change rando registration to MenuInit.

* Bit of header cleanup.

* Resolve merge errors.

* Fix LUS ref

* clang</pre>
</div>
</content>
</entry>
</feed>
