Shipwright/soh/src/code
Christopher Leggett 7b08f98b8c
Dual OTR MQ and Vanilla Support (#1694)
* 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>
2022-10-16 23:07:35 -04:00
..
PreRender.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
TwoHeadArena.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
__osMalloc.c change OSMesg definition and fix memory corruptions 2022-06-04 10:09:50 -05:00
audioMgr.c LUS Cleanup: Clean up hooks system. 2022-08-03 21:12:51 -04:00
audio_data.c Big-endian support (#909) 2022-07-27 23:50:56 +02:00
audio_effects.c Big-endian support (#909) 2022-07-27 23:50:56 +02:00
audio_heap.c Removed legacy audio mode and fixed ganon sound bug (#657) 2022-07-11 22:37:39 -04:00
audio_init_params.c Removed ifdefs for audio heap sizes 2022-06-20 12:33:38 -05:00
audio_load.c Removed legacy audio mode and fixed ganon sound bug (#657) 2022-07-11 22:37:39 -04:00
audio_playback.c Phase 1: Separate ImGui Drawing From LUS (#1310) 2022-09-03 00:00:04 -04:00
audio_seqplayer.c Big-endian support (#909) 2022-07-27 23:50:56 +02:00
audio_sound_params.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
audio_synthesis.c Phase 1: Separate ImGui Drawing From LUS (#1310) 2022-09-03 00:00:04 -04:00
code_800A9F30.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
code_800ACE70.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800AD920.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800BB0A0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800C3C20.c 64-bit early draft - no audio yet 2022-05-15 01:19:02 +02:00
code_800D2E30.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800D31A0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800E4FE0.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
code_800E6840.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800EC960.c Randomizer v2 (#1065) 2022-09-21 00:50:22 -04:00
code_800F7260.c Increased initial audio pool size and fixed types 2022-06-03 14:22:48 -05:00
code_800F9280.c Phase 1: Separate ImGui Drawing From LUS (#1310) 2022-09-03 00:00:04 -04:00
code_800FBCE0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800FC620.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
code_800FCE80.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_800FD970.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_8006C3A0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_8006C510.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_80097A00.c Randomizer v2 (#1065) 2022-09-21 00:50:22 -04:00
code_800430A0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_801067F0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_801068B0.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
code_80043480.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
db_camera.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
debug_malloc.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
fault.c Linux crash handler (#1209) 2022-08-31 22:59:38 -04:00
fault_drawer.c Nintendo switch support (#935) 2022-07-25 21:11:53 -04:00
flg_set.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
game.c [#1716] Prevent infinite ammo cheat from filling bombchus unless the item is obtained (#1723) 2022-10-10 10:19:44 +02:00
gamealloc.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
gfxprint.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
graph.c [579] Add simulated input lag option (#1438) 2022-09-19 22:49:13 -04:00
irqmgr.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
jpegdecoder.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
jpegutils.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
listalloc.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
loadfragment2.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
logseverity.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
main.c Crash Handler 2.0 (#1466) 2022-09-26 19:54:25 -04:00
mempak.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
mtxuty-cvt.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
padmgr.c Feature: Crowd Control Integration (#1568) 2022-09-27 22:41:17 -04:00
padsetup.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
padutils.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
printutils.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
relocation.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
sched.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
shrink_window.c #243 Add option to disable black bars letterboxes (#376) 2022-06-11 12:07:13 -04:00
sleep.c change OSMesg definition and fix memory corruptions 2022-06-04 10:09:50 -05:00
speed_meter.c This should fix (all?) 60fps interpolation issues left. (#938) 2022-08-03 22:36:13 -04:00
sys_cfb.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
sys_math.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
sys_math3d.c Fix cylinder-tri intersection for GCC due to FLT_EVAL_METHOD (#157) 2022-04-17 11:19:45 -04:00
sys_math_atan.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
sys_matrix.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
sys_ucode.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
system_malloc.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
title_setup.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
ucode_disas.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_DLF.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_actor.c Fix navi colors in cosmetics editor (#1684) 2022-10-03 20:50:05 -04:00
z_actor_dlftbls.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_bgcheck.c Wii U support (#1097) 2022-08-14 22:57:24 -04:00
z_camera.c disable crit wiggle (#1629) 2022-09-28 20:27:07 -04:00
z_camera_data.inc Linux/GCC Support (#28) 2022-05-11 13:18:24 -04:00
z_cheap_proc.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_collision_btltbls.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_collision_check.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_common_data.c Adds beta quest Gameshark cheat. (#975) 2022-07-31 21:52:10 -04:00
z_construct.c Use tex sizes from texture rather than hardcoded values (#610) 2022-07-31 21:32:40 -04:00
z_debug.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_debug_display.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_demo.c Randomizer: Skip Cutscenes (#846) 2022-08-08 19:48:53 -04:00
z_draw.c Randomizer v2 (#1065) 2022-09-21 00:50:22 -04:00
z_eff_blure.c [Bugfix + Enhancement] Sword Trail fixes and enhancements (#1473) 2022-09-20 22:49:31 -04:00
z_eff_shield_particle.c This should fix (all?) 60fps interpolation issues left. (#938) 2022-08-03 22:36:13 -04:00
z_eff_spark.c This should fix (all?) 60fps interpolation issues left. (#938) 2022-08-03 22:36:13 -04:00
z_eff_ss_dead.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_effect.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_effect_soft_sprite.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_effect_soft_sprite_dlftbls.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_effect_soft_sprite_old_init.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_elf_message.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_en_a_keep.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_en_item00.c Randomizer v2 (#1065) 2022-09-21 00:50:22 -04:00
z_face_reaction.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_fbdemo.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_fbdemo_circle.c Update XMLs from upstream (#1448) 2022-09-18 23:29:24 -04:00
z_fbdemo_fade.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_fbdemo_triforce.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_fbdemo_wipe1.c Controller Configuration UI and JSON Config (#760) 2022-07-13 23:12:11 -04:00
z_fcurve_data_skelanime.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_frame_advance.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_game_dlftbls.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_game_over.c Randomizer v2 (#1065) 2022-09-21 00:50:22 -04:00
z_horse.c testing out item replacement (#416) 2022-07-11 20:11:07 -04:00
z_jpeg.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_kaleido_manager.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_kaleido_scope_call.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_kaleido_setup.c Add cheat for easy pause buffering (#1439) 2022-09-20 23:24:06 -04:00
z_kanfont.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_kankyo.c Support for patching DLists outside of OTR (#1696) 2022-10-12 17:20:13 -04:00
z_lib.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_lifemeter.c Add heart line length adjustment and modified magic meter anchoring (#965) 2022-10-03 09:05:29 +02:00
z_lights.c add descriptive todo for death crash bandaid (#655) 2022-07-11 21:58:31 -04:00
z_malloc.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_map_data.c Use tex sizes from texture rather than hardcoded values (#610) 2022-07-31 21:32:40 -04:00
z_map_exp.c fixes only (#1255) 2022-08-23 20:20:56 -04:00
z_map_mark.c Master Quest (#3) (#1632) 2022-09-29 19:07:48 -04:00
z_message_PAL.c [#1613] Resolve double message issue for gold skulltula tokens after you've spoken to skulltula parent (#1616) 2022-09-27 19:44:52 +02:00
z_moji.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_msgevent.c change OSMesg definition and fix memory corruptions 2022-06-04 10:09:50 -05:00
z_olib.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_onepointdemo.c [#1336] Fix issues with gFasterHeavyBlockLift (#1476) 2022-09-19 20:08:47 -04:00
z_onepointdemo_data.inc [#1336] Fix issues with gFasterHeavyBlockLift (#1476) 2022-09-19 20:08:47 -04:00
z_parameter.c Merge pull request #1769 from HarbourMasters/develop-zhora 2022-10-13 14:55:19 -04:00
z_path.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_play.c [#1712] Reset fileNum when returning to title screen and prevent saving when file = 0xFF (#1721) 2022-10-10 10:16:40 +02:00
z_player_call.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_player_lib.c Add silver/golden gauntlets to Cosmetics Editor (#1683) 2022-10-03 11:15:19 +02:00
z_prenmi.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_prenmi_buff.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_quake.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_rcp.c [zret] Port some documentation changes (#1164) 2022-08-16 21:53:28 -04:00
z_room.c [zret] Port some documentation changes (#1164) 2022-08-16 21:53:28 -04:00
z_sample.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_scene.c [zret] Port some documentation changes (#1164) 2022-08-16 21:53:28 -04:00
z_scene_table.c Randomizer v2 (#1065) 2022-09-21 00:50:22 -04:00
z_skelanime.c When testing if an animation is new, make sure we are using the loaded file pointers (#1748) 2022-10-11 18:58:28 +02:00
z_skin.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_skin_awb.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_skin_matrix.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_sound_source.c git subrepo clone https://github.com/HarbourMasters/soh.git 2022-03-22 02:51:23 +01:00
z_sram.c Dual OTR MQ and Vanilla Support (#1694) 2022-10-16 23:07:35 -04:00
z_ss_sram.c Added save filename and path to config file (#130) 2022-06-20 13:54:44 -04:00
z_view.c [zret] Port some documentation changes (#1164) 2022-08-16 21:53:28 -04:00
z_vimode.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_vismono.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00
z_vr_box.c Update XMLs from upstream (#1448) 2022-09-18 23:29:24 -04:00
z_vr_box_draw.c Use Macro for __FILE__ & __LINE__ when possible (#559) 2022-07-05 19:29:34 -04:00