1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 23:36:22 +00:00
Decompilation of The Legend of Zelda: Ocarina of Time
Find a file
petrie911 6ce382bc8d
Morpha (ovl_Boss_Mo) (#438)
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* it begins

* more functions

* another match

* starting documentation

* the big function works. also two more matches

* small fix

* data cleanup

* removed .s

* match with player

* inching closer to matching

* two more matches. almost there

* OH MY GOD IT MATCHES

* cleanup: part 1 of infinity

* named a bunch of stuff

* Naming particle fields

* terminal commas

* terminal commas

* small enum fix

* added description of droplet widths

* merge

* updating

* Gfx

* vt

* xml

* bgcheck

* more on objects

* unused stuff

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "44f5d7cb9"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "44f5d7cb9"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "6f874af4a"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "6f874af4a"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* object names

* fixes

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "6f874af4a"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "6f874af4a"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "0305ec2c2"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "0305ec2c2"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* ZAPD works

* .s

* merge

* starting work

* more stuff

* builds OK

* first pass

* PR fixes (Louis)

* Bg_toki_hikari all functions matching (#781)

* starting toki_hikari

* func_808BA018 matched and some work on other func

* init and draw matched, one to go

* matched final function, removed ASM, updated spec

* adding suggested changes

* Volvagia (ovl_Boss_Fd) and related actors (#352)

* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* Lots of functions matched. Some big ones are close.

* Five left unmatched, one close.

* Merged data and decompiled the giant function into something readable. Its branch structure has yet to be matched.

* Three unmatched, one essentially matched, the rest matched.

* More fixes.

* Documented more of the structure and cleaned up a bit.

* BossFd2, BgVbSima, and EnVbBall matched and documented

* Also removed unneeded .s files

* And need to name EnVbBall's functions

* give this a shot

* fix conflict

* one more try

* removing darkmeiro changes

* and again

* now OK from make clean

* minor cleanup

* One more matching function for BossFd

* which means it doesn't need its .s

* splitting

* splitting

* splitting

* forgot some .s

* fancy new names

* fancy new names

* trying again

* sneaky .s files

* sound effects and some hex to decimal conversions

* Sound effects and static variable cleanup

* format.sh and clean up static variables

* sfx and formatting

* ZAP and cleanup

* small cleanup

* cleanup and ZAP

* ZAP

* looking at the giant function again

* looking at the giant function again

* Only the big function left.

* Those .s files aren't mine, officer

* float literals might be fixed. regalloc still a nightmare

* almost done with the big function

* should make now

* not much of a change

* all functions match. rodata somehow doesn't.

* forgot some things

* lots of cleanup

* and a little more

* small error

* large cleanup. Also BossFd has function names and inlined variable declarations

* still more cleanup

* the quest for 0.1f continues

* forgot to put NON_MATCHING back in

* Data structures fully documented. Still more cleanup.

* DECR now works with BossFd2

* should match now

* cleanup

* small cleanup

* cleanup and names

* tiny thing

* particles and headers and stuff

* now with more enums

* merge

* test

* end test

* update

* cleanup

* object 2

* object 1

* doc object_fd2

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "6f874af4a"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "6f874af4a"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo.git"
  commit:   "2f68596"

* formatting

* .s

* merge actor

* vertex arrays

* a little more

* formatting

* merge opd

* fixed damage check

* cleanup

* fixes

* effect struct

* review

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: fig02 <fig02srl@gmail.com>

* fix mistake in z_bg_hidan_hamstep (#771)

if you're just going to close this pr just wait a week and review it then.

* ovl_En_River_Sound 1 non-matching (#786)

* ovl_En_River_Sound

* Implement review suggestions, run through clang-format

* Responding to PR comments

* Use CHECK_QUEST_ITEM, run through clang-tidy.

* EnTp, 1 nonmatching, and object_tp (#782)

* Data imported, 8 easy functions matched

* Init only remaining nonmatching, data in

* some renaming & fiddling with Init, still nonmatching

* fix colours

* Init still not matching

* Decompile object_tp

* renames

* Rename func_80B20DE0

* Horrible new idea

* Known equivalent, docs next

* Another attempt

* Finished naming in object_tp

* Named functions, more enums

* DrawBridge -> Drawbridge

* skulltulla -> Skulltula

* Name almost all struct variables

* Named most of the temps

* delete asm

* spec

* Missed data file, whoops

* Review

* More review changes

* cleanup en_dha (#787)

* Set __FILE__ in asm_processor (#793)

* Set __FILE__ in asm_processor

* bss fix

* Update to upstream version

Co-authored-by: zelda2774 <zelda2774@invalid>

* ovl_Efc_Erupc OK (#773)

* a few good dead Gfx_TwoTexScrolls

* EfcErupc OK, mostly documented

* review

* remove fake match

Co-authored-by: Fig02 <fig02srl@gmail.com>

* z_bg_mizu_movebg and object_mizu_objects (#747)

* OK a few functions

* BgMizuMovebg_Draw OK, make tweaks to bg_mizu_bwall

* migrate data

* create mizu_objects, defines for water temple water level

* clean up some code

* implement most suggestions

* review

* review2

* formatting

Co-authored-by: Fig02 <fig02srl@gmail.com>

* Document BodyBreak (en_part, body part spawner) (#797)

* done

* status defines

* whoops

* comment wording

* size calc change

* elseif

* Improve the format in z_map_mark_data.c and cleanup mapmark.py (#798)

* Cleanup mapmark.py script

* Rename map mark defines

* Remove unused entries from map_mark_data

* `assert` macro OK (#755)

* create assert macro and replace a bunch of __assert

Signed-off-by: angie <angheloalf95@gmail.com>

* Another bunch of assert

Signed-off-by: angie <angheloalf95@gmail.com>

* more assert

Signed-off-by: angie <angheloalf95@gmail.com>

* assert(false)

Signed-off-by: angie <angheloalf95@gmail.com>

* last assert used in matching code

Signed-off-by: angie <angheloalf95@gmail.com>

* the non-matchings

Signed-off-by: angie <angheloalf95@gmail.com>

* typo

Signed-off-by: angie <angheloalf95@gmail.com>

* format

Signed-off-by: angie <angheloalf95@gmail.com>

* change macro to uppercase

Signed-off-by: angie <angheloalf95@gmail.com>

* Apply suggestions from code review

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Change ASSERT(false) to ASSERT(0)

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* General object cleanup (#799)

* Object cleanup

* Fix running man

* fix mm symbols

* Updated to use latest version of ZAPD (#777)

* Updated config file

* Added missing files

* Temporarily removed asm_processor changes.

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "96ffc1e62"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "96ffc1e62"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "179af7d11"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "179af7d11"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Cleanup and fixes.

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "50ad2fe78"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "50ad2fe78"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Makefile fix

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "b9120803e"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "b9120803e"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.com>

* Decompile `object_zo` 🐬 (#794)

* Initial xml

* most of in-code references

* Add limbs and evrything else

* Functions used by EnRiverSound

* Fix forearm and use void* for textures

* Run formatter

* Change Hints in scene's XMLs (#800)

* Remove blobhint

* Add segments and offsets, and remove most hints

* Change PathHint to Path

* Add missing final new lines in scenes xmls

* finished object_skb (#790)

* finished object_skb

* neglected the limbs and dlists, so I added them

* adding the textures

* fixing some names

* ....forgot to change the c file....

* hopefully fixed formatting issue

* EnFish, OK and documented (#795)

* Matching

* Some naming

* spec

* Name another function

* Name animations, clarify use of GI_MAX and GI_NONE

* Documented bottle range functions

* Simplify squared distance function in EnIceHono, actor descriptions

* Functions for dropped fish

* More naming

* Change 65535.5f to (0xFFFF + 0.5f)

* Change 65535.5f to (0xFFFF + 0.5f)

* name phases

* Named other types, Docile functions

* Naming complete

* delete asm

* format, remove outdated comment

* Fix a few DrawFlexOpa arguments

* Review changes

* Change back to original playSound

* Function comments per review

* Update asm-processor and add make dependencies for global asm and early includes (#801)

* Update asm-processor to latest master

* Add make dependencies for global asm and early includes

* Update asm-processor to latest master

* Decompile the pause menu aka. ovl_kaleido_scope (+ minor changes) (#803)

* Decompile ovl_kaleido_scope + minor cleanups

* Add a common header for ovl_kaleido_scope

* Start cleaning up and documenting kaleido_scope (+ some interface docs)

* Improve and fix some kaleido_scope non matchings

* Match KaleidoSetup_Init

* Extract icon_item_fra/ger_static files

* Add more documentation and matches to kaleido_scope

* Improve the z_kaleido_collect.c non matching

* Rename z_kaleido_8081EFF0.c to z_kaleido_prompt.c

* Update most kaleido variables to be static

* Improve GS flag macros

* Improve z_lmap_mark.c and extract z_lmap_mark_data.c with a script

* Various minor fixes and improvements

* Minor fixes and review changes

* Review changes part 2

* Rename gSetTileCustom to gDPSetTileCustom

* Review changes part 3

* Delete `-j` from `make setup` and document use of `-jN` and `-j` in readme (#804)

* Add nproc to make setup

* Add cross-platform nproc equivalents

* Scrap that, just ditch -j in makefile altogether

* Clarified thread advice

* ViMode progress (#802)

* ViMode OK

* Fix variable name in regconvert tool

* ViMode: fix formatting

* Add nonmatching impl for ViMode_Configure, respond to PR

- Fixed struct field naming (unkXX -> unk_XX)
- ViMode_Configure args are not flags for top/left etc; seem to be for
    video mode
- Used @Random06457's implementation of `ViMode_LogPrint`

* Use plain LOG_ADDRESS in ViMode_LogPrint

* Incorporate PR feedback from Roman971

* Add scene macros (#792)

* add scene macros

* SCENECMD -> SCENE_CMD

* light renaming

* SCENE_CMD_ROOM_BEHAVIOR

* update params names

* Remove extra spaces

* More review changes by fig

* remove MM cmd ids

* more review changes

* last minute edit

* I keep confusing both lights commands

* Review changes

* Yet another cutscene change

* Unused02 is unused

* Add UNK_09 macro and other minor fixes (#813)

(cherry picked from commit d3a6d4d2e1)

* Match BossFd_Fly (ovl_Boss_Fd OK) (#807)

* Simplify PNGs rules in the makefile (#814)

* simplify rules

* update `-eh`

* Add every unreserved object in an automated way (#805)

* it's crashing

* fix stuff

* fix xmls

* problematic objects

* fix tabs

* Fix suffixes

* add missing new lines

* Add comments to the problematic objects

* Find and replace fixes

* Add Fig's objects

* I forgot to add a Name in a cutscene, so I'm adding it here

* Update object decomp tutorial a little bit

* Update problematic objects

* Update docs/tutorial/object_decomp.md

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Change comments

* comment out a few blobs

* dammit tluts

* Change a bunch of objects

* update the last bunch

* update comments on  oA11 and oB2

* Ninja-edit to fix compatibility with ZAPD's PR 142

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Add clean assets (#785)

* makefile change

* also delete

* Add cleantools

* rename cleanassets and assetclean

* add rules to PHONY in makefile

* Remove toolsclean

* object_hata OK (#806)

* everything except limbs

* spec

* object_hata OK

* Replace symbols, unused data, enums, some cleanup

* Fix compiler warnings in EnRiverSound

* Address Roman's review

* Correct limbs name

* Changed unk_192 to timer, as well as add missing trailing comma for formating (#817)

* Remove some unused duplicated C files (#818)

* Removes qemu from the README.md (#819)

* Removes qemu from the README.md

* Increments the step references in other parts of the README.md

* Update README.md

Co-authored-by: Anghelo Carvajal <anghelo.carvajal.14@sansano.usm.cl>

* Update README.md

Co-authored-by: Anghelo Carvajal <anghelo.carvajal.14@sansano.usm.cl>

* Update README.md

Co-authored-by: Anghelo Carvajal <anghelo.carvajal.14@sansano.usm.cl>

* Update README.md

Co-authored-by: Anghelo Carvajal <anghelo.carvajal.14@sansano.usm.cl>

Co-authored-by: Anghelo Carvajal <anghelo.carvajal.14@sansano.usm.cl>

* Match EnSkb_PostLimbDraw (obl_en_skb OK) (#821)

* Small bgcheck documentation pass (#816)

* implement some documentation

* remove unnecessary comments related to decomp

* eliminate comment function prototypes

* Add `actorfixer.py` ~~and `graphovl.py`~~; and a few improvements to `extract_assets.py` (#783)

* Only process touched files and abort the extraction if one file wasn't extracted properly

Signed-off-by: angie <angheloalf95@gmail.com>

* add actorfixer and graphovl

Signed-off-by: angie <angheloalf95@gmail.com>

* Re set execution permisions to diff.py

Signed-off-by: angie <angheloalf95@gmail.com>

* Add graphs/ to gitignore

Signed-off-by: angie <angheloalf95@gmail.com>

* Add looners flag to graphovl

Signed-off-by: angie <angheloalf95@gmail.com>

* Parse macros

Signed-off-by: angie <angheloalf95@gmail.com>

* cleanup

Signed-off-by: angie <angheloalf95@gmail.com>

* Add enum parser to graphovl

Signed-off-by: angie <angheloalf95@gmail.com>

* Remove redundant code

Signed-off-by: angie <angheloalf95@gmail.com>

* cleanup

Signed-off-by: angie <angheloalf95@gmail.com>

* Custom colors to graphovl!

* Select multiples styles for graphovl

* Add solarized light style

* Add renames of #796

* Add unaccounted warning flag

* remove graphovl

* git subrepo clone https://github.com/AngheloAlf/graphovl.git tools/graphovl

subrepo:
  subdir:   "tools/graphovl"
  merged:   "577e71592"
upstream:
  origin:   "https://github.com/AngheloAlf/graphovl.git"
  branch:   "master"
  commit:   "577e71592"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* remove graphovl

* Add `graphovl/` to gitignore

* Label a bug in Door_Shutter (#810)

* comment

* Update src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>

* Update src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c

Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>

* change message

* typo

* repeated myself

* extra space lmao

* change wording again

* Update src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c

* indent

Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>

* en_weather_tag Quick documentation pass (#808)

* Quick documentation pass

* Fill out the En_Weather_Tag enum

* move the enum into the header

* implement roman's suggestion

* object_sa OK (#789)

* object_sa OK

* PR fixes (AngheloAlf)

* PR fixes (Roman)

* Improve z_jpeg documentation (#825)

* Improve z_jpeg documentation

* JpegWork::data is probably better than address

* Rename Jpeg_SendTask to Jpeg_ScheduleDecoderTask

* Rename njpegUCode to gJpegUCode

* Rename GetU16 to GetUnalignedU16 and improve docs

* Decompile a bunch of objects (#603)

* Mostly done but shifted

* still messed up

* Almost OK

* OBJECT_JYA_OBJ OK, OBJECT_GR OK

* Done

* Merge master and format

* Cleanup

* Cleanup 2

* Start object MB dont merge yet

* Object_MB OK

* Object_ydan_objects OK

* General 'ydan' actor cleanup

* Forgot some small things

* Object_EC OK

* add .gitkeep and run format

* Object_sd OK but no textures cause of a zap issue

* PR fixes

* Fix object_sd

* fix ydan

* delete .gitkeep files

* OBJECT_BOX as far as it can go with current ZAP

* Fix undefined_syms

* Start child link object

* Push progress, dont merge yet

* Object_mori_objects OK

* Fixed?

* Fix conflicts again

* Seems like i missed some textures

* Extract data for BgBombwall

* More field

* ZAP YEP 2.0

* Object_Box OK

* Object_SD ok.  Ready to merge

* remove ASM and merge master

* remove ASM

* remove files wrongfully added to docs/

* Almost done

* Change comment in z_player_lib.c

* forgot some DLists in player_lib.c

* Fix conflict, run format

* Same as before but this time with Tex and TLUT

* Last few things

* fix object_GR and add limbs to object_sd

* Nane -> Name

* gChildDekuShieldMtx is now a matrix and not a blob

* PR fixes (Fig)

* add a space for comment in z_player_lib.c

* re push and new lines

* PR fixes (AngheloAlf)

* PR fixes (Roman)

* Fix Heishi2

* PR fixes (Fig)

* Replace spacing in a file

* PR fixes (Roman)

* Track XML extraction time (#826)

* extracted-assets.json

* delete `.extracted-assets.json` in distclean

* Move `rm .extracted-assets.json` to `assetclean`

* Outname -> OutName for OBJECT_LINK_CHILD (#827)

* Outname -> OutName

* ANother child fix

* TLUT -> tlut

* Change nanoseconds to seconds in extract_assets.py (#829)

* Match 2 more functions in z_eff_blure.c (#831)

* Match ViMode_Configure (z_vimode.c OK) (#830)

* warnings fixed (#835)

* ZAPD update: libpng, zroom improvements and others (#811)

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "769f5702a"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "769f5702a"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Add `libpng` to readme

* Remove `-ifp` since it doesn't exists anymore in ZAPD

* Remove extra print I added

* Add UNK_09 macro and other minor fixes

* Simplify PNG rules

* simplify gitignore

* Update README.md

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update dockerfile

* basic instructions for cygwin and mac

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "86160be69"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "86160be69"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Change nanoseconds to seconds in extract_assets.py

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* "Decompile" more objects. (#784)

* Object_hakach_objects OK and fix a warning in z_play.c

* Object Warp1 OK

* Object_spot16_obj OK

* object_cs Skeleton and limbs OK

* Limbs are broken

* Limbs OK

* Object_CS OK

* Object_jya_door OK

* fix errors and add new lines

* PR fixes (AngheloAlf)

* PR fixes (EllipticEllipsis)

* PR fixes (Fig)

* Rename Spot16 and Jya

* GraveYard -> Graveyard

* PR fixes

* -s

* PR fixes

* Object_RU1, Object_MA1, and warp pad objects Decompiled (#828)

* Ruto limbs

* RutoLimb enum

* the enum doesn't go in en_door

* Limb DLists

* Name almost all textures and clean up EnRu1.c

* remove padding

* Name all but 1 animation and remove undefined syms

* Object MA limbs OK

* (MA1)Most textures

* Small renames in EnMa1.c

* Object MA1 OK

* add base object for Mjin

* Mjin OK

* Update object_ma1.xml

* PR fixes (Fig)

* PR fixes

* Missed one

* Update assets/xml/objects/object_ru1.xml

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* En_River_Sound OK (#833)

* match en_river_sound

* remove asm

* some docs

* more docs

* saria song

* review stuff

* z_sram OK (#834)

* match z_sram

* format and remove unused asm, also make some data static

* review comments

* another change

* Match Jpeg_Decode (z_jpeg.c OK) (#839)

* Match EnDaiku_UpdateText (En_Daiku OK) (#841)

* Match 1 of the 2 remaining functions in Bg_Mizu_Movebg (#840)

* Improve Audio_SequencePlayerProcessSequence (#844)

Co-authored-by: zelda2774 <zelda2774@invalid>

* Fix and rename nes_font_static (#753)

* renames

* change digits and control pad names

* Add codepoints, rename blank char 0x7F

* BgGndFiremeiro OK and documented (#850)

* OK, data imported

* Name everything

* Delete asm

* Add struct `LegacyLimb` and rename `AnimationHeader2` for `object_human` (#849)

* Add LegacyLimb and rename AnimationHeader2

* Simplify SkelAnime_GetFrameDataLegacy

* Minor fixes

* Move LegacyLimb with the rest of the limbs

* EnVali OK and documented, object_vali and object_bl completely analysed and documented (#845)

* OK

* Some naming

* Name more, correct typo in Biri, extract skel

* just Draws need names, fix typos in bili and warp1

* Decompile object_vali and add symbols

* Few more names

* Bari naming done

* object_bl completed, symbols added

* Label object_bl

* Formatter

* delete asm

* review changes

* review changes

* review

* Interface improvements (#822)

* Add symbols, does NOT build OK

* parameter OK with syms

* Use `static` more and inline arrays

* wip docs

* Start on Interface_Draw, NOT OK yet

* rename variables since interface dev is weird

* nonmatching for now

* kaleido

* Update src/code/z_parameter.c

Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>

* Make most texture rectangles use shifts

* fix symbols for all interface things

* done with interface_draw for now

* Update z_parameter.c

* format files

* fix wrong function calls

* fix bss

* improvements in matching

* remove button enum for now

* (void)0 to fix warning

* make conditional look nicer

* fix

* fix wrong combiner

* Update src/overlays/actors/ovl_kaleido_scope/z_lmap_mark.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* format

* remove "HUD" naming

* review suggestions

Co-authored-by: louist103 <35883445+louist103@users.noreply.github.com>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Migrate .bss for fault drawer and .data for item00 (#823)

* Item00 and fault drawer

* Test

* Test2

* test3

* test4

* remove .data file for item00

* revert hex

* WHY

* PLEASE

* PR fixes (Roman) and run clang-format version 10

* Fault_drawer was swapped ...again)

* Decompile and label EnEiyer (#852)

* En_Eiyer OK

* Label EnEiyer

* Style fixes

* Rename colCyl -> collider

* Use CLAMP_MIN

* Format

* Review changes

* Match Camera_PrintSettings (z_camera OK) (#853)

* Match Camera_PrintSettings

* rm asm

* Match Math3D_LineSegMakePerpLineSeg (#854)

* Match Math3D_LineSegMakePerpLineSeg

Also renamed to Math3D_LineVsLineClosestTwoPoints

* Fix UB

* Some actor.c docs (in preparation for en_test) (#820)

* renames

* format

* format functions.h

* clean

* arg name

* remove asm

* Decompile obj_bean (magic bean and soft soil).  2 NON_MATCHINGs (#846)

* did a bunch

* Do a bunch more

* all functions in C

* Macros for draw and collision part of state flags

* Done for now

* remove ASM

* PR fixes (Elliptic)

* all angles are hex and take away bad names

* PR fixes (Roman)

* PR fixes

* PR fixes (Fig)

* restore map mark

* Fix the other messed with files

* Decompile some more objects (#848)

* Object_FU limbs and skel OK

* limbs OK

* Object_FU textures OK

* Object_FU face textures OK

* Symbols in en_fu.c

* en_fu.c limb enum

* Remove Object_fu from undefined_syms, move textures to draw, and small cleanup

* Object_bird OK

* Object_Bird OK, added cutscene for shot sun, and song of storms

* Rainbow Bridge CS

* Great fairy CS

* Cutscene -> Cs

* remove '&' from Cutscenes

* Cleanup object_bird

* Update z_en_fu.c

* Update z_en_fu.h

* Update z_en_fu.c

* Update z_en_fu.h

* Update z_en_fu.h

* DC intro CS

* Zeldas lullaby CS

* Nabooru Knuckle CS

* Owl Lake Hylia CS

* Sun song CS

* Undefined sym in Boss Dodongo

* Missed a few more

* DC tex name

* Windmill man limbs

* z_En_Ossan and dependencies (#824)

* fix colliderinit typo

* fix initchain

* reloc

* progress

* progress

* Pick off a few easy functions, reduce number of warnings

* more tough OKs

* Getting closer to all OK, fix en_girla header

* some hard OKs, 7 to go

* two funcs remaining

* func_80AC7094 OK!

* Fix warnings, begin documentation

* get most of object_ossan documented, document some of en_ossan

* improve en_girla function names

* more EnOssan documentation

* more documentation

* en_tana basically complete, en_girla vars all named, en_ossan documentation improvements

* delete TIME ITSELF

* object_oF1d_map OK

* more names, fixed a poition typo

* Nearly all en_ossan functions named, all variables named

* format.sh

* forgot to delete data

* implement pr changes

* EnOssan OK! implement most of Roman's suggestions

* ugh

* implement figs suggestions

* implement roman's suggestion

* Can't tell my left from my other left

Co-authored-by: fig02 <fig02srl@gmail.com>

* Some progress on z_vr_box.c (#838)

* z_vr_box.c progress

* Rename dpList to dlistBuf and SKYBOX_CLEAR_SKY to SKYBOX_NORMAL_SKY

* Fix

* renamed dlistBuf to dListBuf and split large string further

* Change PreRenderContext to just be PreRender (#862)

* Decompile Fishing and document object_fish (#856)

* Start decompiling Fishing

* Decompile more functions in Fishing

* Decompile a few more functions in Fishing

* Decompile func_80B6E9E0 and func_80B7825C (non matching)

* Minor Fishing cleanups

* Migrate fishing bss to C and match 3 functions

* Decompile and match Fishing_Update

* Migrate fishing data to C and minor cleanups

* Fix the object_fish xml and use its symbols in Fishing

* Partially document Fishing and object_fish

* Add more documentation/cleanups to Fishing and object_fish

* Use object_fish symbols in Demo_Ec and fix naming

* Minor fixes to Fishing docs

* Apply review suggestions for Fishing

* Apply 2 more review suggestions for Fishing

* Apply some review suggestions for Fishing

* Extract all "place name" title cards (#858)

* Forest and shadow temple

* fire temple

* Water temple

* Spirit temple

* Deku tree

* jabu jabu

* DC

* Inside Ganons castle

* GTG

* Castle courtyard

* great fairy's fountain

* chamber of sages

* shooting gallery

* Temple of time

* market

* back alley

* kokir shop

* goron shop

* zora shop

* House of skulltula

* bazarr

* potion shop

* gravekeepers hut

* lakeside lab

* hyrule field

* kak

* graveyard

* zoras river

* kokiri forest

* lake hylia

* zoras domain

* zoras fountain

* gerudo valley

* lost woods

* the rest of them

* cleanup

* final cleanup

* PR fixes (Zel)

* (Re) fix case

* segment 0

* Fix map name static conflict

* Comment about ZAPD

* number 0

* Update place_title_cards.xml

* Update spec

* Fix all xmls to explicitly use offsets (#859)

* Forest and shadow temple

* fire temple

* Water temple

* Spirit temple

* Deku tree

* jabu jabu

* DC

* Inside Ganons castle

* GTG

* Castle courtyard

* great fairy's fountain

* chamber of sages

* shooting gallery

* Temple of time

* market

* back alley

* kokir shop

* goron shop

* zora shop

* House of skulltula

* bazarr

* potion shop

* gravekeepers hut

* lakeside lab

* hyrule field

* kak

* graveyard

* zoras river

* kokiri forest

* lake hylia

* zoras domain

* zoras fountain

* gerudo valley

* lost woods

* the rest of them

* cleanup

* final cleanup

* PR fixes (Zel)

* Fra -> FRA and cleanup map_name_static

* map_name_static

* DONE

* SHould be it

* Done done done done

* vector

* remove another pr

* ?

* EnDekubaba OK and documented, object_dekubaba documented (#864)

* 13 functions left, data imported

* 2 left

* 1 left

* OK

* Begin naming

* sfx rename

* spec

* Begin naming, add LINK_IS_CHILD to EnDu

* Fix spelling of its/it's

* Document most of object_dekubaba, import symbols

* Document draw functions, begin on actionfuncs

* New actor function names, some float constants

* Name almost everything

* Delete asm

* Name size, format

* Review changes

* Review changes

* Brackets, format

* Fix Sheik typo (#867)

* db_camera (#842)

* Decompile shrink_window.c

* progress

* progress

* makefile

* progress

* match 8 functions

* 1 more match

* match 2 functions

* decompile func_800B9638

* fix flow

* migrate .bss

* doc

* name some stuff

* fixes

* comment fix

* remove scene .c files

* old z_camera .s files

* revert z_camera change

* revert unwanted z_camera change

* fixes

* remove unused files, run clang-format and fix non-matching

* fix clang-format causing non-matching

* remove newline + old comment in func_800B3BD4

* make db_camera global variables static

* add s prefix to startic variables

* change magic constants

* rename "unk_50"

* Match func_800B3BD4 and Match DbCamera_UpdateDemoControl (-bss)

* Lots of progress on update

* Mainly cleanup

* run format.sh + remove unused asm

* replace chevrons with add quotes

* remove useless cast + use correct empty argument function declaration

Co-authored-by: engineer124 <engineer124engineer124@gmail.com>

* Match Interface_Draw (z_parameter OK) (#876)

* Interface_Draw down to permuter score = 175

* Fix typo

* Matched Interface_Draw!

* clean-up

* Another touch-up

* a little more cleanup

* No more direct gGameInfo->data access

* Audio WIP (#836)

* being code_800EC960

* wip

* wip

* more audio progress

* migrate data in code_800E11F0

* wip

* make ok

* remove asm

* wip

* move some variables outside of gAudioContext to the AudioContext structure due to the size used in func_800E3094

* more progress

* wip

* wip

* split code_800E11F0

* migrate rodata in code_800E11F0

* match functions that couldn't because of data issues

* move code_800E4FE0 asm files

* wip

* more wip

* fix global functions, and forward declarations

* wip

* wip

* wip

* ocarina wip

* match a couple functions

* some progress

* separate some bss

* match func_800EDA3C

* some matching

* more matches

* migrate audio rodata

* some matches

* more matchess

* start on synthesis

* work on synthesis

* fix function declaration

* Merge branch 'master' into audio

* match a few more functions

* wip

* wip

* more matching, rename Audio_SetBGM to Audio_QueueSeqCmd

* name several audio functions, and audiocontext members

* more naming, rename code_800E11F0 to audio_load, code_800DAAC0 to audio_synthesis

* audio wip

* match a few more functions.

* wip

* add missing NON_MATCHING directive

* wip

* some matching, data reogranization

* match cursed function

* wip

* wip

* formatting

* remove prefix from struct memebers

* missed function rename

* review

Co-authored-by: fig02 <fig02srl@gmail.com>

* ZAPD update: Gotta go fast! (#877)

* copy over the xml

* Rename anims

* A bunch of renames

* minor extract_assets fixes

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "820678b4e"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "820678b4e"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Change rgb5a1 to rgba16

* eye and eyebrows

* some dlists

* git subrepo pull --force tools/ZAPD

subrepo:
  subdir:   "tools/ZAPD"
  merged:   "6be9af65d"
upstream:
  origin:   "https://github.com/zeldaret/ZAPD.git"
  branch:   "master"
  commit:   "6be9af65d"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Dancing Couple (ovl_En_Tg) (#866)

* Match EnTg_Destroy

* Match EnTg_Init

* Matching EnTg_Update

* Match func_80B18360

Moving both 'return phi;'s into a single return at the end of the function causes the assembly to not match.

* Probably equivalent, non-matching func_80B183F8

* Matching EnTg_Draw

* Matching update function

* Matching func_80B18778

* All functions decompiled

* Move data to C code

* All functions matched excepted weird switch/case

* Last matching function

* Remove unused ASM

* Name obvious symbols

* Clang format

* Name text-related functions and variables

* Describe actor as Dancing Couple

See https://github.com/zeldaret/oot/pull/866#discussion_r664726581

* Use named constants

* Name drawing constants

* Use THIS macro for void*

* Name the function that sets environment color

* Add comments to parts of code that aren't clear

* Rename timesSpokenTo to nextDialogue, treat isTalking as boolean

* z_en_ko OK (#869)

* .data OK

* Progress

* push some old stuff

* Finish a chain

* Progress

* Progress

* Run mathfixer.py

* Progress

* match one more

* Up to date

* Match func_80A97610

* func_80A96FD0

* most of the way through the mega switch

* small formatting thing. still stuck on the switch

* start a big switch function

* a little closer

* done with matching for now starting objects

* func_80A97738 OK!

* func_80A995CC OK!

* func_80A99864 OK!

* en_ko OK!

* Code clean-up pass

* more EnKo cleanups, object_fa and object_kw1 textures documented

* complete object_km1, more EnKo documentation

* More documentation

* delete asm

* Clean-up rebase issues

* bleh

* Implement Dragorn's suggestions

* fix spec, implement fig's suggestions

* whoops (ill leave it for the docs tho lol)

* whoops again

* i made an ouchie

* smile

* last one for real

Co-authored-by: Louis <35883445+louist103@users.noreply.github.com>
Co-authored-by: fig02 <fig02srl@gmail.com>

* z_en_bigokuta OK (#878)

* start

* Did some more

* Progress

* More

* IDK

* Chip away a little

* im done

* func_809BEBBC OK!

* get rid of graphovl

* revert random changes

* Big Okuta OK!

* more clean-ups

* implement dragorn's suggestions

* implement fig and louist's suggestions

Co-authored-by: Louis <35883445+louist103@users.noreply.github.com>

* z_obj_mure OK (#875)

* almost matching init, matching data

* more matchings, some non-matching progress

* finishing up SpawnActor, fixing .data types

* first decompile pass done, few non matchings

* cleanup/update matchings and remove asm

* format code

* pick up some OKs

* 1 non_matching left, some documentation

* z_obj_mure OK... but at what cost?

* implement suggested changes, some more documentation

* Implement Fig's suggestions

* review

Co-authored-by: Sam Lyon <sam.c.lyon@gmail.com>
Co-authored-by: fig02 <fig02srl@gmail.com>

* convert remaining RGB5a1 to RGBA16 (#879)

* Stalfos (en_test) OK and object_sk2 documented (#868)

* fix colliderinit typo

* migrate data

* init has 1 problem

* progress

* progress

* builds now

* progress

* progress

* lots of funcs matched

* many functions, fix warnings

* 1 left

* done

* docs progress

* remove graphovl

* missed some

* change some funcs

* some more

* another

* format

* more docs

* cleanups1

* limbs, DLs, textures

* limbs named (thanks elliptic)

* more docs

* Name animations, import symbols

* Named sections of xml

* more docs

* rename limbs and use flag macros

* name

* review1 and use limb enum

* review2

* agro -> aggro

* review3

* review4

* review5

Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com>

* Use a temp symbol for RomStart/RomEnd symbols, makes the map show the right value for actual RomStart/RomEnd symbols (#880)

* builds OK

* first pass

* PR fixes (Louis)

* fixes

* a little more

* format

* dragorn's stuff

* more cleanup, merge, and format

* now with work buffers

* forgot sfx

* update and draw

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: Louis <35883445+louist103@users.noreply.github.com>
Co-authored-by: Parker Burnett <burnettparker@gmail.com>
Co-authored-by: fig02 <fig02srl@gmail.com>
Co-authored-by: Zelllll <56516451+Zelllll@users.noreply.github.com>
Co-authored-by: glankk <glankk@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
Co-authored-by: zelda2774 <69368340+zelda2774@users.noreply.github.com>
Co-authored-by: zelda2774 <zelda2774@invalid>
Co-authored-by: mzxrules <mzxrules@gmail.com>
Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com>
Co-authored-by: Jack Walker <7463599+Jack-Walker@users.noreply.github.com>
Co-authored-by: Zach Banks <zjbanks@gmail.com>
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
Co-authored-by: Anghelo Carvajal <anghelo.carvajal.14@sansano.usm.cl>
Co-authored-by: pixel-stuck <mathmcclintic@gmail.com>
Co-authored-by: Vijfhoek <me@vijf.life>
Co-authored-by: Synray <31429825+Synray@users.noreply.github.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com>
Co-authored-by: Random <28494085+Random06457@users.noreply.github.com>
Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
Co-authored-by: krimtonz <33664508+krimtonz@users.noreply.github.com>
Co-authored-by: Aly Cerruti <aprime2003@gmail.com>
Co-authored-by: Sam Lyon <sam.c.lyon@gmail.com>
Co-authored-by: Elliptic Ellipsis <elliptic.ellipsis@gmail.com>
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2021-08-08 15:26:56 -04:00
asm Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00
assets Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00
data Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00
docs z_en_ko OK (#869) 2021-07-28 23:59:52 +02:00
include Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00
src Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00
tools EnMb documented (Moblins) (#861) 2021-08-08 07:28:28 -04:00
.clang-format Setup formatting with clang-format and clang-tidy 2020-03-22 20:18:10 +01:00
.clang-tidy Setup formatting with clang-format and clang-tidy 2020-03-22 20:18:10 +01:00
.gitattributes First proper commit. 2020-03-17 00:31:30 -04:00
.gitignore Track XML extraction time (#826) 2021-05-26 19:40:48 -04:00
checksum.md5 Added 'extract' target to makefile 2020-03-27 22:30:19 -04:00
diff.py Match en_elf func_80A0461C (#774) 2021-04-13 19:33:14 +02:00
diff_settings.py Decomp EnMb (#445) 2020-12-03 19:25:36 -05:00
docker-compose.yml Docker Support for OSX (#91) 2020-04-24 20:34:00 -04:00
Dockerfile ZAPD update: libpng, zroom improvements and others (#811) 2021-05-30 11:09:59 -04:00
Doxyfile Configure Doxygen (#206) 2020-06-28 14:42:16 -04:00
extract_assets.py ZAPD update: Gotta go fast! (#877) 2021-07-27 22:16:03 -04:00
extract_baserom.py Fix extract_baserom with non-forking multiprocessing (#572) 2020-12-28 17:19:48 -05:00
first_diff.py Add COMPARE and NON_MATCHING build options (#275) 2020-07-19 15:42:05 -04:00
fixbaserom.py fixbaserom.py: Add support to v64 format and improve performance (#629) 2021-01-14 15:14:33 -05:00
fixle.sh Setup formatting with clang-format and clang-tidy 2020-03-22 20:18:10 +01:00
format.sh Add every unreserved object in an automated way (#805) 2021-05-16 12:36:40 -04:00
Jenkinsfile Jenkins refactor (#732) 2021-03-22 21:17:02 -04:00
Makefile Track XML extraction time (#826) 2021-05-26 19:40:48 -04:00
progress.py Various README updates (#671) 2021-02-11 07:10:05 -05:00
README.md ZAPD update: libpng, zroom improvements and others (#811) 2021-05-30 11:09:59 -04:00
spec Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00
sym_info.py Change Colors To Decimal (#260) 2020-07-16 21:37:53 -04:00
undefined_syms.txt Morpha (ovl_Boss_Mo) (#438) 2021-08-08 15:26:56 -04:00

The Legend of Zelda: Ocarina of Time

Build Status Decompilation Progress Contributors Discord Channel

- WARNING! -

This repository is a work in progress, and while it can be used to make certain changes, it's still
constantly evolving. If you use it for modding purposes in its current state, please be aware that
the codebase can drastically change at any time. Also note that some parts of the ROM may not be
'shiftable' yet, so modifying them could be difficult at this point.

This is a WIP decompilation of The Legend of Zelda: Ocarina of Time. The purpose of the project is to recreate a source code base for the game from scratch, using information found inside the game along with static and/or dynamic analysis. The only build currently supported is Master Quest (Debug), but other versions are planned to be supported.

It builds the following ROM:

  • zelda_ocarina_mq_dbg.z64 md5: f0b7f35375f9cc8ca1b2d59d78e35405

Note: This repository does not include any of the assets necessary to build the ROM. A prior copy of the game is required to extract the needed assets.

Website: https://zelda64.dev

Discord: https://discord.zelda64.dev

Installation

Windows

For Windows 10, install WSL and a distribution by following this Windows Subsystem for Linux Installation Guide. We recommend using Debian or Ubuntu 18.04 Linux distributions.

For older versions of Windows, install a Linux VM or refer to either Cygwin or Docker instructions.

macOS

For macOS, use homebrew to install the following dependencies:

  • coreutils
  • make
  • python3
  • md5sha1sum
  • libpng

You can install them with the following commands:

brew update
brew install coreutils make python3 md5sha1sum libpng

You'll also need to build and install mips-linux-binutils.

Going forward in this guide, please use gmake whenever you encounter a make command. The make that comes with MacOS behaves differently than GNU make and is incompatible with this project.

You should now be able to continue from step 2 of the Linux instructions.

Linux (Native or under WSL / VM)

1. Install build dependencies

The build process has the following package requirements:

  • git
  • build-essential
  • binutils-mips-linux-gnu
  • python3
  • libpng-dev

Under Debian / Ubuntu (which we recommend using), you can install them with the following commands:

sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 libpng-dev

2. Clone the repository

Clone https://github.com/zeldaret/oot.git where you wish to have the project, with a command such as:

git clone https://github.com/zeldaret/oot.git

3. Prepare a base ROM

Copy over your copy of the Master Quest (Debug) ROM inside the root of this new project directory. Rename the file to "baserom_original.z64", "baserom_original.n64" or "baserom_original.v64", depending on the original extension.

4. Setup the ROM and build process

Setup and extract everything from your ROM with the following command:

make setup

This will generate a new ROM called "baserom.z64" that will have the overdump removed and the header patched. It will also extract the individual assets from the ROM.

5. Build the ROM

Run make to build the ROM. Make sure your path to the project is not too long, otherwise this process may error.

make

If all goes well, a new ROM called "zelda_ocarina_mq_debug.z64" should be built and the following text should be printed:

zelda_ocarina_mq_dbg.z64: OK

If you instead see the following:

zelda_ocarina_mq_dbg.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

This means that the built ROM isn't the same as the base one, so something went wrong or some part of the code doesn't match.

NOTE: to speed up the build, you can either:

  • pass -jN to make setup and make, where N is the number of threads to use in the build. The generally-accepted wisdom is to use the number of virtual cores your computer has.
  • pass -j to make setup and make, to use as many threads as possible, but beware that this can use too much memory on lower-end systems.

Both of these have the disadvantage that the ordering of the terminal output is scrambled, so for debugging it is best to stick to one thread (i.e. not pass -j or -jN).

Cygwin

If you want to use Cygwin, you will need to:

Once mips-linux-binutils is installed you will need to install the following packages using Cygwin's installer:

  • libiconv
  • dos2unix
  • python3
  • libpng-devel

Then you can continue from step step 2 of the Linux instructions.

Note that, before building anything, you will need to run the following commands to fix line endings:

dos2unix fixle.sh
./fixle.sh

Docker

1. Setup requirements

To use Docker, you'll need either Docker Desktop or Docker Toolbox installed and setup based on your system.

You'll also need to prepare a local version of the project with a copied base ROM (see steps 2 and 3 of the Linux instructions).

2. Create the docker image

From inside your local project, run the following command:

docker build . -t oot

3. Start the container

To start the container, you can mount your local filesystem into the docker container and run an interactive bash session.

docker run -it --rm --mount type=bind,source="$(pwd)",destination=/oot oot /bin/bash

4. Setup and Build the ROM

Once inside the container, you can follow steps 4 and 5 of the Linux instructions to setup and build the ROM, or run any other command you need.

Contributing

All contributions are welcome. This is a group effort, and even small contributions can make a difference. Some tasks also don't require much knowledge to get started.

Most discussions happen on our Discord Server, where you are welcome to ask if you need help getting started, or if you have any questions regarding this project and other decompilation projects.