* Add a *ton* of const and constexpr around the codebase.
This makes the codebase compile without strings being cast to non-const char*. I also went through and added constexpr where appropriate for tons of static data.
* Make process definitions const too
Might as well
* Array size UB fixes
* Fix ShieldD
* Remove (almost) all unsafe strcpy calls
Bunch of macros. C arrays are easy enough and just need a different call. For various cases where a char* is passed around bare, I've made a TEXT_SPAN macro that can store a length too for bounds checking.
* Move crash handling in safe string operations to separate TU
* strcat safe version
* sprintf made safe too
* Fix compile
* Disable waitForTick and waitBlanking
* Initial frame interpolation implementation
* Initial batch of speed fixes
* Fix Iron Boots
* Strip dead code once used for debugging
* Interpolate shadows
* Revert overzealous/redundant lookups
* Fix JUTFader
* Fix field map cursor
* Fix various particle effects
* Fix Midna when riding Wolf Link
* Fix title logo
* Title Logo 2: Electric Boogaloo
* Fixed grass and flowers
* "Unlock Framerate" config option (WIP)
* Wrap more things in TARGET_PC
* Finish wrapping things in TARGET_PC
* Missed one
* Disable dComIfGd_drawXluListInvisible when interpolating
---------
Co-authored-by: Luke Street <luke@street.dev>
* launch.json cwd
* bodge to load gci for testing
* stub card stat
* gameplay bodges
* viewport, ub fixes
* add release with debug info cmake variant
* be fixes, sound stub
* viewport h
* d_msg_flow BE
* be fopAcM_createItemFromEnemyID
* update launch configuration to use iso
* more audio stubs
* Attempt to set viewport and get messages for brightness check
* skip opening scene again, fixed JMessage::TResourceContainer::TCResource::Do_destroy
* add guards for viewport changes
* moar endian swapping to get Link sitting in PROC_OPENING_SCENE and for dialogues
* BE d_msg_class i_data
* stub bgm start
* fix div by 0 error (for now)
* TEMP_BROKEN in d_menu_ring
* REQUIRES_GX_LINES
* properly stub renderingAmap::draw with REQUIRES_GX_LINES
* better stubbing outside of stubs
* fix event data getting swapped multiple times
* evil draw vp fix
* Stub log imgui
This redirects all spammy logs to an imgui window that is cleared per frame.
This fixes the serious performance dip of the logging, and makes the regular log readable.
* Oops move those optimization changes I accidentally committed behind a flag
DUSK_SELECTED_OPT
* gx_line macro in map
* fix audio stubbing
* switch to CARD API aurora impl
* remove kabufuda from link libs
* refactor imgui stuff and add input viewer
* merge stub log with refactor
* accidentally committed a metaforce header shh
* basic map loader
* ImGuiConsole: Add missing <thread> include
* you may now play as luigi (you may now load stages with bridges)
* bloom fix
* bloom leak fix
* cloud shadow fix
* add soft reset button to imgui menu
* if it broke dont not fix it
* i swear i committed this
* BE swap indMtx in JPAResource::setPTev
* wnark ct fix
* frsqrte implementation from kinoko
* Fix Clang compile error in JAISeq::prepare_getSeqData_
* Add endian conversions to dMsgFlow_c::getInitNodeIndex
This fixes a freeze when Fado tries to stop you from leaving the
starting area.
* Add RAII GXTexObj wrapper; fix almost all leaks
* Update aurora for indirect texturing
* Update aurora for CARD fix
* Fix Clang build
* More d_msg_flow endian fixes
Fixes softlock when trying to talk to Fado and possibly other NPCs.
* no frame limiter
* get pause menu working
* proper frame limiting
* particle pointer size fix
* improve map loader a bit
---------
Co-authored-by: Jasper St. Pierre <jstpierre@mecheye.net>
Co-authored-by: TakaRikka <takarikka@outlook.com>
Co-authored-by: CraftyBoss <talibabdulmaalik@gmail.com>
Co-authored-by: Luke Street <luke@street.dev>
Co-authored-by: Lurs <2795933+Lurs@users.noreply.github.com>
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
Co-authored-by: tgsm <doodrabbit@hotmail.com>
Co-authored-by: Max Roncace <me@caseif.net>
Co-authored-by: Phillip Stephens <antidote.crk@gmail.com>
* Consolidate fopAcM_STATUS into fopAc_Status_e
* Add _e suffix to fopAcStts enums
* Prepare for profile enumeration
* Correct typo in scene_process_profile_definition
* Manually handle g_profile_Obj_DamCps (inline preprocessing)
* Correct g_profile_TAG_LV5SOUP procname to enum
* Create d_priority.h
* Update process profile definitions
* Moved inline comments to the left
* Add missing fopAcStts enums
* Add d_priority.h include in f_pc_leaf.h
* Manually update d_a_obj_damCps profile
* Replace fopAcStts enums replacing and anticipatory profile size correction
* Changed profile size from literal to sizeof() in anticipation of PR #3116
* Provided putative names to staff-related status enums
* Replaced appropriate literals with fopAcStts enums
* Fix borked merge
* Rename item number enums and move to d_item_data.h
* Rename process profile name & draw priority enums
* Move process profile name & draw priority enums to appropriate files
* Moved fpcNm_ enums from d/d_procname.h to f_pc/f_pc_name.h
* Moved fpcDwPi_ enums from d/d_priority.h to f_pc/f_pc_draw_priority.h
* ACTUALLY (whoops) stage merge
* Correct item mistranslation
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
---------
Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
* Clean up various inlines/fakematches/comments
* Copy OptRuby inline name from TWW debug
* Resolve all dEvt_control_c related fakematches, return pointer instead of reference
* Fix some more missing inline usages
* Fix functionvalue weak func order
* Add script to help diffing weak function order
* Improve alink weak func order (44 -> 15)
* Improve m_Do_ext weak order (12 -> 7)
* Remove old hack
* Fix d_a_tbox weak func order
* Fix d_a_npc_ks weak func order
* Fix error when trying to diff weak func order for ShieldD due to hidden function alignment gap symbols
* Debug matches
* Match daAlink_c::procGrassWhistleWait
* Match JASAramStream::channelProc
* More debug matches
* Match JAUStreamStaticAramMgr_::deleteStreamAram and bitset inlines
* Fix some fakematches
* Fix gameinfo player info not being a struct
* Update bug comments
* Fix procids in alink
* d_a_scene_exit OK