* 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>
* 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>
* 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>
* gcc fixes
* document random things in UnkStruct_027e09b8_00
* match func_ov001_020ba670 and rabbit docs
* match func_ov026_0211f394
* fix build issues
* match func_ov026_0211e3e0
* match func_ov026_02102924
* move structs to header
* document train rope thing
* MapObject OK and ActorRef stuff
* match more actor funcs
* fix regressions
* fix build issues
* more regressions fixes
* name keyt grab func
* UnkSubStruct19 -> CellAnimObject (based on the only assert string)
* fix build issues due to merge
* Actor::mUnk_4C -> Actor::mState + related changes
* create GetActorPtr template inline for Actor_c4
* ActorUnk_ov000_020a8bb0 -> Actor_Derived1
* actor: add comments about mUnk_50/52 and change type of mAngle
* feat: change symbols for ActorHeart
* feat: begin ActorHeart decompilation
* feat: continue decompilation (some changes should be refactored)
* improvements
* fix build issues
* feat: improve matching code
* fix: remove back nitro/math
* feat: load s8 as u8
* refactor: remove shady variadic function
* feat: better function, reg order issue
* refactor: switch EC, F0 and F4 to a single VecFx32 variable and improve vfunc_20
* feat: improvements in vfunc_v20
* docs: add what should be written in comments
* feat: match with temporary unknown actor structure
* style: remove unnecessary curly brackets in switch cases
* style: move external functions to the top
* docs: mark unmatched functions as non-matching
* refactor: use FLOAT_TO_Q20 instead of raw hex values
* style: remove unnecessary cast
* refactor: use macros to manipulate flags
* refactor: better floating values
* refactor: use hex values over bin values
* feat: use ROUND_Q20 to increase matching
* refactor: use Cylinder::Init instead of assigning each variable
* refactor: change mangled names
---------
Co-authored-by: Yanis002 <35189056+Yanis002@users.noreply.github.com>
* merge headers from nitro decomp
* cleanup: use inlines from g2.h and gx.h when changing registers
* cleanup: remove externs declarations in source files
* playrget progress and match treasuremanager remaining functions
* some docs
* fix build issues
* random docs
* match func_ov094_02172290
* random docs
* actor cleanup
* match freestanding item funcs
* mType -> mpProfile
* decompile random functions
* docs and start of wip chest stuff
* random docs
* more random docs
* match func_ov036_0211d0a8
* match func_ov036_0211d2dc & func_ov036_0211d570
* match func_ov110_02184a40
* random doc
* document letter/stamps system
* match func_ov001_020bb9f8
* fix build issues
* decompile tres
* start decomp chest base
* fix regressions
* name TRES
* name UnkStruct_ov024_020d86b0
* name stamp types and update save struct stuff
* name things and document BMG IDs
* set the right base class size
* actor and map object changes
* rename id getters functions
* document unknown file system used in mapobjectprofile
* start to document MapObjectProfile
* match random init
* UnkSystem2_UnkSubSystem1_Derived1 related docs
* match func_ov031_020e9108 and FileSelect_UnkClass7::vfunc_00
* improve func_02017ea4
* rename next functions
* actor rupee improvements
* update gitignore
* fix broken match
* fileselectmain improvements
* fix broken match
* more misc progress
* fix build issues
* fix regressions
* delink overlay 110
* mangled functions names in symbols
* improve how versions are defined in the compiler's command
* add version-exclusive function + fix data_ov110_021861ec size
* match .rodata
* dsd sig apply
* progress
* vfunc_18 & func_ov110_02185d3c + format
* symbols renames
* remove force_data pragma
* started func_ov110_02184a40
* improve vfunc_18 match thanks to nepecam
* fixed relocs issues
* match func_ov110_02186b8c
* continue the awful function (and rename the folder)
* format
* build issues
* almost match func_ov110_02184a40!!!
* start vfunc_10 + misc
* vfunc_10 progress (91%)
* symbol fix
* vfunc_10 big switch fix
* turn some structs into a class
* update symbols
* vfunc_10 prog, move func_ov110_02185da4 to itemmanaager and some docs/cleanup
* progress on playerget and itemmanager
* fix build issues
* remove accidental header from merge and name mUnk_60
* add hex value comment in item id enum
* random stuff
* started vfunc_0c
* move externs around
* match/docs stuff related to item usage in PlayerGet
* format
* vfunc_10 version diff
* improve func_ov110_02186b8c handling and fix broken matches
* vfunc_0c small improvements
* progress on item manager
* complete item manager and add upgrade capacities
* some cleanup
* header cleanup
* match data (kind of)
* symbol naming
* name more symbols 1
* name more symbols 2
* name more symbols 3
* more jp syncing
* mystery actor stuff
* rename the file and fix build errors
* delink ActorRupee and match few functions
* add missing functions, mangle names and match func_ov031_020e9d54
* random stuff (literally)
* decomp more of ActorRupee
* rng stuff (thanks to aetias)
* decomp more of ActorRupee (36%)
* sync symbols
* format
* random: fixed wrong function call in configure.py
* decomp more of ActorRupee (51%)
* add actor ids and move them to their own header + small docs on actor class
* format
* improvements and small progress
* progress
* progress
* sync eur with jp
* fix build issues
* missed a file