<feed xmlns='http://www.w3.org/2005/Atom'>
<title>OTRExporter/extract_assets.py, branch master</title>
<subtitle>Tooling to extract assets from ROMs and build OTR archives for Ship-based ports</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/'/>
<entry>
<title>Fixes for new ZAPD (#8)</title>
<updated>2023-10-21T00:16:05+00:00</updated>
<author>
<name>louist103</name>
<email>35883445+louist103@users.noreply.github.com</email>
</author>
<published>2023-10-21T00:16:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=717ae786632e3f3e5f32a12dc0ecd86958593a8b'/>
<id>717ae786632e3f3e5f32a12dc0ecd86958593a8b</id>
<content type='text'>
* Fixes for new ZAPD

* Vertex fix

* remove MSVC Hack

---------

Co-authored-by: Nicholas Estelami &lt;NEstelami@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fixes for new ZAPD

* Vertex fix

* remove MSVC Hack

---------

Co-authored-by: Nicholas Estelami &lt;NEstelami@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Opt-in for an easy-way CMake target to create soh.otr file (#3057)</title>
<updated>2023-08-16T00:26:23+00:00</updated>
<author>
<name>AltoXorg</name>
<email>56553686+Alto1772@users.noreply.github.com</email>
</author>
<published>2023-08-16T00:26:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=9c01bfa5b2e6d0e6b7f7048a90699ace2eda3bd7'/>
<id>9c01bfa5b2e6d0e6b7f7048a90699ace2eda3bd7</id>
<content type='text'>
* use a convenient cmake target for gen soh otr

* Update generate-builds.yml

* Apply for all conditions

* grandma change</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* use a convenient cmake target for gen soh otr

* Update generate-builds.yml

* Apply for all conditions

* grandma change</pre>
</div>
</content>
</entry>
<entry>
<title>chore: move asset header generation to new ExtractAssetsHeaders target (#2705)</title>
<updated>2023-04-14T13:54:56+00:00</updated>
<author>
<name>Adam Bird</name>
<email>Archez@users.noreply.github.com</email>
</author>
<published>2023-04-14T13:54:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=f9074125431721bac705b608f47ae876d4476f85'/>
<id>f9074125431721bac705b608f47ae876d4476f85</id>
<content type='text'>
* add dedicated build target for extracting asset headers conditionally

* dont gen otr when generating headers

* simplify python array</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* add dedicated build target for extracting asset headers conditionally

* dont gen otr when generating headers

* simplify python array</pre>
</div>
</content>
</entry>
<entry>
<title>changes to the asset extraction script (#2068)</title>
<updated>2023-01-17T22:05:24+00:00</updated>
<author>
<name>AltoXorg</name>
<email>56553686+Alto1772@users.noreply.github.com</email>
</author>
<published>2023-01-17T22:05:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=b47ba463bccdadca12a8fad99563974ee8238b4a'/>
<id>b47ba463bccdadca12a8fad99563974ee8238b4a</id>
<content type='text'>
- fixes exiting with Ctrl+C on linux
- chooseROM returns Z64Rom object in addition to speed
- adds simple verbosity for inspecting roms</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- fixes exiting with Ctrl+C on linux
- chooseROM returns Z64Rom object in addition to speed
- adds simple verbosity for inspecting roms</pre>
</div>
</content>
</entry>
<entry>
<title>Dual OTR MQ and Vanilla Support (#1694)</title>
<updated>2022-10-17T03:07:35+00:00</updated>
<author>
<name>Christopher Leggett</name>
<email>chris@leggett.dev</email>
</author>
<published>2022-10-17T03:07:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=7b540df31d27d0f3dfbd4885935d94a562c74412'/>
<id>7b540df31d27d0f3dfbd4885935d94a562c74412</id>
<content type='text'>
* 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 &lt;garrettjcox@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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 &lt;garrettjcox@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Bugfix/version file creation (#1475)</title>
<updated>2022-09-20T03:36:34+00:00</updated>
<author>
<name>Dan Lilja</name>
<email>dan@danlilja.se</email>
</author>
<published>2022-09-20T03:36:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=7c3959c8c56e98c02afeceaecee3cd3974272e08'/>
<id>7c3959c8c56e98c02afeceaecee3cd3974272e08</id>
<content type='text'>
* Added creation of version file to OTRExporter

* Removed creation of version file from other places

* Made path to version file portable

* Changed spaces to tabs in OTRExporter/Main.cpp</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Added creation of version file to OTRExporter

* Removed creation of version file from other places

* Made path to version file portable

* Changed spaces to tabs in OTRExporter/Main.cpp</pre>
</div>
</content>
</entry>
<entry>
<title>[cmake] Improve OTRExporter asset extraction script, Lower required CMake to 3.16 (#1196)</title>
<updated>2022-08-16T07:34:30+00:00</updated>
<author>
<name>Zaxus125</name>
<email>109976242+Zaxus125@users.noreply.github.com</email>
</author>
<published>2022-08-16T07:34:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=4483fbe8cc50ca77e79da24f149a87dbb3de75f4'/>
<id>4483fbe8cc50ca77e79da24f149a87dbb3de75f4</id>
<content type='text'>
* supply ZAPD.out path as an argument to extract_assets.py rather than regenerating the script

Generating an entirely new script file to change a string is excessive.
Instead, extract_assets.py takes in one optional positional argument that
contains the path to ZAPD.out, the original purpose for the string
replacement.

This also removes the need for the file(CHMOD ...) command, which bumps
the minimum cmake version all the way up to 3.19.

Additionally, there was an extra script being generated in
OTRExporter/CMakeLists.txt that used the same CHMOD logic, but did not
accurately declare its minimum version to 3.19, this removes that unused
logic.

* OTRExporter: accept a rom path as an argument to extract_assets.py</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* supply ZAPD.out path as an argument to extract_assets.py rather than regenerating the script

Generating an entirely new script file to change a string is excessive.
Instead, extract_assets.py takes in one optional positional argument that
contains the path to ZAPD.out, the original purpose for the string
replacement.

This also removes the need for the file(CHMOD ...) command, which bumps
the minimum cmake version all the way up to 3.19.

Additionally, there was an extra script being generated in
OTRExporter/CMakeLists.txt that used the same CHMOD logic, but did not
accurately declare its minimum version to 3.19, this removes that unused
logic.

* OTRExporter: accept a rom path as an argument to extract_assets.py</pre>
</div>
</content>
</entry>
<entry>
<title>allow roms with spaces to be extracted (#868)</title>
<updated>2022-07-25T23:06:05+00:00</updated>
<author>
<name>Jeffrey Crowell</name>
<email>github@crowell.biz</email>
</author>
<published>2022-07-21T23:12:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=271cec1f9e3c37a2b8cc822277f274c5b099a4ce'/>
<id>271cec1f9e3c37a2b8cc822277f274c5b099a4ce</id>
<content type='text'>
using subprocess instead of os.system() is a little safer, and allows
for roms with spaces to be extraced.

i've noticed this is somewhat common in people reporting issues on
discord.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
using subprocess instead of os.system() is a little safer, and allows
for roms with spaces to be extraced.

i've noticed this is somewhat common in people reporting issues on
discord.</pre>
</div>
</content>
</entry>
<entry>
<title>Include game version in linux otr builds (#826)</title>
<updated>2022-07-18T23:33:36+00:00</updated>
<author>
<name>GaryOderNichts</name>
<email>12049776+GaryOderNichts@users.noreply.github.com</email>
</author>
<published>2022-07-18T23:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=4d985cd534a3e691bf6c2233902be5708c1d19df'/>
<id>4d985cd534a3e691bf6c2233902be5708c1d19df</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Linux/GCC Support (#28)</title>
<updated>2022-05-11T17:18:24+00:00</updated>
<author>
<name>Random</name>
<email>28494085+Random06457@users.noreply.github.com</email>
</author>
<published>2022-05-11T17:18:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/OTRExporter/commit/?id=2ed1923e441c38c0e7ac9674cf4a91e63553c01d'/>
<id>2ed1923e441c38c0e7ac9674cf4a91e63553c01d</id>
<content type='text'>
* Initial Linux/GCC support commit

* Add instructins for linux in the README

* apply suggestions by @Erotemic and @Emill

* Fix python 3.10 symlink line

* Fix func_80041E80 type mismatch (#3)

Type mismatch functions.h:664

* Makefile: clean OTRExporter/libultraship/ZAPDTR with distclean and fix CXX_FILES

* Makefile: find C/CXX_FILES automatically

* Makefile: remove ugly conditions in find commands

* cleanup _MSC_VER usage

* fix Windows build

* cleanup extraction scripts

* fix Windows build

* Fix Windows path separator issue

* fix rumble support for linux

* use glew-cmake in dockerfile

* add pulseaudio backend

* fix ZAPDTR linkage

* Check for "soh.elf" in directory (#6)

hide second button if `soh.exe` or `soh.elf` is present

* Fix hardcoded segment addresses (#5)

* fix condition

* hack lus -&gt; soh dep for ZAPDTR

Co-authored-by: sholdee &lt;102821812+sholdee@users.noreply.github.com&gt;
Co-authored-by: qurious-pixel &lt;62252937+qurious-pixel@users.noreply.github.com&gt;
Co-authored-by: GaryOderNichts &lt;12049776+GaryOderNichts@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Initial Linux/GCC support commit

* Add instructins for linux in the README

* apply suggestions by @Erotemic and @Emill

* Fix python 3.10 symlink line

* Fix func_80041E80 type mismatch (#3)

Type mismatch functions.h:664

* Makefile: clean OTRExporter/libultraship/ZAPDTR with distclean and fix CXX_FILES

* Makefile: find C/CXX_FILES automatically

* Makefile: remove ugly conditions in find commands

* cleanup _MSC_VER usage

* fix Windows build

* cleanup extraction scripts

* fix Windows build

* Fix Windows path separator issue

* fix rumble support for linux

* use glew-cmake in dockerfile

* add pulseaudio backend

* fix ZAPDTR linkage

* Check for "soh.elf" in directory (#6)

hide second button if `soh.exe` or `soh.elf` is present

* Fix hardcoded segment addresses (#5)

* fix condition

* hack lus -&gt; soh dep for ZAPDTR

Co-authored-by: sholdee &lt;102821812+sholdee@users.noreply.github.com&gt;
Co-authored-by: qurious-pixel &lt;62252937+qurious-pixel@users.noreply.github.com&gt;
Co-authored-by: GaryOderNichts &lt;12049776+GaryOderNichts@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
</feed>
