Add dockerfile for toolchain, minor internal changes #2314
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A dockerfile and compose script are added to the ASM folder to make setting up the randomizer toolchain easier. Readme files are updated to describe the process from both the command line and from VSCode's Dev Container extension. Both pipelines have been tested on Linux and Windows. It would be helpful to test on a Mac (especially on ARM) if someone has one.
I made some internal changes that should be transparent to users/devs that make it easier to reuse files in the container:
ZOOTDEC.z64
is no longer generated in the root of the repository. The randomizer caches the uncompressed ROM inASM/roms/base.z64
, which also conveniently removes the need to copy it there to compile the C/ASM patch. This required changing hardcoded references toZOOTDEC.z64
in some of the helper scripts and notes.ASM/roms/
.dmaTable.dat
is moved to this folder to facilitate this. This change creates theARCHIVE.bin
cache in this folder instead of the repository root. See the comment in Main.py#L244 for details why.Browse
buttons will attempt to use a relative path for the file/directory inputs, which are then saved as relative paths tosettings.sav
. This allows running the randomizer from either the host or the container without worrying about where the repository is saved. This is only relevant for the Dev Container extension as the unmodified docker container will only compile the C/ASM and exit. I think this doesn't affect the web version as the functions were marked electron-only, but I don't know how safe that assumption is.Some of these changes may affect the web branch. ROM patching should be tested there before merging.