* OK __ct__15JKRThreadSwitchFP7JKRHeap
* OK createManager__15JKRThreadSwitchFP7JKRHeap
* OK enter__15JKRThreadSwitchFP9JKRThreadi
* OK callback__15JKRThreadSwitchFP8OSThreadP8OSThread
* OK draw__15JKRThreadSwitchFP14JKRThreadName_P10JUTConsole
* OK draw__15JKRThreadSwitchFP14JKRThreadName_
* OK __dt__15JKRThreadSwitchFv
* JKRThread.cpp cleanup
* Fixed tp.py and libelf, changed JUT_ASSERT macro and removed unused .s files.
* Changed JKRThread access specifiers
Co-authored-by: Julgodis <>
* d_resource / some d_stage
* setup dDlst_list_c / d_select_icon OK
* JUTXfb / some JUTVideo + various
* some J2D classes / JUTVideo/Fader attempts
* bunch of m_Do cleanup + matches / f_ap_game OK
* mDoLib_clipper::setup OK
* most of d_meter_HIO OK
* pane_class / kantera_icon_meter
* some d_save matches / fixes
* more d_save cleanup
* fopAc_ac_c changes
* move a bunch of d_save / d_com_inf_game stuff
* format + remove asm
* move bit labels to correct header
* format
* move d_item
* fix check_itemno doc
* move
* fixes
* getLayerNo_common_common almost matching
just regalloc issues
* small fixes
* few more matches
* fix
* mass mng header
* d_cc_d start
* c_cc_d ok
* tmp commit
* almost, reordering of vtable functions
* progress
* more progress
* cleanup, still non matching
* mark all of d_cc_d as nonmatching to OK
* c_cc_s
* c_cc_s OK
* d_cc_mass_s OK
* cleanup
* gameinfo __sinit, not OK
* a bit of cleanup
* format
* remove asm
Co-authored-by: lepelog <lepelog@users.noreply.github.com>
* J3DUClipper sinit
* sincosTable_ etc
* decompile JMATrigonometric sinit
* f_op_actor_mng
* move f_op_actor_mng and parts of mDo_ext
* J3DSys sinit
* f_op_scene_req
* failed matching attempt for decodeSZS__9JKRDecompFPUcPUcUlUl
* mX -> x
* fix mCull and fopAcM_prm_class members
* fix a few function parameters
* move missing NON_MATCHING
* remove some unneeded data
* turns out that data was not unused
* remove unused asm
* readd asm deleted by accident
* clean up d_a_player
* move some of daalink
* more daalink / daplayer
* setup some daalink members
* rest of daalink members setup
* remove comment
* few more matches
* remove asm
* more matches
* more matches + move e_wb_class
* fix some d_save classes
Co-authored-by: lepelog <lepelog@users.noreply.github.com>
* Makefile: Fix issues with iconv causing it to break under devkitPro / msys
The version of iconv included in devkitPro does not have a -o option,
so replace it with normal shell redirection. Also, SHIFT-JIS does not
have a mapping for ~, so output the Windows CP932 variant instead,
which does. See:
https://en.wikipedia.org/wiki/Tilde#Unicode_and_Shift_JIS_encoding_of_wave_dashhttps://en.wikipedia.org/wiki/Code_page_932_(Microsoft_Windows)#Single-byte_character_differences
* Update diff configuration
-Bbinary doesn't seem to work with my copy of
bjdump (it says it can't decode unknown architecture)
Cheese things by using expected/ instead of having
the user place things manually.
* JUTNameTab
* J3DPacket / J3DDrawBuffer
* format
Co-authored-by: lepelog <lepelog@users.noreply.github.com>
* data for c_angle
* data c_sxyz
* partially migrated c_xyz data
* c_xyz data
* c_xyz data decomp
* c_math data
* c_math data
* c_lib data, some cleanup
* rename some unnamed functions and create header for them
* header for string functions
* format and fix fabsf
* cleanup
* remove more unneded function prototypes
* move fpclassify to math.h
Some inline helper function of the included files in the header make use
of functions defined within it. This can cause a circular dependency
cycle if said helper functions are ever defined within the classes.
To break this potential cycle, we can use forward declarations.
This also has the benefit of reducing preprocessing overhead a little
bit.
* decompiled some bgs_chk funcs
* c_m3d_g
* c_math progress
* remove duplicate SComponent headers
* move some variables and decompile a function
* some inlined from debug
* cM3d_2PlaneLinePosNearPos
* fix fabsf and decompile cM3d_CrawVec
* format
* cleanup
* more cleanup
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* c_phase: Make cPhs_Do a little more matching
Still doesn't fully match, but now the branch offsets and everything
else line up.
The load of pUserData still doesn't properly match though.
* c_phase: Make cPhs_Next completely match
Co-authored-by: Pheenoh <pheenoh@gmail.com>
Removes the strong dependency on a single header file and moves
declarations to their respective header file.
This allows for making dependencies explicit in cpp files and other
headers, and also makes it much easier to track where everything related
to a particular component is.
This change also creates a few header files that previously didn't
exist, making it much nicer for people implementing things, as they
won't need to create the header file, it'll just be there ready to go.
Ideally functions.h wouldn't even be a thing, as this header adds a lot
of preprocessing overhead due to its size, and will continue to grow
significantly larger over the lifespan of the project, which can also
impact the performance of editors that do dependency lookups and
context-aware syntax highlighting.
* c_lib: Decomp cLib_memSet and cLib_memCpy
Gets rid of some low-hanging fruit.
* c_lib: Decomp cLib_distanceAngleS
Another super trivial function to make match.
* c_lib: Decomp cLib_targetAngleY overload set
Fairly trivial in terms of matching.
* c_lib: Sate clang-format
I didn't touch this code, but the clang-format pass wants this done, and
so it is.
* before __register_global_object
* JKRThread::sThreadList, JKRHeap::sSystemHeap, etc.
* cleanup and started on JKRDvdArchive
* before changing JKRCompression
* more JKRDvdArchive, abs, and memset
* fixed JKRArchive::setExpandSize split
* JKRArchive::sCurrentDirID, JKRDvdFile::sDvdList, and matching JKRDvdFile constructors
* problems
* merge fixes and formatting
* updated clang version in clang-format-all to version 10
* Added OSPhysicalToCached and struct for global memory
* remove useless __attribute__
* changed from defines and macros to const variable and function
* changed FLAG_HAS to FLAG_ON
* JKRAram, linking problems
* fix JKRAram
* remove nonmatching stuff
* renamed static data
* more static class members
* JKRAramStream OK
* formatting
Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* Z2Calc OK
* inline definitions in random.h and format
* set -enum int compiler flag and fix enum hacks
* note for get_ufloat_1 inline
* PR suggestions and UB note
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* JKRArchivePri OK
* JKRArchivePub OK
* formatting
* removed unused asm files and tried to fixed setExpandSize and getExpandSize
* JKRMemArchive and created JKRCompression
Co-authored-by: Julgodis <>
* JKRArchivePri OK
* JKRArchivePub OK
* formatting
* removed unused asm files and tried to fixed setExpandSize and getExpandSize
Co-authored-by: Julgodis <>
* m_Do_controller_pad split
* Attempt to match and match mDoCPd_c::recalibrate
* Fix Merge Errors
* clang-format
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* split Z2SeMgr / begin split of Z2SeqMgr
* Z2StatusMgr ok
most of Z2StatusMgr done, rest split
* name some class members
* name some Z2SceneMgr vars
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* f_op_actor_tag OK
* f_pc_layer_tag OK
* f_pc_layer_iter
* forgot a return
* identation and extern var name comments
* fix struct member name
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* Added JSUListIterator and decompiled JKRHeap::dispose_subroutine
* JKRDisposer!
* only 4 functions not OK in JKRHeap
* JKRThread asm functions
* more JKRThread
* JKRThreadSwitch
* JKRThread::JKRThread
* More JKRTHread functions and vtable
* fixed bad merge
* update JKRThread and JKRThreadSwitch to use new virtual inheritance
* save before asmsplit.py script
* JKRFile
* JKRDvdFile
* JKRFileCache
* JKRFileFinder
* JKRFileLoader
* JKRAssertHeap
* JKRExpHeap
* JKRSolidHeap
* fixed type and functions definitions
* JKRArchive (Pub)
* missed file
* JKRArchive
* forgot obj_files.mk
* fixed merge error and class members
* class members
* removed unused asm files
* added names to global variables
* class members for JKRHeap, JKRExpHeap, JKRSolidHeap, and JKRFileCache.
* JSULink, JSUList, JSUTree and more matching in JKRHeap
* Added JSUListIterator and decompiled JKRHeap::dispose_subroutine
* more templates and JKRHeap functions
* JKRDisposer!
* only 4 functions not OK in JKRHeap
* fixed: *this->getObject()
Co-authored-by: Pheenoh <pheenoh@gmail.com>
* begin Z2LinkMgr
Z2CreatureLink::setLinkGroupInfo, Z2CreatureLink::setLinkHp ok
* split Z2CreatureLink
* split Z2Calc
* fix label data type / clean up
* fix getRandom_0_1 instruction
* fix
* clean up
* new system for handling vtables
* commented out non-matching JKRDisposer::~JKDisposer()
* removed artificial vtables and matched simple virtual-call functions
* better text on nonmatching functions
* reverted asmdiff.sh
* attempt 2
* Spelling
* banner and .gitignore for vtable artifacts
* move virtual function to the correct class
* remove unnecessary casts
* Added JSUList, JKRDisposer, and JKRHeap.
JSUList: Decompiled JSUPtrLink and JSUPtrList with their respected
functions. The templated class JSUList is left.
JKRDisposer: Constructor matched but the destructor is close but
not yet a match.
JKRHeap: No functions matches yet. JKRHeap.cpp now includes
"operator delete" which makes it possible to forward compile
destructors.
* moved files from src/ to libs/