* Migrate CI to Github Actions (#2740)
Changes the CI system from Jenkins to Github Actions (GHA) as discussed on discord.
I tried to adapt the original jenkinsfile as I could.
One major difference from the old system is each version will now be built in parallel instead of sequentially.
Also, the mapfiles will be uploaded as an GHA artifact to the Action workflow. I think having them easily available would be nice.
This specific approach to handle GHA for decomp projects was adapted from the one used by the GC/Wii community. It is documented here https://github.com/encounter/dtk-template/blob/main/docs/github_actions.md
There's a writeup about this adaptation for N64 projects [here](https://github.com/AngheloAlf/drmario64/pull/19).
* Rename generate_patch_from_gha -> gha_fix_bss_and_generate_patch
* Make check formatting always on the full repo
* ruin z_fishing bss for CI testing purposes
* fix not passing VERSION to tools/gha_fix_bss_and_generate_patch.sh
* debugging gha_fix_bss_and_generate_patch.sh
* fix the debugging...
* git config safe.directory
* rm debugging stuff from gha_fix_bss_and_generate_patch.sh
* fix_bss gha-side machinery, attempt 1
* fix1
* fix2
* debug1
* checkout repo in merge_bss_fixes job
* fix3
* fix4
* fix5
* some prettify
* apply_fix_bss_patches.py complete
* fix6
* generate_patch.sh is back
* apply fix bss changes from gha! it works!
* generate_patch.sh suggestion
* ruin bss again for testing
* unruin bss
* Update .github/workflows/format.yml
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
* update matrix version list
* finalize apply_fix_bss_patches.py
---------
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
* Macro-ify access to pauseCtx->playerSegment regions.
Using macros to indicate which region in the player segment is being
accessed makes the memory layout more obvious and indicates the
intended level of memory ownership, particularly in the case of the
texture image at the start of the segment.
* Add clarifications for gameplay_keep details
* Uniform macro name for the render texture
* Comment
* Finish `EnExRuppy` documentation
* Rename throw distance field
* Move comments to enum type
* Use `EnHeishi1` type for guard
* Add comment on `EnHeishi1` supposition
* oot-gc-eu-dbg-proto OK
* add gc-eu-dbg-proto to readme
* mention overdump trimming for all debug roms
* rename gc-eu-dbg-proto to gc-eu-dbg-2
Rationale: first version to make it into decomp (which should also be the first one that surfaces) gets an un-numbered version name, then the second version gets -2, and so on
Due to the layout of the pitch_frequencies lookup table, note values
computed in extraction were reflected around middle C (midi note
number 60). This didn't matter for matching, values would successfully
roundtrip. However when using samples in external programs or
converting soundfonts to standard formats the note values would lead
to incorrect playback of sounds. This change corrects the note values
so that external programs correctly infer the pitch of the sound when
played at a particular MIDI key.
The present changes are a direct copy-paste from https://github.com/zeldaret/mm/pull/1850
This fixes building on macos due to a kinda specific issue with Apple clang.
When trying to build on Macos (specifically MacOS 12, Monteray with Apple clang 13.0.0 (clang-1300.0.29.30), idk if other versions have this issue too) `make` stops with the following error from `atblgen`:
```
Failed to match line 1: ""
regexec error: "regexec() failed to match"
Error: Malformed build/n64-us/assets/audio/sequence_order.in?
```
`atblgen` makes the assumption that the `sequence_order.in` file has no extra data, spaces, empty lines, etc. but the file somehow ends up having empty lines between each line on macos.
This file is created by using the C preprocessor to process `include/tables/sequence_table.h`.
In normal circumstances this file should look like this snip,
```
(Sequence_0,NA_BGM_GENERAL_SFX)
(Sequence_1,NA_BGM_AMBIENCE)
(Sequence_2,NA_BGM_TERMINA_FIELD)
(Sequence_3,NA_BGM_CHASE)
(Sequence_4,NA_BGM_MAJORAS_THEME)
```
but it ends up looking like this instead
```
(Sequence_0,NA_BGM_GENERAL_SFX)
(Sequence_1,NA_BGM_AMBIENCE)
(Sequence_2,NA_BGM_TERMINA_FIELD)
(Sequence_3,NA_BGM_CHASE)
(Sequence_4,NA_BGM_MAJORAS_THEME)
```
which `atblgen` doesn't like.
I believe this happens because there are lines with comments between each macro in [`sequence_table.h`](https://github.com/zeldaret/mm/blob/0877ce4adf28a8e73e05c3c58682273b8bf28749/include/tables/sequence_table.h) and for some reason this Apple clang version decided to preserve those empty lines
The fix just makes `atblgen` skip empty lines.
I threw `atblgen` to valgrind to check the fix was working as intended and noted a bunch of memory that was being free before exit, so I fixed them.
I also noted the tools/audio makefile was not using `OPTFLAGS` when building those tools, so I fixed that too.
* Make bool return values of SkelAnime_Update and LinkAnimation_Update clear
* formatting: empty line after decl
---------
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* Assets system: format extracted actor params (and EnDoor params)
* and actor list too...
* and actor list required inclues too...
* ENDOOR_PARAMS_GENERAL, ENDOOR_PARAMS -> ENDOOR_PARAMS, ENDOOR_PARAMS_NODATA
* Read WAV SMPL chunks for note info when INST chunks are not available
* Populate the SMPL chunk on conversion to wav
* Properly handle unaligned (odd) WAV chunk sizes
* Commit and split gameplay_keep
* Remove debugging bits
* format
* bss
* merge gameplay_keep_0x400 into link_textures
* Name some unused NTSC stuff
* Rename files for some of the newly named unused NTSC stuff
* name more gkeep files
* format
* spin_attack
* name fish anims files
* name some eff_ files
* name a bunch more files
* Add underscore in not-final names
* cleanup limb enum names (remove g prefix)
* split gameplay_keep_0x34020.c into gBugCrawlAnim.c + bug_skel.c
* door.h -> door_skel.h
* gArrowNAnim -> gArrowN_Anim
* split arrow_anims into gArrow1_Anim + gArrow2_Anim
* fix merge
* bss
* bss
* Fix bss
---------
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
* Commit code assets
* Have different ifdefs
* Move to code files
* Missed an include
* Prevent code assets from having their source unnecessarily written