* Wrap >4-char literals in a MULTI_CHAR macro
Modern compilers do not support CW's non-standard behavior with
>4 char literals. We can, however, use a constexpr function to
compute the u64 values directly. This leaves <=4 char literals
unchanged.
* Replace non-pointer usages of NULL with 0
* Define NULL to nullptr on C++11 and above
* Fix more -Wpointer-arith and -Woverflow warnings
* Replace u32/s32 with uintptr_t/intptr_t where appropriate
* JSUOutputStream: Overload all standard int types
* Fix remaining <string> -> <cstring> for GCC compilation (#3114 follow-up)
MWerks' <string> header transitively includes C string functions
(memcpy, strlen, strcmp, etc.), but GCC/Clang's <string> is the C++
std::string header. These files all use C string functions and should
include <cstring> instead.
* Use std::isnan instead of isnan for GCC compilation
GCC's <cmath> places isnan in the std namespace. Using the unqualified
isnan fails to compile with GCC/Clang.
* Fix cCcD_Src types: s32 -> u32 for bitmask fields
cCcD_SrcObjCommonBase::mSPrm, cCcD_SrcObjTg::mType, and
cCcD_SrcObjAt::mType are used as bitmasks (SetType/SetSPrm take u32,
MskType/MskSPrm use u32, values like 0xFFFFFFFF are common in
aggregate inits). Change from s32 to u32 to match usage.
Also fix AT_TYPE_WOLF_ATTACK/AT_TYPE_UNK to use unsigned literals,
and remove now-unnecessary (s32) casts on hex literals in collision
source data.
* Mark dummy() functions as static to avoid multiple definition errors
These decomp artifact functions have the same name and signature across
TUs, causing linker errors when building as a single binary.
* Last fix for standard compiler error
* adding define guards around headers
* rename cmath.h and climits.h to cmath and climits respectively
* renaming cstdarg.h to cstdarg
* renaming cstdlib.h to cstdlib
* renaming cstring.h to cstring
* renaming cstdio.h to cstdio
* renaming cmath locale ctype
* renaming stdarg string and va_list
* renaming cstddef
* renaming stdio stddef stdlib
* renaming algorithm, functional, iterator, memory, and utility
* renaming bitset, cstdint, limits, and stdint
* renaming new and type_traits
* update quote includes for standard library headers to angle bracket includes
* Fix GetPolyIndex and GetBgIndex, fixing a couple regallocs
* Match daNpcCd2_c::checkFearSituation and daNpcCd2_c::getAnmP
* Match daAlink_c::jointControll
* Clean up float class checks
* Move float constants to global.h
* Replace DANPCF_C_HACK with a better fakematch
* d_a_obj_item OK
* Fix ninja diff
* Misc debug/nonmatching fixes
* Fix ninja diff for PAL
* Fix bad PAL split
* Fix JUT_ASSERT to be a nested define
* Switch names that appear in asserts to be constants instead of defines
* Replace `0` in asserts with `NULL` or `FALSE`
* Fix fpclassify
* Fix ARRAY_SIZE
* Use G_CM3D_F_INF
* More fixes for fpclassify
* Remove FLOAT_LABEL
* Remove incorrect FLAG_ON macro
* Remove UNK_BSS macro
* Silence clangd unused header warning for PCH
* Match mDoExt_morf_c::getPlayMode
* Misc cleanup
* Fix actor cull spheres
* Match daPy_py_c::getLastSceneSwordAtUpTime, JUTGamePad::testTrigger
* Fix improper demangling of dBgS_SphChk::SetCallback
* Fix d_camera rangef weak func order
* Match more alink_wolf funcs
* d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop
* dolphin OS work / cleanup
* dolphin GX work / cleanup
* finish changing dolphin files to C
* more files into C
* match rest of MSL_C math functions
* more dolphin files converted to C
* remove asm
* d_bg_w work
* remove asm
* d_a_alink work / kytag14
* JUTException inherit JKRThread
* OK __ct__12JUTExceptionFP14JUTDirectPrint
* OK create__12JUTExceptionFP14JUTDirectPrint
* OK setFPException__12JUTExceptionFUl
* OK showFloatSub__12JUTExceptionFif
* OK showFloat__12JUTExceptionFP9OSContext
* OK searchPartialModule__12JUTExceptionFUlPUlPUlPUlPUl
* OK search_name_part__FPUcPUci
* OK showStack__12JUTExceptionFP9OSContext
* OK showMainInfo__12JUTExceptionFUsP9OSContextUlUl
* OK showGPR__12JUTExceptionFP9OSContext
* OK __sinit_JUTException_cpp
* OK showMapInfo_subroutine__12JUTExceptionFUlb
* OK showGPRMap__12JUTExceptionFP9OSContext
* OK showSRR0Map__12JUTExceptionFP9OSContext
* OK printDebugInfo__12JUTExceptionFQ212JUTException9EInfoPageUsP9OSContextUlUl
* OK isEnablePad__12JUTExceptionCFv
* OK readPad__12JUTExceptionFPUlPUl
* NONMATCHING printContext__12JUTExceptionFUsP9OSContextUlUl
* OK printContext__12JUTExceptionFUsP9OSContextUlUl
* OK __dt__12JUTExceptionFv
* OK waitTime__12JUTExceptionFl
* OK createFB__12JUTExceptionFv
* OK setPreUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v
* OK __ct__13JUTExternalFBFP16_GXRenderModeObj8_GXGammaPvUl
* OK createConsole__12JUTExceptionFPvUl
* NONMATCHING queryMapAddress_single__12JUTExceptionFPcUllPUlPUlPcUlbb
* OK queryMapAddress__12JUTExceptionFPcUllPUlPUlPcUlbb
* OK appendMapFile__12JUTExceptionFPCc
* clean up
* OK panic_f__12JUTExceptionFPCciPCce
* OK panic_f_va__12JUTExceptionFPCciPCcP16__va_list_struct
* OK errorHandler__12JUTExceptionFUsP9OSContextUlUl
* format
* format
* fixed requested changes
* merged with master and removed *.s files
Co-authored-by: Julgodis <>
* 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 <>
* 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
* 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>