Commit Graph

72 Commits

Author SHA1 Message Date
Pheenoh 46d4ed094a split f_ap_game, fapGm_Execute ok, more changes to m_Do_main 2021-02-13 15:23:18 -05:00
lepelog 4bd5ca735f f_op_actor_mng split & started decomp (#112)
* fop-actor-mng

* rodata

* more actor mng progress

* actor mng progress

* format

* cleanup

* fix Mtx function signatures

* PR suggestion

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-02-12 19:47:46 -05:00
Pheenoh 34693ded85 debugDisplay and Debug_console attemp 2021-02-07 17:20:16 -05:00
jdflyer 2f41a74030 d_kyeff, d_kyeff2, m_Do_printf, and m_Do_graphic (#109)
* Split d_kyeff

* Partially matched d_kyeff

* split d_kyeff2

* Match d_kyeff2

* split m_Do_printf

* m_Do_printf partially matched

* hotfix and clang-format

* split m_Do_graphic

* rename symbols in m_Do_graphic

* Match a few functions in m_Do_graphic

* Fix Merge Errors

* Delete sh.exe.stackdump

* Update OSReportInit
2021-01-31 20:03:38 -05:00
Pheenoh 875f264f30 clang-format 2021-01-31 15:45:36 -05:00
Pheenoh 8d15cbebd8 Merge branch 'functions' 2021-01-31 15:39:31 -05:00
Pheenoh 8e3d116bb1 remove functions.h 2021-01-31 15:33:34 -05:00
Julgodis 25d728a920 formatting 2021-01-29 22:52:35 +01:00
Julgodis 4d2d73d15c replace symbols with string literals and python script 2021-01-29 22:52:35 +01:00
Julgodis 813f736d00 JKRSolidHeap::dump now matching using floats 2021-01-27 15:43:21 +01:00
Julgodis d6a112de31 formatting 2021-01-27 05:58:12 +01:00
Julgodis c25ce1bab2 compiling strings? WTF 2021-01-27 05:57:41 +01:00
LC 61b7a10181 c_m3d: Make use of forward declarations (#104)
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.
2021-01-26 21:29:28 -05:00
lepelog 11bf642871 some c_m3d (#97)
* 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>
2021-01-26 17:48:47 -05:00
notyourav 847023cd1b binary OK (#99)
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-26 17:42:28 -05:00
lepelog 1e8f64cb5e decompile s_basic, cleanup mangled names in f_pc (#101)
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-26 17:11:50 -05:00
LC b1c2cd6408 c_phase: Make cPhs_Next completely matching (#102)
* 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>
2021-01-26 17:08:35 -05:00
LC 6a57d6176a J2DPane: Add names for several unlabeled variables (#103)
Should make working on other classes adjacent to J2DPane a little more
descriptive in the decompilation process.
2021-01-26 17:04:10 -05:00
LC 1ef592dd6e Z2AudioLib: Migrate declarations out of functions.h to respective files (#96)
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.
2021-01-25 12:57:46 -05:00
notyourav 4a0aaca15e J2DPane.cpp (#91)
* split J2DPane.cpp

* J2DPane first pass

* consolidate headers and typedef mtx

* remove duplicate J2DScreen.h

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-25 09:57:35 -05:00
jdflyer 56352bd0c2 clang-format 2021-01-21 22:06:54 -07:00
jdflyer 2ba44f831b Merge remote-tracking branch 'upstream/master' into m_Do_audio2 2021-01-21 21:58:53 -07:00
jdflyer 806630e336 m_Do_audio 2021-01-21 21:47:28 -07:00
Erin Moon 972960b6eb Z2AudioLib misc decomp (#75)
* Z2SoundHandles: decomp portions

* start decomping: Z2SpeechMgr2, Z2SoundHandles

* Z2SoundHandles::stopAllSounds(): ok

* Z2SoundHandles::getHandleUserData(): ok

* Z2SoundInfo: header

* Z2SoundObjBase::framework(): ok

* Z2SoundObjBase::Z2SoundObjBase(), Z2SoundObjBase::init(): ok

* Z2SoundObjBase::~Z2SoundObjBase(): ok

* Z2SoundObjBase::stopOK(): ok

* Z2SoundObjBase::stopOK, incomplete Z2SoundObjBase::dispose()

* clang-format

* Z2SoundObjBase::dispose(): ok

* JAISound::operator->(): null assert

* JAIAudience: stub

* Z2SoundObject::{init, deleteObject, isAlive}: ok

* Z2SeMgr: elaborate struct (and decl JAISoundHandles to support this)

* start subclassing Z2SoundObjBase; nonmatching Z2SoundObjSimple::init()

* Z2SeMGr::{incrCrowdSize, decrCrowdSize}: ok

* Z2MultiSeMgr::resetMultiSePos(): ok

* Z2WolfHowlMgr.h: decls

* Z2SoundStarter: move to decls and fix postprocess.py symbol pass

* Z2AudioArcLoader: decls

* Z2SoundObjMgr: ok some fns
- deleteEnemyAll()
- isTwilightBattle()
- setGhostEnemyState()

additionally elaborates parts of the Z2Creature hierarchy

* delete unused .s files and add tool to find them (only runs on linux)

* run clang-format

* postprocess.py: comment out debugging

* add python step to ok-check workflow

* address review comments

* address review comments

Co-authored-by: notyourav <65437533+notyourav@users.noreply.github.com>

Co-authored-by: Pheenoh <pheenoh@gmail.com>
Co-authored-by: notyourav <65437533+notyourav@users.noreply.github.com>
2021-01-21 23:16:51 -05:00
LC f0699b05a8 c_lib: Decomp a few functions (#89)
* 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.
2021-01-21 20:29:22 -05:00
notyourav c48c35f4db fvb, functionvalue, vector (#77)
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-18 14:27:25 -05:00
Jonathan Wase 04354aadb9 JKRAram and JKRAramStream (#80)
* 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>
2021-01-09 20:15:52 -05:00
Erin Moon e71b327988 Z2AudioLib: split (#64)
* Z2AudioLib: split

- Z2SpeechMgr2
- Z2Audience
- Z2EnvSeMgr
- Z2SoundMgr
- Z2AudioMgr
- Z2Creature
- Z2SoundStarter
- Z2WolfHowlMgr
- Z2SoundObject
- Z2SoundObjMgr
- Z2SoundInfo
- Z2AudioArcLoader
- Z2AudioLib
- Z2SoundHandles
- Z2LinkMgr: finish splitting
- Z2SceneMgr: finish splitting
- Z2SeqMgr: finish splitting

* merge fix

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-06 21:00:42 -05:00
lepelog 11e2bab926 match some Z2Calc functions (#72)
* 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>
2021-01-06 20:39:56 -05:00
notyourav a787699d14 Refactor JUTFont symbols (#71)
* fix JUTFont args

* fix

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-06 20:36:27 -05:00
Jonathan Wase 4fa0ecdd97 JKRSolidHeap (#69)
* JKRSolidHeap progress

* JKRSolidHeap, added const to virtual functions, and JKRHeap::TState

* fixed braces

* fix function overload

* clang-format

Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-06 20:33:03 -05:00
lepelog 0eec99db4d Split SComponent (#45)
* split c_math

* split c_angle

* split c_API_controller_pad

* split c_API_graphic

* split c_bg_s_chk

* c_bg_s_gnd_chk split

* more c_bg split

* split c_cc_d

* delete asm

* split c_cc_s

* split c_lib

* split c_m2d and c_m3d_g_aab

* split c_m3d_g_cir

* split c_m3d_g_cps

* split rest of c_m3d_g

* split c_m3d

* split c_malloc

* split c_request

* split c_sxyz

* split and partly decompile c_xyz

* format

* c_angle.h

* begin c_angle decomp

* c_angle

* progress adding stub classes for SComponent

* more c_m3d

* remove some asm and format

* more m3d headers

* more c_angle decomp

* c_lib headers

* add public to classes

* fix csXyz member names

* c_sxyz partly OK

* move Zero csXyz to c_sxyz header

* c_API_graphic

* delete some unused asm

* move math extern data, decompile some functions

* delete unused asm

* fix duplicated c_angle.h

* fix an inlined function name, add more inlined functions for c_angle.h (currently unused)

* format

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-06 20:04:53 -05:00
Jonathan Wase 9ff0143cd7 JKRFileCache matched 22/24 (#73)
* progress

* strlen, strcat, and strcchr

* more functions from JKRFileCache

* JKRFileCache 22/24 matched

Co-authored-by: Julgodis <>
2021-01-06 19:47:07 -05:00
notyourav 6a81911ba6 TObject and JStudio internals (#57)
* TObject

* fix

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-05 12:47:26 -05:00
Jonathan Wase 42a5e45a98 JKRMemArchive (#66)
* JKRArchivePri OK

* JKRArchivePub OK

* formatting

* removed unused asm files and tried to fixed setExpandSize and getExpandSize

* JKRMemArchive and created JKRCompression

Co-authored-by: Julgodis <>
2021-01-05 11:34:58 -05:00
Jonathan Wase 594d2c384d JKRArchive (#63)
* JKRArchivePri OK

* JKRArchivePub OK

* formatting

* removed unused asm files and tried to fixed setExpandSize and getExpandSize

Co-authored-by: Julgodis <>
2021-01-04 18:20:45 -05:00
Erin Moon bc9677e928 close-to-matching mDoCPd_c::convert() (#61) 2021-01-04 10:37:08 -05:00
Jonathan Wase 252d874e14 JKRFileLoader, JKRFileFinder, and JKRThread (#60)
* JKRFileLoader OK

* JKRFileFinder progress

* JKRFileFinder OK

* JKRFileCache fix virtual function signatures

* added OSThread and OSContext types

* JKRThread fixed nonmatching functions

Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-03 22:48:07 -05:00
Jonathan Wase fa9b428351 JKernel cleanup and DVD types (#59)
* JKRDecomp OK

* JKRFile and JKRDvdFile cleanup

* more DVD stuff and cleanup JKRDvdFile more

* formatting

* JKRHeap cleanup

* formatting

* JKRDisposer cleanup

* JKRAramBlock and JKRAramHeap cleanup

* fix merge error

* fixed comments

* forgot to save file...

* fix DVDCBcallback

Co-authored-by: Julgodis <>
2021-01-03 21:26:25 -05:00
Pheenoh 9d766bf0e3 clang-format 2021-01-03 21:11:43 -05:00
Pheenoh 1f6f337212 swap in memcpy for func_80003540, correct some minor issues in dvd.h and JKRDVDFile.h 2021-01-03 21:08:33 -05:00
Jonathan Wase 088b7baecd JKRDecomp OK (#58)
* JKRDecomp OK

* clang-format tool

* JKRThread cleanup and fixed suggestions

Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-03 16:19:54 -05:00
Jonathan Wase 112e86f0e8 JKRAramHeap and JKRAramPiece (#53)
* renamed func_XXX to _savegpr_XX

* renamed func_XXX to _restgpr_XX

* renamed func_XXX to _savefpr_XX

* renamed func_XXX to _restfpr_XX

* cleanup functions.h and moved intrisics to mwcc.h

* formatting

* cleanup functions.h

* Added include/ar/ARQ.h

* renamed func_XXX to _savegpr_25

* removed JKRAramPiece asm files

* JKRAramHeap OK, JKRAramPiece OK

* formatting

* more formatting

* Added const and removed explicit this->

* fixed merge problems

* changed mMessages[1] to mMessage

* foramatting

Co-authored-by: Julgodis <>
Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-03 05:29:50 -05:00
Erin Moon 66626304fa decomp some small files, do some cleanup (#42)
* remove leftover asm: JSUList.s

* d_save_init: decomp

* JMath/random: decomp

* J3DUDL: fixup label

* JAUClusterSound: decomp

* c_API_controller_pad: decomp, elaborate globals/types

* clang-format

* don't add guards to functions.h

* semantic merge of m_cpadInfo stuff

* fix undef symbols

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-03 01:04:15 -05:00
Jonathan Wase 9832be3a63 JKRAramBlock OK (#52)
Co-authored-by: Julgodis <>
2021-01-02 10:32:34 -05:00
Jonathan Wase 79262fb991 JKRAssertHeap OK (#47)
* JKRAssertHeap OK

* removed JKRAssertHeap asm files.

Co-authored-by: Julgodis <>
2021-01-02 02:14:43 -05:00
jdflyer cb436a727b M_do_controller_pad split and partially matched (#36)
* 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>
2021-01-02 02:02:19 -05:00
Erin Moon bf652784d1 Split and decompile parts of JUTGamePad (#33)
* JUTGamePad.o: elaborate classes, split

* JUTGamePad::CButton: decompile functions:
- clear()
- clear(JUTGamePad*)
- setRepeat()

* elaborate PAD* types in new header

* decompile getNumBit()

* elaborate JUTGamePad fields

* move retyped externs from variables.h to JUTGamePad.h

* elaborate JUTGamePadLongPress

* JUTGamePad: decompile functions

- initList()
- init()
- clear()
- assign()
- checkResetCallback()
- checkResetSwitch()
- clearForReset()
- recalibrate()

JUTGamePad: decompile

* JUTGamePad::CStick::clear(): decompile

* JUTGamePad::CRumble: decompile functions

- startMotor()
- stopMotor()
- triggerPatternedRumble()
- startPatternedRumble()
- stopPatternedRumbleAtThePeriod()
- setEnabled()

* JUTGamePadLongPress::checkCallback(): decompile

* nonmatching: JUTGamePad::CRumble::update() and JUTGamePad::getGamePad

* JSUList<T>: allow access to JSUPtrList functions

* functions.h: clear out some func decls that are no longer used

* add notes in JUTGamePad.cpp

* clang-format + add back extern funcs

* fix some more extern labels

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2020-12-29 20:22:18 -05:00
Erin Moon 8e1eeaddce JUTXfb: decompile (#38)
* m_Do_Reset: split and (some) decomp

decompiles:
- my_OSCancelAlarmAll()
- destroyVideo()

* mDoRst::reset(): decompile, plus some supporting code

* split DVD* functions to dvd.h

* mDoRst::resetCallBack(): decompile

* JUTXfb: split

* JUTXfb: decompile (except for almost-matching ctor)

Elaborates JUTVideo and some related stuff.
Decompiles the following functions:
- JUTXfb::initiate()
- JUTXfb::createManager()
- JUTXfb::common_init()
- JUTXfb::destroyManager()
- JUTXfb::~JUTXfb()
- JUTXfb::JUTXfb(): *almost* matching up to regalloc

* clang-format and extern label modifications

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2020-12-29 18:01:48 -05:00
Pheenoh bf0bb4b851 move asm in TUs to files, add diff.py 2020-12-26 13:03:37 -05:00