summaryrefslogtreecommitdiff
path: root/src/code/fault.c
AgeCommit message (Collapse)Author
2024-08-28[ntsc-1.2] Decompile fault.c (#2046)Dragorn421
* wip decomp ntsc-1.2 fault.c * more ntsc-1.2 fault.c * decompiled fault_v1.c * name fault_v1 functions, wip * try to clean up build system (two versions of the fault system coexisting) * cleanup * cleanup2 * fix build gc-eu-mq-dbg * match 2 more, ty anon * matched * review * more review * fixup spec * `(uintptr_t)ptr op int` instead of `ptr op (type*)int` * move fault.h out of global headers, properly include fault.h and versions.h * compile all fault_*.c files regardless of version by overriding FAULT_VERSION * n64 FaultMgr.framebuffer s32 -> u16* * FaultMgr.framebuffer -> FaultMgr.fb * make gc FaultMgr.fb u16* (yes, thats everything) * bss * fix Fault_Printf return type * noop FaultDrawer_SetFontColor, FaultDrawer_SetCharPad in fault_n64 * fault_color_ stuff is only for fault_gc * rm empty line in makefile * I guess `D_80105A90_unknown` is `[sg]TotalAllocFailures` * bss * `Fault_WaitInput` -> `Fault_WaitForInput` * use named fault funcs in pointers array * FAULT_OOT{N64,GC} -> FAULT_{N64,GC} * Apply suggestions from code review Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com> * review, sync fault_{gc,n64} * Apply `FPCSR_CE` suggestions from code review Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> --------- Co-authored-by: Derek Hensley <hensley.derek58@gmail.com> Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
2024-08-12Add names to all typedef'd structs, unions, and enums (#2028)cadmic
* Add names to all typedef'd structs, unions, and enums * wtf vs code * Use a better regex
2024-08-09Match remaining GC retail versions (#2019)cadmic
* Match the remaining GC retail versions * Fix BSS ordering for existing versions * Disable clang-format for #pragma increment_block_number * sramResetCode -> sSramResetCode * Replace 0xFF3F with or-ing all buttons together * Revert "Disable clang-format for #pragma increment_block_number" This reverts commit 406b6d26c92911c676a7ea9f07a1612211760e11. --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2024-08-08gc-us OK (#2018)cadmic
Match BSS order and delete disassembly data
2024-08-02Automate fixing BSS ordering (#2009)cadmic
* Automate fixing BSS ordering * Typo * Some cleanups * Move pragma check after printing BSS info * Some proofreading * multiprocessing, require version, some colors * Tweak output * Black + mypy * Move logging and sys.exit out of helper functions * Use stdout instead of stderr in fix_bss.py * Add suggestion to conflicting offsets error Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Remove var = list[T]() * Improve error handling Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Add error if no pointers to BSS * Add comment about process_file_worker * Only print updates if stdout is a tty * Use new binary-search-esque candidate generation algorithm Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com> * Add Wikipedia link * More comment tweaks --------- Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2024-06-24Fix misc 22 (#1971)Dragorn421
* remove trailing whitespace * fix/docbug about dright for next page of fault menu * // size = ...; -> // size = ... * access `ColliderJntSph.elements` as an array * fixup doc in PreRender.c * empty line after decl * gdSPDefLights1 xyz arguments for direction are signed 8bit values * doc bug of bad use of free in EffDust actor * decimal for Actor.colorFilterTimer * shopItemEntries -> sShopItemEntries * HEISHI4_AT_KAKRIKO_ENTRANCE -> HEISHI4_AT_KAKARIKO_ENTRANCE * format
2024-06-19Experiment: remove global.h dependency from sys_math, sys_math3d, z_lib (#1956)mzxrules
* split sys_math, sys_math3d, z_lib from global.h * suggestions * forgot this * more math stuff * nit fix * re-add ichain.h * resolve tharo's comments
2024-04-14Match retail BSS ordering (#1927)cadmic
* Match retail BSS ordering * Revert moving some global variables to headers * Adjust block numbers after header changes * Fix debug build * Overlay bss ordering * Fix BSS ordering after header changes * gc-eu-mq OK * Implement preprocessor for #pragma increment_block_number * Transfer usage comment from reencode.sh * Use temporary directory instead of temporary file * Move ColChkMassType back
2024-02-27Filename & line number args cleanup (#1891)Tharo
* Filename & line number args cleanup * Use int for line number args over s32/u32 * Add missing const qualifiers from filename args * Fix gcc warning in game.c * Add comment to weird assignments in GameState_Init
2023-09-09Apply noreturn attribute where applicable (#1532)Tharo
2023-01-02Import fault bss under NON_MATCHING (#1484)Tharo
* Import fault bss under NON_MATCHING * Fix comments in data files * Fix variable name
2022-11-01Rename `vt.h` to `terminal.h` (#1339)Dragorn421
* `vt.h` -> `terminal.h` * `VT_` -> `T_` (as in Terminal) * `vt.h` -> `terminal.h` in includes too Pepega * Sort out tiny terminal.h include inconsistencies * Format * -> `TE_` * format * `TE_` -> back to `VT_` (parkour!) * explicit VT
2022-10-04Fix many missing NULLs (#1389)Roman971
* Fix many missing NULLs * Fix a raw actor id in en_horse
2022-10-02Various minor fixes (#1383)Roman971
* Swap REGION_US and REGION_JP * Fix a few missing EXCH_ITEM enum values * Remove unnecessary casts on alloc functions * Fix a double slash in the spec file * Swap top and bottom args in StackCheck_Init * Remove some unnecessary & in array references * Run formatter * Fix the comments for US and JP codes
2022-09-03More documentation for padmgr.c (#1336)Tharo
* More documentation for padmgr.c * Update comments * Further suggested changes * Suggested changes * LOG_SEVERITY_INFO -> LOG_SEVERITY_CRITICAL * Adjust PadMgr_RequestPadData comment * Avoid array notation for args, adjust comment, rename the FaultMgr padInput field to inputs to better reflect it's an array
2022-06-15Enable int-conversion warnings and fix all current instances (#1280)Roman971
* Enable int-conversion warnings for gcc/clang * Fix all current int-conversion warnings * Run format.sh * Apply review suggestions
2022-04-30Fix misc 10 (#1208)Dragorn421
* Cleanup around `Item_DropCollectible` * Cleanup around `Math3D_Vec3fDistSq`, `Math3D_Dist2DSq` * Material/Model naming for one dlist pair * Minor comments fixup * Explicit `!= NULL` check * Signed decimal for an array of coordinates * Fixup comments some more
2022-04-08Message Queues, Threads, and surroundings cleanup (#1178)Tharo
* message queues, threads, and surroundings cleanup * Format, make the formatter prefer clang-format-11 if found * Fix __osThreadTail type * Q -> Queue, thread defines renamed * Reformat, add missing NULL * Suggested changes and further casting cleanup * Reformat * padmgr name fixes
2022-02-13Run formatter (#1139)Dragorn421
2022-02-06Correctly align program stacks (#1133)Tharo
* Properly align program stacks * Enforce size being a multiple of 8 bytes * Correct alignment calculation * Use an ALIGN8 macro in the stack declaration macro
2022-02-02Documentation for fault.c and fault_drawer.c (#1106)Tharo
* Mostly document fault and fault_drawer * FaultDrawer printf functions return s32 * Review Suggestions for comments Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> * Some further review suggestions * Further changes from suggestions * Fix Fault_AddClient doc comment * Bug comment for memdump overrun, add more to Fault_PadCallback bug comment * mb -> MB, comment about bss above externs * Fix color codes Co-authored-by: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com>
2021-11-28Cleanup unnecessary &'s on function/array pointers (#1031)Roman971
2021-11-22z_message_PAL, message_data_static and surrounding doc (#996)Tharo
* Initial progress on z_message_PAL, very messy * Fix merge * Some more progress * Fix merge * More z_message_PAL * Small progress * More small progress * message_data_static files OK * Prepare z_message_tables * Matched another function, small updates * Attempt to use asm-processor static-symbols branch * Refactor text id declarations * Begin large text codes parser function * Fix merge * Refactor done * Build OK, add color and highscore names * Remove encoded text headers and automatically encode during build * Fix kanfont * Various cleanups * DISP macros * Another match aside data * Further progress * Small improvements * Deduplicate magic values for text control codes, small improvements * Tiny progress * Minor cleanups * Clean up z_message_PAL comment * Progress on large functions * Further progress on large functions * Changes to mkldscript to link .data in the .rodata section * data OK * Few improvements * Use gDPLoadTextureBlock macros where appropriate * rm z_message_tables, progress on large functions * 2 more matches * Improvements * Small progress * More progress on big function * progress * match func_80107980 * match Message_Update * match func_8010BED8 * done * Progress on remaining large functions * Small progress on largest function * Another match, extract text and move to assets, improve text build system * Small nonmatchings improvements * docs wip * Largest function maybe equivalent * Fix merge * Document do_action values, largest function is almost instruction-matching * Rename NAVI do_action to NONE, as that appears to be how that value is used in practice * Fix merge * one match * Last function is instruction-matching * Fix * Improvements thanks to engineer124 * Stack matched thanks to petrie911, now just a/v/low t regalloc issues, some cleanup * More variables labeled, use text state enum everywhere * More labels and names * Fix * Actor_IsTalking -> Actor_TalkRequested * Match func_8010C39C and remove unused asm * More docs * Mostly ocarina related docs * All msgModes named * Fix assetclean * Cleanup * Extraction fixes and headers * Suggestions * Review suggestions * Change text extraction again, only extract if the headers do not already exist * Fix * Use ast for charmap, fix assetclean for real this time * Review suggestions * BGM ids and ran formatter * Review comments * rename include_readonly to include_data_with_rodata * Remove leading 0s in number directives * Review suggestions for message_data_static * textbox pos enum comments, rename several enum names from Message to TextBox Co-authored-by: Thar0 <maximilianc64@gmail.com> Co-authored-by: Zelllll <56516451+Zelllll@users.noreply.github.com> Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain> Co-authored-by: Roman971 <romanlasnier@hotmail.com>
2021-11-07Document parts of audio (#1000)zelda2774
* Minor labelling * progress * play percentage -> delay * duration -> gatetime * more * more * more * seqIdx -> playerIdx * more * more * more * more * format * fix comment * filters * more * media * confusion * Sync load is actually slow load * AudioHeap prefix * more * more * reformat * more * more * AudioLoad * more * more * seq banks * more consistent * more * name last function in audio_load * More audio_synthesis * clean up audio tables * minor * slow/fast load ramAddr * format * remove unused * Remove union * remove padding * audio bank -> sound font * seqLayer -> layer * stuff * seqChannel -> channel * ChannelLayer -> Layer * remove define, add bug comment * format * more * cache enum * more * AudioSeq function prefix * naming * bankIdx -> bankId * more * format * review * more * fixes * avoid hardcoded sfxid's * SE -> Sfx Co-authored-by: zelda2774 <zelda2774@invalid>
2021-10-02Fix/cleanup/rephrase miscellaneous stuff (#983)Dragorn421
* Add parens around params usage in VEC_SET macro * Remove unnecessary space character in a xml * Use defines instead of magic values in head/tail magic comments * Use `OS_USEC_TO_CYCLES` to make a time look better in `Graph_TaskSet00` * `0x25800` -> `sizeof(u16[SCREEN_HEIGHT][SCREEN_WIDTH])` * `0x803DA800` -> `0x80400000 - frame buffer size` * Use `OS_VI_` defines instead of hex * Add empty line after some variable declarations * Remove unused `extern CutsceneData` in `z_bg_dy_yoseizo.c` * `Matrix_MtxFToYXZRotS` does not use `MTXMODE_` * Use `MTXMODE_` more * Remove `ASCII_TO_U32`, use `'IS64'` * Add explicit `!= NULL` in some ternaries * Use `INV_CONTENT`, `AMMO` macros more * Use `PLAYER_AP_` enum more to compare to `Player#heldItemActionParam` * Get rid of lowercase hex (outside libultra) * `gWindMill*` -> `gWindmill*` * Format and small fix enums in `z_boss_mo.h` * Use `CHECK_BTN_ANY` more * Fix xz/xy mistake in comment in tektite * Rephrase comments mentioning "the devs" in a more neutral way * Clean-up some objectively useless parens * Fix some negative values written as u16 instead of s16 in ichains * `SKJ_ACTON_` -> `SKJ_ACTION_` * Run formatter * Fix unk_ offset of `TransformUpdateIndex#unk_10` -> `unk_0E` * Remove comments using in-game text * Remove `U` suffix from integer literals * Revert "Remove `ASCII_TO_U32`, use `'IS64'`" This reverts commit c801337dde9fe5e8b7a7ecf85ad3629bf5b87aaf. * Use `PLAYER_STR_*` to compare to `CUR_UPG_VALUE(UPG_STRENGTH)` * Add empty line after decl x2 * Revert "Use `PLAYER_STR_*` to compare to `CUR_UPG_VALUE(UPG_STRENGTH)`" This reverts commit d80bdb32da449edc74e02b8ab3f5a2c532e74bdb. * Make `CUR_UPG_VALUE(UPG_STRENGTH)` compare to integers (eventually needs its own enum) * Only use `PLAYER_SHIELD_` enum with `Player#currentShield` * Only use `PLAYER_TUNIC_` enum with `Player#currentTunic`
2021-02-13Fix most compiler warnings in the boot and code segments (#674)Tharo
* Less warnings in boot & code segments * few more warnings gone * Ran formatter * z_view warning gone * -> 1 * f31 -> 31 * Remove function casts * Few more small improvements * Separate declaration and assignment in func_80091738 and Item_Give Co-authored-by: Thar0 <maximilianc64@gmail.com>
2020-10-03libultra cleanup (#215)Random
* cleanup libultra * fixes - use quotes instead of <> for includes - add macros for zelda specific thread priorities - fix Makefile - properly format the remaining pfs structs * fix button macros + add CHECK_BTN_ANY/CHECK_BTN_ALL * remove ULTRA_ABS * fix includes * update z_player.c/z_lib.c + run format.sh * merge upstream/master * fix include in En_Goroiwa * fix includes
2020-09-15Decompile PreRender.c (#319)Random
* Decompile PreRender.c * use NON_EQUIVALENT and run format.sh * Get rid of some magic values * rename dList/dListp to dListHead/dList * make func_800C213C NON_MATCHING * replace more values with SCREEN_WIDTH/SCREEN_HEIGHT * dList/dListHead with gfxp/gfx
2020-09-14Matched fault.c (#389)Lucas Shaw
* Matched fault.c * Removed unused asm
2020-08-23Match/Improve a bunch of non matchings (#342)Roman971
2020-08-15Match a few functions (#324)Random
* match a few functions * run formath.sh * minor fixes
2020-07-30Math Sizes (#297)louist103
* Math Sizes Added sizes to most variable types * Removed sizes and fixed pads Removed sizes from base types and cleaned up pads * PR fixes
2020-07-18Decomp and matching in fault.c and game.c (#265)jacobly0
* Match Fault_WaitForInputImpl. * Decomp Fault_AddAddrConvClient, similar issues as Fault_AddClient. * Decomp Fault_WaitForButtonCombo, regalloc issues. * Rename func_800D59F8 to Fault_WalkStack. * Decomp Fault_DrawStackTrace. * Decomp Fault_WalkStack. * Decomp Fault_LogStackTrace. * Match Fault_ThreadEntry. * Improve Fault_DrawMemDump matching. * Improve code consistency in fault.c. * Match GameState_Update. * Match GameState_Realloc. * Match GameState_DrawInputDisplay. * Trivial cleanup of sBtnChars.
2020-06-17Matched some controller files (#178)Lucas Shaw
* osPfsIsPlug.c and osContSetCh.c OK * update * __osPfsGetStatus.c OK * removed unused asm * Updated all libultra controller files to use new structs instead of the temporary structs. Added os_pfs.h * controller updates * fixed header guard * Made suggested changes
2020-06-05ucode_disas.c progress (#188)Random
* ucode_disas.c progress * fix * minor fixes * minor comment changes
2020-05-22Decompile code_8008E6A0.c / Add CHECK_PAD macro (#156)Random
* Decompile code_8008E6A0.c * Delete "counter" file
2020-04-18Naming some functions in libultra_code, decompiling a decent amount. (#77)Lucas Shaw
* osgetactivequeue ok * osspdevicebusy ok * osGetCurrFaultedThread ok * osSpRawStartDma OK * __osSpSetPc and osViGetCurrentFramebuffer OK * sinf, sins, and sptask OK * coss OK * cosf OK * ran format.sh * Updated PR to use ultratypes * osContStartQuery OK * ran format.sh * Updated PR to fix issues * Made suggested changes
2020-04-14padmgr and related (#71)silv3rwing07
* In process of moving changes over from old repo * Merged in changes * Finished import of padmgr changes from old repo * Adjusted some volatile * Improving padmgr volatile situation * Almost matched osReadMempak * Working on osMempakDataCRC * Explanations and equivalents but no matches for osMempakAddrCRC and osMempakDataCRC * OK after merge * Matched osMempakAddrCRC and osMempakDataCRC * Matched osReadMempak * Updated PadMgr function names to be less like original code * Changed variable names to make them further from original code * Changed names and it stopped matching * Undid clang-format steamrollering whitespace memes * Cleaned up Input names * More formatting changes * Moved padmgr to z64.h, deleted padmgr.h
2020-04-13Decompile z_jpeg.c (#70)Random
* Decompile z_jpeg.c - Decompile z_jpeg.c - Move .bss variables from fault.c and fault_drawer.c into .s files to avoid bss reordering * Rename JPEGWork to JpegWork and minor fix in Jpeg_GetU16
2020-04-08Decompile sleep.c and printutils.cRandom
- Decompile sleep.c (OK) - Decompile printutils.c (OK) - Fix 1 non-matching in z_room.c - Get rid of some magic numbers
2020-03-24Run formatter with changesRoman971
2020-03-22Format all src C filesRoman971
2020-03-18Various fixes/matchesRoman971
- Matched all remaining functions in `__osMalloc.c`, 2 functions in `code_8007BF90.c`, 1 in `code_800A9F30.c`, 2 in `fault.c`, 1 in `fault_drawer.c`, 1 in `gfxprint.c`, 2 in `z_camera.c` - Improved most other remaining non matchings to ensure they are actually equivalent and to get them closer to matching - Added a `alloc.h` header file in the process of working on `fault.c` non matchings - Decompiled `padmgr.c` data/bss in order to improve padmgr non matchings - Removed unused `z_en_wallmas.c` data files - Moved functions confirmed to be in `z_cheap_proc.c` to their own file with that name
2020-03-17First proper commit.Jack Walker