Commit Graph

22 Commits

Author SHA1 Message Date
lepelog c55fef0eb2 J2DPane (#168)
* most of J2DPane

* finish j2dpane

* cleanup

* use J2DBlendInfo
2021-12-11 23:39:53 +01:00
Jonathan Wase 64e8dd2612 JUTException (#154)
* 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 <>
2021-11-09 23:09:38 +01:00
TakaRikka 7374f5f2f7 m_Do cleanup, d_resource, drawlist stuff (#145)
* 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
2021-09-24 11:11:10 -04:00
lepelog 60064c2c73 Jsupport stream and JKRAramArchive (#143)
* JSupport streams

* JKRAramArchive
2021-08-28 16:32:14 +02:00
lepelog 0b8db42226 Copy JKernel (#126)
* start JSystem

* JKRAram and JUTGamePad

* started heap and thread

* more JKernel

* mostly finished JKernel

* delete unused asm

* JKRFileFinder

* delete unused asm and match findNextFile

* format

* fix mtx_vec
2021-05-02 20:03:24 -04:00
Julgodis 9335ce5119 clang-format 2021-03-29 00:10:25 +02:00
Julgodis 1e95d29b60 dol2asm OK 2021-03-28 22:49:05 +02:00
lepelog ce8319486b Fix symbol names (#118)
* checkpoint

* checkpoint

* rename f_pc

* checkpoint

* small symbol rename and fix some fpc symbols

* remove unneeded entries from ldscript

* simplify ok check, update docker container

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-03-15 02:12:44 -04: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
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
Erin Moon ebd329b188 normalize header guards to {tu_name}_H_ (#87)
i previously had a bad habit of using double underscores in include
guard macro names, which are implementation-reserved per
the C++98 standard (see 17.4.3.1.2 Global names).

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-18 14:02:51 -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
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
Jonathan Wase 9832be3a63 JKRAramBlock OK (#52)
Co-authored-by: Julgodis <>
2021-01-02 10:32:34 -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
Pheenoh 715ba1304a run clang-format 2020-12-26 11:31:49 -05:00
Jonathan Wase ff2faa9804 JKernel (#20)
* JKRDvdArchive.s split

* JKRMemArchive.s split

* JKRAramArchive.s split

* JKRCompArchive.s split

* JKRDecomp.s split

* JKRDvdRipper.s split

* JKRAramBlock.s split

* JKRAramHeap.s split

* JKRAramPiece.s split

* JKRAramStream.s split

* removed unused .s files

* JKRDvdAramRipper.s split

* JKRAram.s split

* cleanup and making vtables easier to debug

* fixed merge errors

* fixed JKRFileLoader::fetchVolumeName

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2020-12-06 15:02:25 -05:00
Jonathan Wase 09a19f1576 Types and functions for JKRThread, JKRFile, JKRDvdFile, JKRFileCache... (#17)
* 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.
2020-12-05 12:45:10 -05:00
Jonathan Wase 7d3d07c10d JSUList.h templates and JKRHeap matches (#13)
* 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>
2020-12-03 21:02:41 -05:00
Jonathan Wase 52bc3ed5b9 Improved handling of virtual inheritance. (#7)
* 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
2020-12-01 15:18:01 -05:00
unknown 99e9d3b8f7 add more sorting to inline'd asm for JSystem, move m_Do_main over to using newly defined JKRHeap and JKRExpHeap headers 2020-11-29 12:57:11 -05:00
unknown 51d6e78873 Add better sorting for inline'd asm 2020-11-29 12:21:01 -05:00