* feat: Add .data to RMSX actors
* fix: Fix bad regressions
* feat: Add struct and improve RMSD matching
* feat: Move RMSX base class to the right file
* feat: Delink vtable and update symbols
* feat: Match .data and improve ActorUnkRMSBase
* feat: Update ActorUnkRSMBase ctor and match ActorUnkRMSW
* fix: Fix outdated initialization
* feat: Match RMSV ctor
* feat: Match more vfunc
* feat: Match more vfunc and some cleanup
* chore: Clean headers
* feat: Reorder funcs, add unk structs
* feat: Move RMSBase to a separate file and flag as complete
* feat: Complete some actors
* feat: Add data to RBLS, almost match the actor
* feat: Add eur data for CANS
* feat: Reorder CANS functions, sync data for jp
* feat: Reorder CASE functions
* feat: Update global func call to member func call
* add usa
* add eur revision 1
* tools/sha1: refactor to allow checking against multiple checksums
* docs: edit both readme files
* misc: add the new versions to configure.py and add new macros in versions.h
* make eur1 OK
* add `ninja [version]` phony for convenience
for instance, `ninja eur` runs `check_eur sha1_eur report_eur`
* add usa and eur1 to CI and bump version used for steps
this should get rid of the node js warnings in the action logs
* `Actor::mType` field
* Remove fake symbol `data_027e0254`
* `dsd format`
* eur: Enable dsprot decomp
* jp: Enable dsprot decomp
* dsprot OK
* `dsd format`
* Use new `weak` attribute
* Add relocations for exception table link-time constants
* Add exception table symbols
* Bump dsd to v0.12.0
* `#define FALSE 1` ???
Why did I make it 1?
* Truncate `data_ov001_020c27a8`
That data belongs to dsprot
* fix: Cleanup structure in INSTALL.md
* fix: Clean undefined link
* feat: Copypaste decompiling.md and start porting over
* feat: Keep porting decompiling.md and adding some details
* feat: Add images and fix links
* Apply suggestions from code review
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
Done manually because I screwed-up on github
* feat: Update decomp.me export instructions, adapt review about thumb region
* feat: Add instructions to reserve non-actor files
* feat: Add small details for LSP and reminder for installation
* feat: Add instructions for coding style (format and naming)
* fix: Expand on UnkSystem naming
* feat: Add details for objdiff errors
* feat: Add information about symbols and tips.md
* feat: Add information about UnkAngleStruct
* fix: Update the CI build command in tips.md with the actual one
* feat: Add some information about naming guidelines
* feat: Add information about vtable symbols
* feat: Small improvements
* feat: Update doc's links layout a bit
* feat: Some updates to install.md
* feat: Apply reviews
* `func_ovxxx_xxxxxxx` -> `func_ovxxx_02xxxxxx`
---------
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* feat: Start decompiling ActorUnkCANS ctor and vfunc_10
* feat: Improve vfunc_10
* feat: Decompile vfunc_18 and 1C
* fix: Remove trailing return
* feat: Progress on vfunc_20
* fix: Rename symbol
* feat: Finish first run over vfunc_20
* feat: Improve vfunc_20
* feat: Improve vfunc_20
* feat: Heavily improve vfunc_20
Almost done
* feat: Keep vfunc_20 going, add UnkAngleStruct to Actor.hpp
* feat: Some polish on vfunc_20
That's about what I can do, there are some tweaks left but I'm unable to
get anywhere.
Kind of proud ngl
* feat: Rename symbols and match vfunc_24
* fix: Fix jp symbol conflict
* feat: Decompile vfunc_2C
* feat: Fix symbols and signatures
* fix: Match switch statement by adding every cases
* feat: Match func_ov063_02157fa4
* feat: Match func_ov063_02158424
* feat: Match func_ov063_02158448
* feat: Match func_ov063_02158490
* feat: Match func_ov063_02158b0c
* feat: Match func_ov063_02158b34
* feat: Decompile most of func_ov063_02158b98 (need regalloc fix)
* feat: Create inner classes of ActorUnkCANS, match some vfuncs
* feat: Update some dtor symbol and match some ctor
* feat: Decompile UnkStruct 02162ee8 ctor
* feat: Rename jp symbols
* feat: Match func_ov063_021590c8
* feat: Match func_ov063_02159dfc
* feat: Decompile some functions
* fix: Fix old accesses
* fix: More merge artifacts
* fix: More merge artifacts
* chore: Move structs around and fix some uses
* feat: Start decompiling func_ov063_02158db0
* feat: Decompile some vfunc
vfunc_0C is really really weird
* fix: Fix use of removed struct
* feat: Match func_ov063_02159258
* feat: Match func_ov063_02159494
* feat: Match func_ov063_021595a4
* feat: Match func_ov063_02159618
* feat: Match func_ov063_02159714
* feat: Match func_ov063_02159784
* fix: Move UnkAngleStruct to math.hpp
* fix: .data of ActorRollingStone & ActorShotArrow
* feat: Match func_ov063_021598fc
* fix: Cleanup code for func_ov063_021598fc
* feat: Match func_ov063_02159ca8
* feat: Match func_ov063_02159d68
* fix: Fix double declaration of func
* feat: Match func_ov063_02159e20
* feat: Decompile most of func_ov063_02159ec0
* feat: Match func_ov063_0215a428
* feat: Match func_ov063_0215a474
* feat: Update lots of symbols (mainly for jp)
* feat: Start decompiling two funcs with fx mul
* fix: Fix broken symbol def after merge
* feat: Match func_ov063_0215a514
* feat: Match func_ov063_0215a56c
* feat: Match func_ov063_0215a5a0
* feat: Match func_ov063_0215a5bc
* feat: Match func_ov063_0215a5d8
* feat: Decompile most of func_ov063_0215a678
* fix: Fix some regalloc order in func_ov063_0215a678
* feat: Update symbols and create unk class
* feat: Update CANS member with the new class
* feat: Update symbols, remove dead variables
* feat: Improve ctor and some local struct layout
* feat: Improve ActorUnkCANS ctor
* fix: Fix ActorUnkCANS members layout
* feat: Improve ActorUnkCANS ctor more
* fix: Fix wrong symbol reloc
* feat: Add intermediate struct and update symbols
* feat: Match some jp only code, symbols
* feat: Decompile part of func_ov063_0215a2c0
* fix: Fix jp only code in func_ov063_0215a2c0
* feat: Update symbols
* feat: Cleanup unused functions
* feat: Cleanup JP ifguards handling
* feat: Remove lot of useless temps, use DEG_TO_ANG where it seems appropriate
* feat: Small code cleanup
* Apply suggestions from code review
Co-authored-by: Alessevan <44125445+Alessevan@users.noreply.github.com>
* fix: Fix style
* feat: Apply suggestions from review
* feat: More code cleanup
* feat: Some more improvements
* fix: Remove auto-generated comment headers
* fix broken matches
* fix broken matches 2
---------
Co-authored-by: Alessevan <44125445+Alessevan@users.noreply.github.com>
Co-authored-by: Yanis002 <35189056+Yanis002@users.noreply.github.com>
* delink the overlay
* ItemManager_101 OK
* UnkStruct_027e0ce0_40_101 OK
* PlayerLinkActor_A0_1C_101 OK
* UnkStruct_027e09a4_54_101 OK
* UnkStruct_027e0cd8_0C_101 OK and MapObjectProfile_Derived6_101 OK
* document zcb a tiny bit and add some item manager setters
* add more item manager setters
* add more and more item manager setters
* ...
* gcc fix
* gcc fix 2
* UnkStruct_027e09b4_001 OK
* UnkStruct_027e09ac_001 OK
* UnkStruct_027e0cec_001 OK
* SysNew OK
* UnkStruct_027e0cec_18_001 OK
* UnkStruct_027e0ce0_34_001 OK
* UnkStruct_027e0d00_001 OK
* PassengerManager_001 OK
* UnkStruct_027e0cf8_08_00_001 OK
* UnkStruct_ov020_020e8544_001 OK
* code_020bfdd0 OK and code_020bfeec OK
* code_020c099c OK
* run ninja format
* delink what's left from overlay 1 (except dsprotect)
* fix regressions
* UnkStruct_027e0ce0_1C_001 97%
* UnkStruct_0204a110_001 OK
* UnkStruct_ov024_020d86a0_001 OK
* UnkStruct_ov000_020b50c0_001 OK
* GameModeCreate OK
* AdventureModeManager_001 OK
* GameModeAdventure_001 OK
* AdventureModeManager_001 OKn't because weak issues
* ZeldaCollisionBinary OK
* UnkStruct_027e09c0_001 OK
* UnkStruct_ov000_020b504c_001 OK
* UnkStruct_ov000_02067bc4.hpp -> UnkStruct_ov000_020b504c.hpp
* match overlay 97
* match overlay 100
* run ninja format
* UnkStruct_027e0ce0_30_001 OK
* UnkStruct_027e0ce0_40_Base_001 OK
* item manager files stuff
* ItemManager_001 OK
* other file things
* forgot to delete a file
* UnkStruct_027e0ce0_001 53%
* UnkStruct_027e0ce0_001 OK
* feat: begin decompiling mlck actor
* feat: improvements
* feat: save changes as a commit not as a stash eheh
* feat: improvements
* feat: better match for constructor
* style: remove dead code
* refactor: switch to fields to bool and use != 0 for unk32
* feat: Match ActorUnkRBLS vfunc_18, 20, 24 and 2C
* fix: Use FLOAT_TO_FX32 instead of raw hex
* feat: Update symbols
* fix: Fix ModelRender::vfunc_18 symbol and childs declarations
* UnkStruct_027e095c_001 OK
* UnkStruct_027e095c_001 OK (JP)
* SysNew_001 OK
* SaveManager_001 98%
* UnkStruct_027e09bc_001 OK
* MapObjectManager_001 OK
* ActorManager_001 OK
* remove useless thumb pragmas
* ItemManager_001 OK
* fix regressions
* fix build issues
* feat: begin decompiling ActorItemBoomerang
* feat: decompile functions
* refactor: rename function and use ActorState
* feat: match vfunc
* feat: magic stuff on addresses to match .data
* feat: more black magic
* feat: improvements
* feat: match .data
* feat: unmatch .data 😭
* feat: match stuff
* refactor: move shotarrows' class used in boomerang
* feat: fix mangled names
* feat: weird magic
* fix: build issues
* fix: build issue for jp version
* fix: back to +0.2% :yeah:
* feat: improvements before changing laptop
* feat: continue decompiling
* fix: build issues
* feat: improvements
* feat: solve build on eur
* fix: build issue
* fix: better match
* fix: match back ActorShotArrow data
* feat: increase .text matching
* fix: propagate changes to ActorShotArrow
* feat: matching func_ov031_020e5034
* fix: logical errors
* fix: replace whiles with fors
* style: use uppercased hex value
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* style: do not use fx32 for global timer
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* style: add parameters name in prototypes
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* style: use bool instead of unk32 for external function
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* style: use DEG2ANG
* refactor: use ActorRef instead of u16
* style: use boring array access instead of chad pointer manipulation
* fix: use bool as return type for ActorItemBoomerang::vfunc_2C
* feat: remove old non-matching comments
* style: explicit null check
* revert: change vfunc_2C back to void signature and change 01fff5d0 function's signature to bool
---------
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* Decompile func_ov063_0215c250 and func_ov063_0215c290
* Decompile ActorUnkRMSF::~ActorUnkRMSF
Unsure what the added ldr/str instructions are
* Update func_ov063_0215c250 and func_ov063_0215c290 with right classes
* chore: Tidy up code using the right functions
* feat: Duplicate code for jp version
* feat: Add placeholder parent class to match dtors
* fix: Update the handling of jp version
* fix: Remove dup code and rename symbols
* fix: Rename vfuncs
* feat: Rename more symbols and add member to match class size
* chore: Remove autogen comments at the top of files
* feat: Fix reloc and unify used functions with RMSD
* fix: Rename vfuncs to the right id
* feat: Unify code structure to fit other RMSX files
fix: Change type of ActorUnkRMSD.mUnk_158 that was too big to unk32 as placeholder
* feat: Apply patch from Yanis
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* fix: Update code to get rid of GetResource and use new function
* Update src/063_Shrine/Actor/ActorUnkRMSD.cpp
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* Merge branch 'main' into ActorUnkRMSD
* fix: Format file
* feat: Rename RMSX base class
---------
Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
* UnkStruct_027e09b8_001 OK
* match func_ov001_020b7830
* fix build issues
* UnkStruct_027e0cd8_001 49%
* UnkStruct_027e0cd8_001 OK
* fix build issues
* UnkStruct_027e0cd8_0C_001 92%
* port some MSL C++ headers from rb3 and key decomps
* fix build issues
* UnkStruct_027e0cd8_0C_001 98%
* feat: match ActorProfileUnkFlen and ctor of ActorUnkFlen
* feat: add function
* feat: decompile function
* feat: decompile function @ 020f8118
* feat: use break in each case
* feat: almost fully decompiled actor
* style: move external variable to top file
* feat: update symbols
* feat: better match
* refactor: rename function and use ActorState over ActorUnkFLENState
* style: cleanup code
* review
---------
Co-authored-by: Yanis002 <35189056+Yanis002@users.noreply.github.com>
* refactor: unknown arow actor to arrow
* refactor: rename ActorUnkArow_c4 and remove warning
* refactor: rename class in system files
* feat: match actorprofilearrow
* feat: progress decompilation
* feat: rename actor to ActorShotArrow
* feat: change mangled name
* feat: decompile some functions and mark unmatched functions as non-matching
* feat: progress
* feat: decompiling function 020f206c
* feat: change two fields for struct padding
* feat: remove non-matching comment on matched function
* feat: decompiling function 020f20bc
* refactor: fix .bss mangled names
* feat: decompiling 020f2134
* feat: decompiling func_ov031_020f2160
* feat: matching function func_ov031_020f21dc
* feat: use correct mangled names in jp version
* fix: change back arm9/delinks in eur version
* feat: non-matching function 020f1a64
* feat: decompile 020f2270
* feat: decompile function 020f2280
* feat: uncompile func_ov031_020f229c
* feat: match 020f22d4 add UnkSystem{4,5} as fields
* feat: reverse 020f2b8c
* feat: 020f2bbc
* feat: 020f2bec
* feat: 020f3304
* style: explicitly indicate floating values when using FLOAT_TO_Q20
* style: move external function to the top
* feat: begin of 020f3258
* feat: decompile 020f32c4
* feat: propagate mangled names changes to japan version
* feat: begin decompilation of func_ov031_020f370c
* feat: begin weird decompilation of func_ov031_020f3d4c
* feat: decompile function 020f3d04
* feat: better matching
* feat: matching function func_ov031_020f2214
* feat: decompile the function 020f3258
* feat: increase matched code
* feat: decompile function func_ov031_020f2794
* feat: decompile function func_ov031_020f18bc
* feat: decompile almost all func_ov031_020f195c
* feat: decompile 3/4 of func_ov031_020f173c
* refactor: change back function's return type to void
* feat: begin decompilation of func_ov031_020f1b04
* feat: advance decompilation of 020f1c7c
* feat: decompile 020f1e3c
* feat: decompile function func_ov031_020f1f54
* refactor: move func(Actor *) into ActorShotArrow class
* feat: introduce ActorShotArrow_194 thanks to Yanis002
* fix: use FX32 in macros over old Q20
* fix: praying magic behaviour
* revert: revert before build failure
* revert: remove all relocs.txt magic stuff
* revert: introduce back correct symbols
* revert: introduce back CORRECTLY correct symbols
* feat: rename vtable
* fix: wrong hex in comment
* feat: huge improvements
* fix: undefined 02081d7c
* fix: awful symbol name
* fix: part of mangled name in jp version
* fix: rest of the line disappeared
* fix: try to fix jp version
* fix: apply eur fix to jp
* feat: add function 020f374c
* fix: full match of 020f173c
* feat: move function in upperclass
* feat: change ActorRupee to use class function
* feat: try decompiling func_ov031_020f2ef0
* feat: improvements
* feat: improvements
* docs: add comment
* fix: build issues
* feat: improvements
* feat: improvements
* feat: forget inclusion of unkstruct
* feat: enhanced
* feat: some improvements
* style: better style
* feat: decompile function and cleanup
* refactor: remove .cache ??
* review
---------
Co-authored-by: Yanis002 <35189056+Yanis002@users.noreply.github.com>