* Rough mockup of LUS XML loading
* Updated code for merge
* Loading from FS support and custom DList WIP implementation
* Added current directory support to F3D and impl most of the dlist cmds
* WIP Skeleton support
* Almost done
* Rebase fixes
* Submodule updates
* HD Texture Support
* Fixes
* bump lus
* fix exporter build, header update
* soh builds
* setMesh image path cleanup
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
* Update OTRExporter/OTRExporter/Main.cpp
* Update ZAPDTR/ZAPD/ZResource.h
* Update soh/src/code/z_skelanime.c
* Update OTRExporter/OTRExporter/Main.cpp
* Fixed jpeg backgrounds and decreased icon buffer size
* Bump lus
* Increased even more the buffer because it crashes on long texts
* Removed print because sometimes the if is not triggered when the image is already byteswapped
* fix non-windows build
* fix build
Co-authored-by: Kenix <kenixwhisperwind@gmail.com>
* add hd checkbox
* Various fixes for custom model support (#23)
* Some fixes
* Updated LUS Version
* Fixed issue with Link Skirt on pause menu
* Added CVar for custom link model changes
* Fixed headers
* Additional header fixes
* Tweaks
* Unload HD game assets on scene transition. (#16)
* Unload game assets on scene transition.
* Bump LUS
* Unloads all HD assets on scene transition.
* Only unload hd assets if hd assets are turned on.
* Fixes issues on toggling between HD and non HD assets.
---------
Co-authored-by: briaguya <briaguya@alice>
* fix: actually load hd debug font (#27)
* fix: actually load hd debug font
* toggle debug text correctly
---------
Co-authored-by: briaguya <briaguya>
* Yes. (#28)
* Merge branch 'develop' into dev-to-ghost
* HD Skeleton Swapping and Language Fixes (#32)
* Yes.
* HD Skeleton Swapping and Language Fixes
* Test
* Fixed issues with ganon cape (#34)
* Fixed Bongo Bongo Crash (#35)
* Added HD Assets Toggle (#37)
* Ivan the Fairy - Coop Mode (#36)
* wip
* hookshotable ivan
* added hookshot item
* new items & changes & fixes & restored navi
* farore, din and nayru's spells are done
* fixed slingshot & bow
* added more items supported
* done with all main items
* bug fixes & ready
* added imgui button
* wip
* hookshotable ivan
* added hookshot item
* new items & changes & fixes & restored navi
* farore, din and nayru's spells are done
* fixed slingshot & bow
* added more items supported
* fix own dungeon items on shuffled boss rooms (#2683)
* bump lus (#2692)
* fix: lowercase package names for vcpkg (#2693)
vcpkg was throwing an error `error: invalid character in package name (must be lowercase, digits, '-')`
this updates our calls to `vcpkg_install_packages` to use lowercase package names instead of uppercase
* fix death mountain cloud in rando (#2691)
* Fix: Switch Age No Longer Reloads Start Room (#2679)
* [Reduced Clutter] Disable Hot/Underwater Warning Text (#2684)
* Disable Warning Text
* Moved to Reduced Clutter
* done with all main items
* bug fixes & ready
* fix: process roms in consistent order (#2696)
* chore: move rando savefile setup and document flags (#2697)
* remove rando save init from sram
* move rando savefile init logic and set more flags
* document flags for rando save creation
* Fix: Use correct fps value for frame interpolation with match refresh rate (#2694)
* Fix: Kak GS placement on construction site (#2695)
* added imgui button
* addressed kenix's comments
* fixed useless null
* added rupee dash mode in extra modes
* changed menu position
---------
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com>
* LUS Scancodes (#42)
* Added HD Assets Toggle
* Switched out SDL for LUS scancodes
* Ivan tweaks (#45)
* Magic consumption slowed down;
Bosses now affected by Ivan's Din spell
* Adjust magic timer
* clean up imgui
* model fixes/improvements (#50)
* replace `gUseCustomLinkModel` with custom resource check
* handle adult/child
* bump lus
* fix model switching with tab
* use lus main
* fix carpet man (#52)
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
* get ship model and lus texture into soh.otr, use `gAuthenticLogo` to toggle between ship and authentic (#55)
* Use libultra features for CPU-modified textures (#40)
* Use libultra features for CPU-modified textures
* Comment
* bump lus on ghost (#58)
* fix: properly use `Interface_LoadActionLabel` to display start button text (#61)
* Changes hd -> alt for texture replacement. (#65)
* Changes hd -> alt for texture replacement.
* Renames variables in gfxprint for hd -> alt change.
* Update soh/soh/resource/type/Skeleton.cpp
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Fixes kaleido dungeon maps (#67)
* skeleton stuff (#69)
* comment out wii u build (#70)
* bump lus (#71)
* Rework readme (#72)
* Update README.md
* docs
* put custom music docs somewhere
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* dark/light title image
* lus
* Update README.md
* Fixed vanilla minimap (#73)
* Fixed vanilla minimap
* Workaround for pulsing SD maps with non-broken HD maps.
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Skeleton fix fixed (#75)
* WIP skelton patcher fix
* Fixes skeleton reference change.
* Adds const back to name in ResourceMgr_LoadSkeletonByName
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Kenix <kenixwhisperwind@gmail.com>
* Fixes z_message_otr memory leak.
* Update soh/soh/z_message_OTR.cpp
* Update soh/src/code/game.c
* docs: add how to find otr files to switch instructions (#78)
* bump lus (#79)
* comment out RegisterBlendedTexture in king d (#80)
---------
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: KiritoDv <kiritodev01@gmail.com>
Co-authored-by: briaguya <briaguya>
Co-authored-by: Ralphie Morell <stratomaster64@gmail.com>
Co-authored-by: MelonSpeedruns <melonspeedruns@outlook.com>
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com>
Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com>
Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: Lywx <36680385+KiritoDv@users.noreply.github.com>
* save build version to savefile
* adjust rando hash icons to use fade in/out
* add dialog message support on the file select screen and display rando version warning
* remove duplicated message functions and use stubbed play state instead for rando warning
* add major/minor/patch version saving to file and compare against
* use strncpy and memset for build version
* don't show rando warning one copy/erase screens
* review feedback
* Add german and french translations for rando warning
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
---------
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* add loadgame/exitgame GI hooks
* implement loadgame/exitgame hooks in game code
* move entrance tracker data lifecycle to hooks
* update cosmetic editor to update onloadgame hook
* fix entrance init and entrance tracker not working properly when no spoiler log is loaded
* fix rando adult trade spoilable items reverting when no spoiler log loaded
* Add enhancement for dog following you everywhere
* Persist dogParams to save file
* Make doggo float in water
* Wrap change in cvar condition and update cvar usage
* Finish translations for Map Select
* First Pass
* TWEAK: Add back Japanese as default to conserve vanilla
* TWEAK: replace some array with structs + some translations
* TWEAK: loading messages [TODO: proper translations]
* TWEAK: forgot to push z64.h for loading messages + translated scene type
* TWEAK: spacing
* TWEAK: comment
* TWEAK: Small german OPT position
* TWEAK: german typo
* TWEAK: translation to cutsceneLabels
* TWEAK: Nabooru's name + Lairs
* TWEAK: Updated Cvar to new way to call them
* ADD: German
* Debug localization
* TWEAK: Age
They are noted as a flag thingy and not a literal age
* Tweak: Frogot the Great Fairy
* TWEAK: adressed comment
Co-authored-by: Amaro Martínez <xoas@airmail.cc>
* Cosmetic Editor v3
* Workaround for cvar_clear not working correctly
* Nest RGBA values under Value key
* Implement arrow cosmetics
* Implement keese cosmetics
* Tweaks to life meter
* Implement file choose color
* Remove old title fire colors
* A few more silly things
* Fix from upstream pulls
* Fix hilts and sword during ganon cutscene
* Add slingshot
* Add metal trap and red ice
* Add iron knuckles cosmetics
* Add navi cosmetics
* Attempt to fix linux error
* adjust some comments and alignment
* Implement trails cosmetics
* Implement charged sword spins
* Comment out options that haven't been implemented
* Fix exploded rupee color in shooting gallery
* Add two silly options
* Add comments and minor changes from feedback
* Adjust comment about boomerang gem
* Gracefully handle chest textures missing
* First round of upstream updates and commenting patternss
* Renames from z64player
* Renames from z64save
* Undo changes to legacy save struct
* Add missing reference from entrance rando
* Fixes from stat tracker
* More tweaks
* Adds most visuals and interactions for quest select menu.
* "Scrolling" menu, adds remaining sub/title textures, language support
* Tweak: ENG, FRA, GER title to match the original style
* ADD: Randomizer tex
* TWEAK: Randomizer ZAPD extension format
* Adds control stick prompts to the "scrolling" menu.
* Adds third entry for Randomizer.
* Bold text on randomizer subtitle.
* Ensures the game won't allow selecting an unsupported quest.
* Makes save files be created from the quest menu selection.
* Removes the master quest and randomizer checkboxes (no longer needed).
* Removes lock on MQ-only rando.
* Skips quest select if only one quest is playable.
* Adds ability to back out of quest select menu
* Show seed icons while Randomizer is selected on Quest Select Menu.
* Fixes custom hud colors and d-pad navigation.
* Implements backing up from name entry to quest select.
Also implements backwards rotations on the file select screen.
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* Add toggle option for walk speed modifiers
* Preserve toggle status between scene transitions
* Apply suggestions from code review
renaming from `gSpeedToggle` to `gWalkSpeedToggle`
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Fixes a few bugs I introduced for MQ file select screen.
- MQ Saves could not be loaded while only an mq otr is present, because `requiresOriginal` was true when `gSaveContext.mqDungeonCount` was less than 12. That value only ever gets set for rando saves, so I added a check for the rando flag to that conditional.
- The rando tag was not getting grayed out with the rest of the save file.
- Some necessary meta info wasn't getting loaded when the randomizer CVar was off. Removed that check so that the rando save data always gets loaded during InitMeta. That way the amount of mq dungeons can be checked for validity with the loaded set of OTRs even if randomizer isn't enabled.
* i not 1
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Changes OTR Extraction to have specific mq and nonmq paths.
Also updates the game to load resources according to whether or not
Master Quest or Vanilla is loaded.
* Removes unneeded code from the last commit.
* Fixes some weird formatting in ZRom.c
* Loads oot-mq.otr and patches oot.otr on top, if both are present.
If only one or the other are present, it becomes the only and main OTR.
* Adds ImGui Logic for whether or an MQ Checkbox.
Checkbox checked only specifies whether new saves should be MQ or not.
Checkbox is disabled or force-enabled according to which OTRs are loaded.
Also as a necessity includes tracking what game versions have been loaded
from the OTRs.
* Adds MQ settings logic for Randomizer's ImGui menu.
* Writes Master Quest dungeons to the spoiler log
* Loads MQ Dungeons from spoiler, persists in save, and loads when appropriate.
* Adds logic to prevent loading or creating incompatible rando saves.
* Fixdes some linux build issues and new rando save issues
* Makes appimage create both vanilla and mq otrs
If either rom is present, it makes the corresponding OTR. If both are present,
it will make both. If one OTR is present but both roms are present, it will
create the missing OTR.
* Makes it so a randomized save file will not be marked as MQ.
* Refactors to load all OTRs from MainPath or a specific list.
Also adds the ability to take a std::unordered_set of hashes to
validate each OTR's version file against.
* Fixes a syntax error
* Makes ExtractAssets output Vanilla and MQ OTRs if both roms are present
* Fixes asset generation bug.
* Partially working fix for dual OTR extract_assets
Currently the cmake ExtractAssets target will return with a 1 if you
only end up exporting one type of OTR isntead of both. Haven't found
a great way to only attempt to copy a file if it exists from within
cmake. It does actually correctly copy the OTR that is generated,
despite the error from copying the other one.
Pushing as is for now but will keep investigating.
* Adds oot-mq.otr to the gitignore.
* Makes ExtractAssets not fail on only one rom/OTR.
* Removes PatchesPath from the constructors requiring OTRFiles vector.
* Renames OOT_UNKNOWN to just UNKNOWN to remove OOT specific reference.
* Removes randomizing MQ Dungeons and re-disables MQ rando.
Doing this so the PR can get merged quicker with just the Dual OTR
support and won't need to wait on rando logic to be updated. That
will happen in another PR directly after the merge.
* Update mac startup script for dual otr
* Update soh/macosx/soh-macos.sh
* Update soh/macosx/soh-macos.sh
* Update soh/macosx/soh-macos.sh
* Implements new BinaryReader to fix Linux build issue.
BinaryReader itself comes from https://github.com/Moneyl/BinaryTools
I added a wrapper to adapt it to the ABI from ZAPD's Binary Reader and
add Endianness checking. I also had to copy a handful of other bits and
pieces from ZAPD to make it all function as expected.
* A few edits to the updatream BinaryReader to compile it on Linux.
* Adds the Endianness to the first byte of the version file.
* Fixes Jenkins
* Addresses some of Kenix's comments
* Renames `ReadNullTerminatedString` to `ReadCString`
* Refactors Archive::LoadFile into a private method with more arguments.
* Removes BitConverter and extends existing endianness.h instead.
* Fixes an endianness issue with the version file.
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>