System.cpp progress

This commit is contained in:
SwareJonge 2023-02-06 17:01:01 +01:00
parent 08a4f2028b
commit a290672653
26 changed files with 1206 additions and 211 deletions

View File

@ -1 +1,4 @@
trim_ctors: true
trim_ctors: true
global_manual_floats:
- [0x8041b6b4, 0x8041b6c0]

View File

@ -74,6 +74,27 @@ global:
0x803ef5c0: sList__8JFWAlarm
0x80415718: sManager__10JFWDisplay
# J3DSys.cpp
0x80017308: __ct__6J3DSysFv
0x8001741c: loadPosMtxIndx__6J3DSysCFiUs
0x80017440: loadNrmMtxIndx__6J3DSysCFiUs
0x80017468: setTexCacheRegion__6J3DSysF15_GXTexCacheSize
0x80017600: drawInit__6J3DSysFv
0x80017db8: reinitGX__6J3DSysFv
0x80017e14: reinitGenMode__6J3DSysFv
0x80017e60: reinitLighting__6J3DSysFv
0x80017f0c: reinitTransform__6J3DSysFv
0x80018010: reinitTexture__6J3DSysFv
0x800180b4: reinitTevStages__6J3DSysFv
0x800183bc: reinitIndStages__6J3DSysFv
0x800184b4: reinitPixelProc__6J3DSysFv
0x803ef5cc: j3dSys
0x803ef770: mCurrentMtx__6J3DSys
0x803ef7a0: mCurrentS__6J3DSys
0x803ef7ac: mParentS__6J3DSys
0x803ef7b8: sTexCoordScaleTable__6J3DSys
0x80415740: j3dDefaultViewNo
# J2DOrthoGraph.cpp
0x80043c84: __ct__13J2DOrthoGraphFffffff
0x80043d68: setPort__13J2DOrthoGraphFv
@ -88,7 +109,8 @@ global:
# J2DGrafContext.cpp
0x80389d50: __vt__14J2DGrafContext
# J2DPrint
# J2DPrint.cpp
0x8004aebc: __ct__8J2DPrintFP7JUTFontf
0x8004b024: initiate__8J2DPrintFv
0x8004b43c: print__8J2DPrintFffPCce
@ -198,6 +220,8 @@ global:
# JUTException.cpp
0x8006c87c: create__12JUTExceptionFP14JUTDirectPrint
0x8006cb90: panic_f__12JUTExceptionFPCciPCce
0x8006ec8c: setPreUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v
0x8006ec9c: appendMapFile__12JUTExceptionFPCc
0x8006f140: createConsole__12JUTExceptionFPvUl
@ -319,6 +343,33 @@ global:
0x80075d7c: initiate__6JUTXfbFUsUsP7JKRHeapQ26JUTXfb10EXfbNumber
0x80415898: sManager__6JUTXfb
# LGWheels.cpp
0x8007649c: __ct__8LGWheelsFv
0x80076520: InitVars__8LGWheelsFl
0x80076590: ReadAll__8LGWheelsFv
0x8007664c: StopForce__8LGWheelsFll
0x800769dc: IsConnected__8LGWheelsFl
0x80076a00: IsPlaying__8LGWheelsFll
0x80076b3c: PlayAutoCalibAndSpringForce__8LGWheelsFl
0x80076c74: PlaySpringForce__8LGWheelsFlScUcs
0x80076e98: SameSpringForceParams__8LGWheelsFlScUcs
0x80076ee0: PlayConstantForce__8LGWheelsFlsUs
0x800770d8: SameConstantForceParams__8LGWheelsFlsUs
0x8007710c: PlayDamperForce__8LGWheelsFls
0x80077310: SameDamperForceParams__8LGWheelsFls
0x80077330: PlayDirtRoadEffect__8LGWheelsFlUc
0x80077560: SameDirtRoadEffectParams__8LGWheelsFls
0x80077580: PlayBumpyRoadEffect__8LGWheelsFlUc
0x800777b0: StopBumpyRoadEffect__8LGWheelsFl
0x800777d4: SameBumpyRoadEffectParams__8LGWheelsFls
0x800777f4: PlaySlipperyRoadEffect__8LGWheelsFls
0x80077a90: StopSlipperyRoadEffect__8LGWheelsFl
0x80077ab4: SameSlipperyRoadEffectParams__8LGWheelsFls
0x80077ad4: PlaySurfaceEffect__8LGWheelsFlUcUcUs
0x80077e20: SameSurfaceEffectParams__8LGWheelsFlUcUcUs
0x80077e64: PlayCarAirborne__8LGWheelsFl
0x8007804c: StopCarAirborne__8LGWheelsFl
# JSUInputStream.cpp
0x80078780: __dt__14JSUInputStreamFv
0x80078808: read__14JSUInputStreamFPvl
@ -627,6 +678,9 @@ global:
0x80085b94: fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli
0x80085c6c: getExpandedResSize__13JKRMemArchiveCFPCv
# JKRSolidHeap.cpp
0x80085cf4: create__12JKRSolidHeapFUlP7JKRHeapb
# JKRAssertHeap.cpp
0x800872ac: create__13JKRAssertHeapFP7JKRHeap
@ -723,13 +777,25 @@ global:
0x80415b90: __DVDThreadQueue
# dvd.c
0x800b1894: DVDFastOpen
0x800b1908: DVDOpen
0x800b19d0: DVDClose
0x800b1c18: DVDReadAsyncPrio
0x800b1d08: DVDReadPrio
0x800b1e48: DVDInit
0x800b1e48: DVDInit
0x800b3a30: DVDReadAbsAsyncPrio
0x800b3b0c: DVDReadAbsAsyncForBS
0x800b3bdc: DVDReadDiskID
0x800b3cb0: DVDCancelStreamAsync
0x800b3d6c: DVDInquiryAsync
0x800b3e3c: DVDReset
0x800b3e80: DVDGetCommandBlockStatus
0x800b3ecc: DVDGetDriveStatus
0x800b3f78: DVDSetAutoInvalidation
0x800b3f88: DVDResume
0x800b3fd8: DVDCancelAsync
0x800b4254: DVDCancel
0x800b4324: DVDGetCurrentDiskID
0x800b432c: DVDCheckDisk
0x800b4424: __DVDPrepareResetAsync
0x800b4540: __DVDTestAlarm
0x804140e8: __DVDVersion
0x80415bdc: LastState
# vi.c
0x800b4ee4: VISetPreRetraceCallback
@ -1031,6 +1097,21 @@ global:
0x800f31d8: __init_cpp
0x800f322c: _ExitProcess
# Pad.c
0x800f3fbc: PADReset
0x800f40cc: PADRecalibrate
0x800f41e0: PADInit
0x800f4330: PADRead
0x800f4630: PADControlMotor
0x800f46e8: PADSetSpec
0x800f4ea0: PADSetAnalogMode
0x800f5030: PADSetSamplingCallback
0x800f5084: __PADDisableRecalibration
0x803c0370: Type
0x80414268: __PADVersion
0x80414278: Spec
0x80415fd8: __PADSpec
# global_destructor_chain.c
0x80105a68: __destroy_global_chain
0x80105ab0: __register_global_object
@ -1098,9 +1179,98 @@ global:
0x80118cac: getEngineType__11EngineSoundF7EKartID
# GameAudioMain.cpp
0x8011b478: newMemPool__98JAUAudience_<4,20JAUDopplerAudible<4>,23JAUDopplerAudienceState,31JAUAudience_withSetting_doppler>Fi
0x8011b4a8: init__Q29GameAudio4MainFP12JKRSolidHeapUlPvPvUl
0x8011e540: startSystemSe__Q29GameAudio4MainFUl
0x8011bf7c: __dt__24JAUStreamAramMgrBase_<1>Fv
0x8011c08c: __ct__Q29GameAudio17CustomAudience<4>Fv
0x8011c0c8: bootDSP__Q29GameAudio4MainFv
0x8011c0e8: isActive__Q29GameAudio4MainFv
0x8011c0f4: initRaceSound__Q29GameAudio4MainFv
0x8011c244: frameWork__Q29GameAudio4MainFv
0x8011c2c8: changeSection__Q29GameAudio4MainFUl
0x8011c3a8: checkSection__Q29GameAudio4MainFv
0x8011c474: isWaveLoaded__Q29GameAudio4MainFQ39GameAudio4Main5WS_ID
0x8011c4f0: checkCourceOnRace__Q29GameAudio4MainFv
0x8011cee4: setPause__Q29GameAudio4MainFQ39GameAudio4Main12PAUSE_STATUS
0x8011cfb4: startSequenceBgm__Q29GameAudio4MainFUl
0x8011d454: stopSequenceBgm__Q29GameAudio4MainFUl
0x8011d520: getPlayingSequenceID__Q29GameAudio4MainFv
0x8011d5a4: prepareStreamBgm__Q29GameAudio4MainFUl
0x8011d7a8: startStreamBgm__Q29GameAudio4MainFUl
0x8011dbb8: stopStreamBgm__Q29GameAudio4MainFUl
0x8011dc84: getPlayingStreamID__Q29GameAudio4MainFv
0x8011dd5c: setInvincibleBgm__Q29GameAudio4MainFUcUc
0x8011e0f8: clearInvincibleBgm__Q29GameAudio4MainFUcUc
0x8011e2cc: startInvincibleBgm__Q29GameAudio4MainFUcb
0x8011e410: checkBgm__Q29GameAudio4MainFv
0x8011e540: startSystemSe__Q29GameAudio4MainFUl
0x8011e5b0: stopSystemSe__Q29GameAudio4MainFUl
0x8011e640: startRaceSystemSe__Q29GameAudio4MainFUl
0x8011e6d0: startKartSystemSe__Q29GameAudio4MainFUcUl
0x8011e800: checkThunderMode__Q29GameAudio4MainFv
0x8011e8b0: setThunderMode__Q29GameAudio4MainFUc
0x8011ea40: clearThunderMode__Q29GameAudio4MainFUc
0x8011eaf0: startBombPointSe__Q29GameAudio4MainFUcUc
0x8011edec: startBombReachSe__Q29GameAudio4MainFUcUc
0x8011f0e8: setMasterVolume__Q29GameAudio4MainFSc
0x8011f194: getMasterVolumeValue__Q29GameAudio4MainFv
0x8011f1b4: setBgmVolume__Q29GameAudio4MainFf
0x8011f220: updateBgmVolume__Q29GameAudio4MainFUl
0x8011f2a4: fadeOutAll__Q29GameAudio4MainFUl
0x8011f538: setRaceSeVolume__Q29GameAudio4MainFfUl
0x8011f5e8: setOutputMode__Q29GameAudio4MainFUl
0x8011f664: resetAudio__Q29GameAudio4MainFUl
0x8011f75c: resumeAudio__Q29GameAudio4MainFv
0x8011f844: checkResetInner__Q29GameAudio4MainFv
0x8011f8a0: setGoalProcess__Q29GameAudio4MainFv
0x8011f940: processSeqCallback__Q29GameAudio4MainFP8JASTrackUs
0x8011fa50: __dt__Q29GameAudio17CustomAudience<4>Fv
0x8011fb44: __dt__26JAUStreamStaticAramMgr_<1>Fv
0x8011fc64: frameWorkAll__Q29GameAudio37SoundMgr<Q29GameAudio13ShoreSoundMgr>Fv
0x8011fcb0: loop__Q29GameAudio37SoundMgr<Q29GameAudio13ShoreSoundMgr>Fv
0x8011fd30: frameWorkAll__Q29GameAudio38SoundMgr<Q29GameAudio14NpcCarSoundMgr>Fv
0x8011fd7c: loop__Q29GameAudio38SoundMgr<Q29GameAudio14NpcCarSoundMgr>Fv
0x8011fdfc: frameWorkAll__Q29GameAudio36SoundMgr<Q29GameAudio12RockSoundMgr>Fv
0x8011fe48: loop__Q29GameAudio36SoundMgr<Q29GameAudio12RockSoundMgr>Fv
0x8011fec8: frameWorkAll__Q29GameAudio38SoundMgr<Q29GameAudio14ObjectSoundMgr>Fv
0x8011ff14: loop__Q29GameAudio38SoundMgr<Q29GameAudio14ObjectSoundMgr>Fv
0x8011ff94: frameWorkAll__Q29GameAudio41SoundMgr<Q29GameAudio17CharacterSoundMgr>Fv
0x8011ffe0: pauseAll__Q29GameAudio41SoundMgr<Q29GameAudio17CharacterSoundMgr>Fb
0x80120350: stopAll__Q29GameAudio41SoundMgr<Q29GameAudio17CharacterSoundMgr>Fv
0x80120390: frameWorkAll__Q29GameAudio36SoundMgr<Q29GameAudio12KartSoundMgr>Fv
0x801203dc: pauseAll__Q29GameAudio36SoundMgr<Q29GameAudio12KartSoundMgr>Fb
0x8012074c: stopAll__Q29GameAudio36SoundMgr<Q29GameAudio12KartSoundMgr>Fv
0x8012078c: loop__Q29GameAudio36SoundMgr<Q29GameAudio12KartSoundMgr>Fv
0x8012080c: calcPriority__Q29GameAudio17CustomAudience<4>FP10JAIAudible
0x80120d98: newAudible__Q29GameAudio17CustomAudience<4>FRCQ29JGeometry8TVec3<f>10JAISoundIDPCQ29JGeometry8TVec3<f>Ul
0x801211b4: mixChannelOut__Q29GameAudio17CustomAudience<4>FRC14JASSoundParamsP10JAIAudiblei
0x80121734: initAll__Q29GameAudio36SoundMgr<Q29GameAudio12KartSoundMgr>Fv
0x80121788: init__Q29GameAudio36SoundMgr<Q29GameAudio12KartSoundMgr>Fv
0x8012178c: initAll__Q29GameAudio41SoundMgr<Q29GameAudio17CharacterSoundMgr>Fv
0x801217e0: initAll__Q29GameAudio38SoundMgr<Q29GameAudio14ObjectSoundMgr>Fv
0x80121834: init__Q29GameAudio38SoundMgr<Q29GameAudio14ObjectSoundMgr>Fv
0x80121838: initAll__Q29GameAudio36SoundMgr<Q29GameAudio12RockSoundMgr>Fv
0x8012188c: init__Q29GameAudio36SoundMgr<Q29GameAudio12RockSoundMgr>Fv
0x80121890: initAll__Q29GameAudio38SoundMgr<Q29GameAudio14NpcCarSoundMgr>Fv
0x801218e4: init__Q29GameAudio38SoundMgr<Q29GameAudio14NpcCarSoundMgr>Fv
0x801218e8: initAll__Q29GameAudio37SoundMgr<Q29GameAudio13ShoreSoundMgr>Fv
0x8012193c: init__Q29GameAudio37SoundMgr<Q29GameAudio13ShoreSoundMgr>Fv
0x80121940: initAll__Q29GameAudio38SoundMgr<Q29GameAudio14CircleSoundMgr>Fv
0x80121994: init__Q29GameAudio38SoundMgr<Q29GameAudio14CircleSoundMgr>Fv
0x80121998: initAll__Q29GameAudio39SoundMgr<Q29GameAudio15CoasterSoundMgr>Fv
0x801219ec: init__Q29GameAudio39SoundMgr<Q29GameAudio15CoasterSoundMgr>Fv
0x801219f0: initAll__Q29GameAudio41SoundMgr<Q29GameAudio17MapSoundObjectMgr>Fv
0x80121a44: init__Q29GameAudio41SoundMgr<Q29GameAudio17MapSoundObjectMgr>Fv
0x80121a48: deleteStreamAram__26JAUStreamStaticAramMgr_<1>FUl
0x80121b20: newStreamAram__26JAUStreamStaticAramMgr_<1>FPUl
0x80121eb0: __dt__Q29GameAudio4MainFv
0x803fb220: sJAudio
0x80416218: msBasic__Q29GameAudio4Main
0x80416230: smStart__Q29GameAudio41SoundMgr<Q29GameAudio17MapSoundObjectMgr>
0x80416234: smEnd__Q29GameAudio41SoundMgr<Q29GameAudio17MapSoundObjectMgr>
0x80416238: smStart__Q29GameAudio39SoundMgr<Q29GameAudio15CoasterSoundMgr>
0x8041623c: smEnd__Q29GameAudio39SoundMgr<Q29GameAudio15CoasterSoundMgr>
0x80418968: GoalFanfareDelayFrame__9GameAudio
# MotorManager.cpp
0x80130e58: __ct__12MotorManagerFP7JKRHeap
@ -2600,8 +2770,68 @@ global:
0x801d9e4c: get__8RaceTimeCFPiPiPi
# MovieApp.cpp
0x801d7a80: getAppHeap__6SystemF
0x801d7214: loadModelData__15MovieJugemActorFP12GeographyObj
0x801d72a8: __ct__15MovieJugemActorFv
0x801d7608: startDemo__6TJugemFv
0x801d7630: setHearPtr__6TJugemFP14TJugemHeadHear
0x801d7654: setVoidRodPtr__6TJugemFP13TJugemVoidRod
0x801d769c: setSignalPtr__6TJugemFP15TJugemRodSignal
0x801d76a4: getSignal__13TJugemVoidRodCFv
0x801d76ac: reset__12GeographyObjFv
0x801d76cc: setDemoPattern__6TJugemFUl
0x801d76d4: setCurViewNo__15MovieJugemActorFUl
0x801d775c: calc__15MovieJugemActorFv
0x801d77e0: calc__14TJugemHeadItemFv
0x801d77e4: update__15MovieJugemActorFv
0x801d782c: viewCalc__15MovieJugemActorFUl
0x801d78b4: endDemo__15MovieJugemActorFv
0x801d78d8: endDemo__6TJugemFv
0x801d7900: isDemoEnd__15MovieJugemActorFv
0x801d7924: isDemoOut__6TJugemFv
0x801d7978: getCurAnmNumber__10TAnmPlayerCFv
0x801d799c: getArchive__8MovieAppFPCc
0x801d79c4: create__8MovieAppFv
0x801d7a80: getAppHeap__6SystemFv
0x801d7a88: getHeap__7GameAppFv
0x801d7a90: ptr__11SequenceAppFv
0x801d7a98: call__8MovieAppFv
0x801d7abc: __ct__8MovieAppFPv
0x801d7b44: __dt__8MovieAppFv
0x801d7ba4: draw__8MovieAppFv
0x801d7c00: getPlayer__11MoviePlayerFv
0x801d7c08: calc__8MovieAppFv
0x801d7d9c: isEnd__8MovieAppFv
0x801d7e10: getDrawFrame__11MoviePlayerCFv
0x801d7e18: reset__8MovieAppFv
0x801d7e5c: getPrevApp__6AppMgrFv
0x801d7e64: loadOpeningData__8MovieAppFv
0x801d7e88: doRunning__8MovieAppFv
0x801d7ffc: isPlaying__11MoviePlayerCFv
0x801d8004: doEnding__8MovieAppFv
0x801d804c: deleteCurrentApp__6AppMgrFv
0x801d805c: quitMovie__11MoviePlayerFv
0x80416840: sMovieApp__8MovieApp
0x80416844: mspHeapBuffer__8MovieApp
# MoviePlayer.cpp
0x801d8178: create__11MoviePlayerFP7JKRHeap
0x801d81e4: __ct__11MoviePlayerF9VideoMode14VideoFrameModeP7JKRHeap
0x801d8314: __dt__11MoviePlayerFv
0x801d838c: reset__11MoviePlayerFv
0x801d840c: calc__11MoviePlayerFv
0x801d842c: draw__11MoviePlayerFv
0x801d8490: getRenderMode__8JUTVideoCFv
0x801d8498: drawDone__11MoviePlayerFv
0x801d84b8: quit__11MoviePlayerFv
0x801d84f4: play__11MoviePlayerFv
0x801d8534: replay__11MoviePlayerFv
0x801d8560: pause__11MoviePlayerFv
0x801d858c: audioFadeOut__11MoviePlayerFi
0x801d85bc: getFrameNumber__11MoviePlayerFv
0x804147d0: cMovieFileNameTable__11MoviePlayer
0x804147d4: cMovie50FileNameTable__11MoviePlayer
0x80416848: sPlayer__11MoviePlayer
0x8041684c: sMovieSelector__11MoviePlayer
# clock.cpp
0x801f6e04: move__5ClockFv
@ -2630,7 +2860,7 @@ global:
0x8039c460: __vt__7GameApp
# MainMenuApp
# MainMenuApp.cpp
0x801f7668: call__11MainMenuAppFv
# main.cpp
@ -2680,6 +2910,10 @@ global:
0x80416954: msFreeArgArray__6ResMgr
0x80416958: msAramTaskNum__6ResMgr
# LogoApp.cpp
0x801fe074: create__7LogoAppFv
0x801fe0c4: call__7LogoAppFv
# system.cpp
0x801feb10: startAudioTask__6SystemFPv
0x801feba0: init__6SystemFv
@ -2780,7 +3014,7 @@ global:
0x804009f8: gKartPad15P
0x80400ab0: gKartPad16P
# AppMgr.cpp
# AppMgr.cpp
0x80200a28: draw__6AppMgrFv
0x80200a80: calc__6AppMgrFv
0x80200c90: setNextApp__6AppMgrFQ26AppMgr11KartAppEnum
@ -2799,6 +3033,94 @@ global:
0x804169b1: msCalcStallFrame__6AppMgr
0x804169b2: msChangeStallFrame__6AppMgr
# FontMgr.cpp
0x80201134: create__7FontMgrFP7JKRHeap
0x804169b8: mspResFont__7FontMgr
0x804169bc: mspDebugFont__7FontMgr
# ErrorViewApp.cpp
0x802011cc: create__12ErrorViewAppFv
0x8020121c: call__12ErrorViewAppFQ212ErrorViewApp7ErrorId
# CardMgr.cpp
0x802016e0: create__7CardMgrFv
0x8020175c: probe__7CardMgrFv
0x80201800: mount__7CardMgrFl
0x80201914: mountTask__7CardMgrFPv
0x802019d8: check__7CardMgrFl
0x80201a90: checkTask__7CardMgrFPv
0x80201b34: format__7CardMgrFl
0x80201b94: formatTask__7CardMgrFPv
0x80201c0c: openFile__7CardMgrFlP8SaveFile
0x80201d88: createFile__7CardMgrFlP8SaveFile
0x80201e54: createTask__7CardMgrFPv
0x80201f60: read__7CardMgrFlQ28SaveFile8FilePart
0x80202090: readTask__7CardMgrFPv
0x80202150: write__7CardMgrFlQ28SaveFile8FilePart
0x8020231c: writeTask__7CardMgrFPv
0x80202400: setStatus__7CardMgrFl
0x802024c0: setStatusTask__7CardMgrFPv
0x8020269c: renameFile__7CardMgrFl
0x8020275c: renameTask__7CardMgrFPv
0x80202800: deleteFile__7CardMgrFl
0x802028c0: deleteTask__7CardMgrFPv
0x80202990: closeFile__7CardMgrFl
0x80202a10: unmount__7CardMgrFl
0x80400b68: msaCardData__7CardMgr
0x804169c8: msProbeSlot__7CardMgr
# CardAgent.cpp
0x80202a80: create__9CardAgentFP7JKRHeap
0x80202ad4: ask__9CardAgentFQ29CardAgent7Commandl
0x80202cc0: draw__9CardAgentFv
0x80202d08: calc__9CardAgentFv
0x80202de0: waitMessage__9CardAgentFv
0x80202f00: waitButton__9CardAgentFv
0x80203010: waitSelect__9CardAgentFv
0x802033c8: check0__9CardAgentFv
0x80203508: waitMount__9CardAgentFv
0x80203674: waitCheck__9CardAgentFv
0x8020380c: waitFormat__9CardAgentFv
0x80203944: checkFree__9CardAgentFv
0x80203a6c: open__9CardAgentFv
0x80203d48: waitCreate__9CardAgentFv
0x80203f6c: waitWrite__9CardAgentFv
0x802041a8: waitRead__9CardAgentFv
0x80204564: waitRename__9CardAgentFv
0x80204708: waitDelete__9CardAgentFv
0x8020485c: waitSetStatus__9CardAgentFv
0x80204b70: waitQuit__9CardAgentFv
0x80204c00: reset__9CardAgentFv
0x80204c18: isGhostSavable__9CardAgentFv
0x80204ca8: errorNoCard__9CardAgentFv
0x80204d68: errorWrongDevice__9CardAgentFv
0x80204e28: errorIOError__9CardAgentFv
0x80204eec: errorEncoding__9CardAgentFv
0x80400cc0: msMessageTimer__9CardAgent
0x804169d0: msCommand__9CardAgent
0x804169d4: msState__9CardAgent
0x804169d8: msSelectAt__9CardAgent
0x804169dc: msButtonAt__9CardAgent
0x804169e0: msMessageAt__9CardAgent
0x804169e4: msResult__9CardAgent
0x804169e8: msChan__9CardAgent
0x804169ec: mspSaveFile__9CardAgent
0x804169f0: mspSystemFile__9CardAgent
0x804169f4: mspGhostFile__9CardAgent
0x804169f8: msFlags__9CardAgent
0x804169fc: mspPrintMemoryCard__9CardAgent
# ResetAgent.cpp
0x8020f4dc: callbackReset__10ResetAgentFiPv
0x8020f508: reset__10ResetAgentFb
0x8020f530: draw__10ResetAgentFv
0x8020f534: calc__10ResetAgentFv
0x80416a78: msState__10ResetAgent
0x80416a7c: msCount__10ResetAgent
0x80416a80: msForceMenu__10ResetAgent
0x80416a81: msInvalid__10ResetAgent
0x80416a82: msAudioReset__10ResetAgent
# systemData.cpp
0x8037d938: sc3DViewPort__10SystemData
0x8037d948: sc3DScissor__10SystemData
@ -2830,6 +3152,21 @@ global:
0x8020b4d0: setRaceTime__8TARecordF8RaceTime
0x8020b4dc: less__8TARecordFRC8TARecord
# SystemRecord.cpp
0x8020b510: init__12SystemRecordFv
0x8020b63c: applyAudioSetting__12SystemRecordFv
0x8020b708: crypt__12SystemRecordFUs
0x8020b784: convCourseID__12SystemRecordF9ECourseID
0x8020b830: getTARecord__12SystemRecordF9ECourseIDi
0x8020b97c: rankTARecord__12SystemRecordF9ECourseIDR8TARecord
0x8020baf4: getBestLap__12SystemRecordF9ECourseID
0x8020bbb0: setBestLap__12SystemRecordF9ECourseIDR8TARecord
0x8020bc90: getGPRecord__12SystemRecordF10ERaceGpCup10ERaceLevel
0x8020bd34: setGPRecord__12SystemRecordF10ERaceGpCup10ERaceLevelR8GPRecord
0x8020be20: tstSecretKart__12SystemRecordF7EKartIDUs
0x8020bed8: setDefaultName__12SystemRecordFPCc
0x80406d20: gSystemRecord
# GPRecord.cpp
0x8020c078: __ct__8GPRecordFv
0x8020c09c: setName__8GPRecordFPCc
@ -2841,6 +3178,85 @@ global:
0x80407334: msaCRCTable__8SaveFile
0x80416a48: msCRCTableComputed__8SaveFile
# PadMgr.cpp
0x8020c3ac: init__6PadMgrFv
0x8020c438: framework__6PadMgrFv
0x8020c4bc: processKartPad__6PadMgrFv
0x8020c588: getPadData__6PadMgrFUcQ26PadMgr12KartPadInputP11KartPadData
0x8020c74c: setKartPadInput__6PadMgrFQ26PadMgr12KartPadInput
0x8020c77c: resetPort__6PadMgrFv
0x80416a50: msKartPadInput__6PadMgr
0x80416a54: mspRecorder__6PadMgr
# NetGameMgr.cpp
0x80205db4: create__10NetGameMgrFP7JKRHeap
0x80205e00: __ct__10NetGameMgrFv
0x80205e28: constructFifo__10NetGameMgrFv
0x80205fd0: initPadConv__10NetGameMgrFv
0x80206004: start__10NetGameMgrFv
0x80206134: end__10NetGameMgrFb
0x80206198: doStart__10NetGameMgrFv
0x802061d8: startSearch__10NetGameMgrFv
0x80206210: doLink__10NetGameMgrFv
0x80206408: finishLink__10NetGameMgrFv
0x802065d4: recvLink__10NetGameMgrFv
0x8020677c: recvSync__10NetGameMgrFv
0x802069bc: distributePadData__10NetGameMgrFR9NetPadPkt
0x80206b4c: appendPadData__10NetGameMgrFUcP9NetPadPkt
0x80206e50: recv__10NetGameMgrFv
0x8020720c: recvTask__10NetGameMgrFPv
0x802072e4: sendTask__10NetGameMgrFPv
0x802073a4: framework__10NetGameMgrFv
0x802079c4: syncwork__10NetGameMgrFv
0x80207c58: retraceCallback__10NetGameMgrFUl
0x80207c84: callbackNotify__10NetGameMgrFPCcPC8SOInAddr
0x80207e2c: callbackSearch__10NetGameMgrFPCcPC8SOInAddrPC14SSDPSearchInfo
0x80207fc0: appendGCInfo__10NetGameMgrFPC8SOInAddr
0x80208078: removeGCInfo__10NetGameMgrFPC8SOInAddr
0x802080e8: getKartPad__10NetGameMgrFUcP11KartPadData
0x80208180: getPadData__10NetGameMgrFUcP11KartPadData
0x80208228: adjustFrame__10NetGameMgrFv
0x802083f4: progressReadData__10NetGameMgrFv
0x80208554: fetchPadData__10NetGameMgrFv
0x80208614: sleep__10NetGameMgrFv
0x8020862c: awake__10NetGameMgrFv
0x80208714: handleError__10NetGameMgrFv
0x80208868: initLogBuffer__10NetGameMgrFv
0x802088d0: logNet__10NetGameMgrFQ210NetGameMgr13NetActionTypeRQ210NetGameMgr6NetPkt
0x80416a10: mspNetGameMgr__10NetGameMgr
# SequenceApp.cpp
0x80208aec: create__11SequenceAppFv
0x80208b3c: call__11SequenceAppFQ25Scene9SceneType
0x80208b88: __ct__11SequenceAppFv
0x80208c58: __dt__11SequenceAppFv
0x80208d6c: freeForMovieApp__11SequenceAppFv
0x80208e80: draw__11SequenceAppFv
0x80208ec8: calc__11SequenceAppFv
0x80209064: reset__11SequenceAppFv
0x80209068: loadTask__11SequenceAppFPv
0x802090d4: ready__11SequenceAppFQ25Scene9SceneType
0x802091c8: checkFinishAllLoading__11SequenceAppFv
0x802092c8: createScene__11SequenceAppFQ25Scene9SceneType
0x80414868: msScene__11SequenceApp
0x8041486c: msNextScene__11SequenceApp
0x80416a18: mspSequenceApp__11SequenceApp
# BBAMgr.cpp
0x8020d618: create__6BBAMgrFP7JKRHeap
0x8020d678: __ct__6BBAMgrFP7JKRHeap
0x8020d774: processDHCP__6BBAMgrFv
0x8020d984: processAutoIP__6BBAMgrFv
0x8020dbe8: disconnecting__6BBAMgrFb
0x8020dce0: startUPnP__6BBAMgrFv
0x8020dd0c: startMSearch__6BBAMgrFv
0x8020dd34: sendTo__6BBAMgrFPviPCv
0x8020dd60: recvFrom__6BBAMgrFPviPv
0x8020dd8c: getState__6BBAMgrFv
0x8020de04: createBasicDevice__6BBAMgrFv
0x8020dfe0: loadHttpFile__6BBAMgrFv
0x80416a60: mspBBAMgr__6BBAMgr
# screenshot.c
0x80219f50: SCREENSHOTService
0x80414890: g_usb_channel

View File

@ -10,6 +10,10 @@ namespace GameAudio {
void init(JKRSolidHeap *, u32, void *, void *, u32);
void startSystemSe(u32);
void initRaceSound();
void bootDSP();
void setBgmVolume(f32);
bool isActive();
void frameWork();
static Main *getAudio() { return msBasic; };
static Main * msBasic;

View File

@ -13,7 +13,7 @@
typedef void (*JFWDisplayUnkFunc)(void);
static Mtx e_mtx = {{1.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 0.0f}};
extern Mtx e_mtx;
class JFWAlarm : public OSAlarm { // everything here seems to be auto inlined or unused
public:

View File

@ -150,6 +150,7 @@ public:
class JKRAramStream : public JKRThread
{
public:
JKRAramStream(long);
virtual ~JKRAramStream(); // _08

View File

@ -10,6 +10,8 @@
struct JUTConsole;
struct JUTDirectPrint;
typedef void JUTErrorHandler(OSError, OSContext *, u32, u32);
/**
* @size{0xA4}
*/
@ -55,7 +57,7 @@ struct JUTException : public JKRThread
void printContext(unsigned short, OSContext *, unsigned long, unsigned long);
static void waitTime(long);
void createFB();
static OSErrorHandler setPreUserCallback(OSErrorHandler);
static OSErrorHandler setPreUserCallback(JUTErrorHandler);
static void appendMapFile(const char *);
static bool queryMapAddress(char *, unsigned long, long, unsigned long *, unsigned long *, char *, unsigned long, bool, bool);
static bool queryMapAddress_single(char *, unsigned long, long, unsigned long *, unsigned long *, char *, unsigned long, bool, bool);

View File

@ -4,8 +4,11 @@
#include "types.h"
#include "dolphin/OS.h"
#include "dolphin/PAD.h"
#include "JSystem/LGWheels.h"
#include "JSystem/JKernel/JKRDisposer.h"
typedef void (*JUTResetBtnCb)(int, void*);
class JUTGamePad : public JKRDisposer
{
public:
@ -68,6 +71,12 @@ public:
void setButtonRepeat(u32, u32, u32);
void update();
static void setResetCallback(JUTResetBtnCb callback, void *param_0)
{
C3ButtonReset::sCallback = callback;
C3ButtonReset::sCallbackArg = param_0;
}
bool testButton(u32 mask) {
return mButtons.mInput & mask;
}
@ -134,12 +143,27 @@ public:
u32 _C;
};
class C3ButtonReset
{
class C3ButtonReset {
public:
static s32 sResetPattern;
C3ButtonReset() { mReset = false; }
static u32 sResetPattern;
static u32 sResetMaskPattern;
static JUTResetBtnCb sCallback;
static void *sCallbackArg;
static OSTime sThreshold;
static s32 sResetOccurredPort;
static bool sResetOccurred;
static bool sResetSwitchPushing;
private:
bool mReset;
};
static LGWheels* getLGWheels() { return mspLGWheels; }
static LGWheels *mspLGWheels;
static EStickMode sStickMode;
CButton mButtons; // _18

View File

@ -6,11 +6,6 @@
struct JUTGraphFifo
{
static JUTGraphFifo *create(u32 p1)
{
return new JUTGraphFifo(p1);
}
JUTGraphFifo(u32);
virtual ~JUTGraphFifo(); // _08
@ -30,4 +25,8 @@ struct JUTGraphFifo
static bool sInitiated;
};
inline JUTGraphFifo *JUTCreateFifo(u32 p1) {
return new JUTGraphFifo(p1);
}
#endif

View File

@ -0,0 +1,55 @@
#ifndef LGWHEELS_H
#define LGWHEELS_H
// No idea where this file belongs, it's part of JSystem however no other games seem to have this
class LGWheels
{ // Autogenerated
public:
// Global
LGWheels(); // 0x8007649c
void InitVars(long); // 0x80076520
void ReadAll(); // 0x80076590
void StopForce(long, long); // 0x8007664c
bool IsConnected(long); // 0x800769dc
void IsPlaying(long, long); // 0x80076a00
void PlayAutoCalibAndSpringForce(long); // 0x80076b3c
void PlaySpringForce(long, char, unsigned char, short); // 0x80076c74
void SameSpringForceParams(long, char, unsigned char, short); // 0x80076e98
void PlayConstantForce(long, short, unsigned short); // 0x80076ee0
void SameConstantForceParams(long, short, unsigned short); // 0x800770d8
void PlayDamperForce(long, short); // 0x8007710c
void SameDamperForceParams(long, short); // 0x80077310
void PlayDirtRoadEffect(long, unsigned char); // 0x80077330
void SameDirtRoadEffectParams(long, short); // 0x80077560
void PlayBumpyRoadEffect(long, unsigned char); // 0x80077580
void StopBumpyRoadEffect(long); // 0x800777b0
void SameBumpyRoadEffectParams(long, short); // 0x800777d4
void PlaySlipperyRoadEffect(long, short); // 0x800777f4
void StopSlipperyRoadEffect(long); // 0x80077a90
void SameSlipperyRoadEffectParams(long, short); // 0x80077ab4
void PlaySurfaceEffect(long, unsigned char, unsigned char, unsigned short); // 0x80077ad4
void SameSurfaceEffectParams(long, unsigned char, unsigned char, unsigned short); // 0x80077e20
void PlayCarAirborne(long); // 0x80077e64
void StopCarAirborne(long); // 0x8007804c
// Inline/Unused
// void ~LGWheels();
// void ButtonTriggered(long, unsigned long);
// void ButtonReleased(long, unsigned long);
// void ButtonIsPressed(long, unsigned long);
// void PedalsConnected(long);
// void PowerConnected(long);
// void SetOverallForceGain(long, long);
// void GetOverallForceGain(long);
// void GenerateNonLinValues(long, unsigned char);
// void StopSpringForce(long);
// void StopConstantForce(long);
// void StopDamperForce(long);
// void PlaySideCollisionForce(long, short, unsigned short);
// void SameSideCollisionForceParams(long, short, unsigned short);
// void PlayFrontalCollisionForce(long, unsigned char);
// void SameFrontalCollisionForceParams(long, short);
// void StopDirtRoadEffect(long);
// void StopSurfaceEffect(long);
}; // class LGWheels
#endif // LGWHEELS_H

View File

@ -0,0 +1,51 @@
#ifndef MOVIEAPP_H
#define MOVIEAPP_H
#include "Osako/GameApp.h"
class GeographyObj;
class MovieApp : public GameApp
{ // Autogenerated
// Global
public:
static void getArchive(const char *); // 0x801d799c
static void create(); // 0x801d79c4
static void call(); // 0x801d7a98
MovieApp(void *); // 0x801d7abc
virtual ~MovieApp(); // 0x801d7b44
virtual void draw(); // 0x801d7ba4
virtual void calc(); // 0x801d7c08
virtual void reset(); // 0x801d7e18
void isEnd(); // 0x801d7d9c
void loadOpeningData(); // 0x801d7e64
void doRunning(); // 0x801d7e88
void doEnding(); // 0x801d8004
static MovieApp* sMovieApp; // 0x80416840
static void *mspHeapBuffer; // 0x80416844
}; // class MovieApp
class MVActor {
public:
MVActor();
//~MVActor();
virtual void
setCurViewNo(unsigned long) = 0;
virtual void calc() = 0;
virtual void update() = 0;
virtual void viewCalc(unsigned long) = 0;
};
class MovieJugemActor : public MVActor {
public:
void loadModelData(GeographyObj *);
MovieJugemActor();
virtual void setCurViewNo(unsigned long);
virtual void calc();
virtual void update();
virtual void viewCalc(unsigned long);
void endDemo();
bool isDemoEnd();
};
#endif // MOVIEAPP_H

View File

@ -0,0 +1,31 @@
#ifndef MOVIEPLAYER_H
#define MOVIEPLAYER_H
#include "kartLocale.h"
#include "JSystem/JKernel/JKRHeap.h"
class MoviePlayer
{ // Autogenerated
public:
// Global
void create(JKRHeap *); // 0x801d8178
MoviePlayer(VideoMode, VideoFrameMode, JKRHeap *); // 0x801d81e4
~MoviePlayer(); // 0x801d8314
void reset(); // 0x801d838c
void calc(); // 0x801d840c
void draw(); // 0x801d842c
void drawDone(); // 0x801d8498
void quit(); // 0x801d84b8
void play(); // 0x801d84f4
void replay(); // 0x801d8534
void pause(); // 0x801d8560
void audioFadeOut(int); // 0x801d858c
void getFrameNumber(); // 0x801d85bc
// void cMovieFileNameTable; // 0x804147d0
// void cMovie50FileNameTable; // 0x804147d4
static MoviePlayer *sPlayer; // 0x80416848
// void sMovieSelector; // 0x8041684c
// Inline/Unused
// void sIsDispInfo;
}; // class MoviePlayer
#endif // MOVIEPLAYER_H

View File

@ -20,9 +20,11 @@ public:
static SysDebug* createManager();
int appendPage(SysDbUsrPage *);
void beginUserTime(int);
void ctrlDebugMode();
void endUserTime(int);
void createHeapInfo(JKRHeap *, char *);
void destroyHeapInfo(JKRHeap *);
void draw();
void setDefaultHeapGroup(JKRHeap *);
void setHeapGroup(char const *name, JKRHeap *heap);
void setUserTimeLabel(int, const char *);

26
include/Osako/BBAMgr.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef BBAMGR_H
#define BBAMGR_H
#include "JSystem/JKernel/JKRHeap.h"
class BBAMgr
{ // Autogenerated
public:
// Global
static void create(JKRHeap *); // 0x8020d618
BBAMgr(JKRHeap *); // 0x8020d678
void processDHCP(); // 0x8020d774
void processAutoIP(); // 0x8020d984
void disconnecting(bool); // 0x8020dbe8
void startUPnP(); // 0x8020dce0
void startMSearch(); // 0x8020dd0c
void sendTo(void *, int, const void *); // 0x8020dd34
void recvFrom(void *, int, void *); // 0x8020dd60
void getState(); // 0x8020dd8c
void createBasicDevice(); // 0x8020de04
void loadHttpFile(); // 0x8020dfe0
static BBAMgr *mspBBAMgr; // 0x80416a60
// Inline/Unused
// void start();
}; // class BBAMgr
#endif // BBAMGR_H

55
include/Osako/CardAgent.h Normal file
View File

@ -0,0 +1,55 @@
#ifndef CARDAGENT_H
#define CARDAGENT_H
#include "JSystem/JKernel/JKRHeap.h"
namespace CardAgent
{ // Autogenerated
// Global
enum Command {
};
void create(JKRHeap *); // 0x80202a80
void ask(Command, long); // 0x80202ad4
void draw(); // 0x80202cc0
void calc(); // 0x80202d08
void waitMessage(); // 0x80202de0
void waitButton(); // 0x80202f00
void waitSelect(); // 0x80203010
void check0(); // 0x802033c8
void waitMount(); // 0x80203508
void waitCheck(); // 0x80203674
void waitFormat(); // 0x8020380c
void checkFree(); // 0x80203944
void open(); // 0x80203a6c
void waitCreate(); // 0x80203d48
void waitWrite(); // 0x80203f6c
void waitRead(); // 0x802041a8
void waitRename(); // 0x80204564
void waitDelete(); // 0x80204708
void waitSetStatus(); // 0x8020485c
void waitQuit(); // 0x80204b70
void reset(); // 0x80204c00
void isGhostSavable(); // 0x80204c18
void errorNoCard(); // 0x80204ca8
void errorWrongDevice(); // 0x80204d68
void errorIOError(); // 0x80204e28
void errorEncoding(); // 0x80204eec
//void msMessageTimer; // 0x80400cc0
//void msCommand; // 0x804169d0
//void msState; // 0x804169d4
//void msSelectAt; // 0x804169d8
//void msButtonAt; // 0x804169dc
//void msMessageAt; // 0x804169e0
//void msResult; // 0x804169e4
//void msChan; // 0x804169e8
//void mspSaveFile; // 0x804169ec
//void mspSystemFile; // 0x804169f0
//void mspGhostFile; // 0x804169f4
//void msFlags; // 0x804169f8
//void mspPrintMemoryCard; // 0x804169fc
// Inline/Unused
// void msDrawFlag;
}; // namespace CardAgent
#endif // CARDAGENT_H

35
include/Osako/CardMgr.h Normal file
View File

@ -0,0 +1,35 @@
#ifndef CARDMGR_H
#define CARDMGR_H
#include "Osako/SaveFile.h"
namespace CardMgr
{ // Autogenerated
// Global
void create(); // 0x802016e0
void probe(); // 0x8020175c
void mount(long); // 0x80201800
void mountTask(void *); // 0x80201914
void check(long); // 0x802019d8
void checkTask(void *); // 0x80201a90
void format(long); // 0x80201b34
void formatTask(void *); // 0x80201b94
void openFile(long, SaveFile *); // 0x80201c0c
void createFile(long, SaveFile *); // 0x80201d88
void createTask(void *); // 0x80201e54
void read(long, SaveFile::FilePart); // 0x80201f60
void readTask(void *); // 0x80202090
void write(long, SaveFile::FilePart); // 0x80202150
void writeTask(void *); // 0x8020231c
void setStatus(long); // 0x80202400
void setStatusTask(void *); // 0x802024c0
void renameFile(long); // 0x8020269c
void renameTask(void *); // 0x8020275c
void deleteFile(long); // 0x80202800
void deleteTask(void *); // 0x802028c0
void closeFile(long); // 0x80202990
void unmount(long); // 0x80202a10
//void msaCardData; // 0x80400b68
//void msProbeSlot; // 0x804169c8
}; // namespace CardMgr
#endif // CARDMGR_H

View File

@ -0,0 +1,30 @@
#ifndef ERRORVIEWAPP_H
#define ERRORVIEWAPP_H
#include "Osako/GameApp.h"
class ErrorViewApp : public GameApp
{ // Autogenerated
// Global
public:
enum ErrorId
{
ERROR1,
ERROR2,
ERROR3,
ERROR4,
ERROR5
};
static ErrorViewApp *create(); // 0x802011cc
static void call(ErrorId); // 0x8020121c
ErrorViewApp(); // 0x80201310
virtual ~ErrorViewApp(); // 0x80201384
virtual void draw(); // 0x802013e4
virtual void calc(); // 0x80201408
virtual void reset(); // 0x802015a8
static ErrorViewApp *mspErrorViewApp; // 0x804169c0
static ErrorId msErrorId; // 0x804169c4
}; // class ErrorViewApp
#endif // ERRORVIEWAPP_H

14
include/Osako/FontMgr.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef FONTMGR_H
#define FONTMGR_H
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JUtility/JUTFont.h"
namespace FontMgr
{ // Autogenerated
// Global
void create(JKRHeap *); // 0x80201134
extern JUTResFont *mspResFont; // 0x804169b8
extern JUTResFont *mspDebugFont; // 0x804169bc
}; // namespace FontMgr
#endif // FONTMGR_H

22
include/Osako/LogoApp.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef LOGOAPP_H
#define LOGOAPP_H
#include "Osako/GameApp.h"
class LogoApp : public GameApp
{ // Autogenerated
// Global
public:
static LogoApp *create(); // 0x801fe074
static void call(); // 0x801fe0c4
LogoApp(); // 0x801fe0e8
virtual ~LogoApp(); // 0x801fe190
virtual void draw(); // 0x801fe1f0
virtual void calc(); // 0x801fe238
virtual void reset(); // 0x801fe84c
static void createMoviePlayer(void *); // 0x801fe820
void restart(); // 0x801fe850
void controlLoading(); // 0x801fe8d0
static LogoApp *mspLogoApp; // 0x80416960
}; // class LogoApp
#endif // LOGOAPP_H

View File

@ -0,0 +1,94 @@
#ifndef NETGAMEMGR_H
#define NETGAMEMGR_H
#include "types.h"
#include "dolphin/vi.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "Osako/PadMgr.h"
struct NetPkt;
struct NetPadPkt;
struct SOInAddr;
struct SSDPSearchInfo;
class NetGameMgr
{ // Autogenerated
public:
enum NetActionType {
};
struct NetPkt {
};
// Global
static void create(JKRHeap *); // 0x80205db4
NetGameMgr(); // 0x80205e00
void constructFifo(); // 0x80205e28
void initPadConv(); // 0x80205fd0
void start(); // 0x80206004
void end(bool); // 0x80206134
void doStart(); // 0x80206198
void startSearch(); // 0x802061d8
void doLink(); // 0x80206210
void finishLink(); // 0x80206408
void recvLink(); // 0x802065d4
void recvSync(); // 0x8020677c
void distributePadData(NetPadPkt &); // 0x802069bc
void appendPadData(unsigned char, NetPadPkt *); // 0x80206b4c
void recv(); // 0x80206e50
void recvTask(void *); // 0x8020720c
void sendTask(void *); // 0x802072e4
void framework(); // 0x802073a4
void syncwork(); // 0x802079c4
static void retraceCallback(u32); // 0x80207c58
void callbackNotify(const char *, const SOInAddr *); // 0x80207c84
void callbackSearch(const char *, const SOInAddr *, const SSDPSearchInfo *); // 0x80207e2c
void appendGCInfo(const SOInAddr *); // 0x80207fc0
void removeGCInfo(const SOInAddr *); // 0x80208078
void getKartPad(unsigned char, KartPadData *); // 0x802080e8
void getPadData(unsigned char, KartPadData *); // 0x80208180
void adjustFrame(); // 0x80208228
void progressReadData(); // 0x802083f4
void fetchPadData(); // 0x80208554
void sleep(); // 0x80208614
void awake(); // 0x8020862c
void handleError(); // 0x80208714
void initLogBuffer(); // 0x80208868
void logNet(NetActionType, NetPkt &); // 0x802088d0
static NetGameMgr *mspNetGameMgr; // 0x80416a10
// Inline/Unused
// void getNextConsoleAddr();
// void sendNext(SendPriority);
// void broadcast(SendPriority);
// void resetFifo();
// void makeLoop();
// void makeLinkData(NetLinkPkt *);
// void makeSyncData(NetSyncPkt *);
// void calcPadPktSize(NetPadPkt &);
// void makePadData(NetPadPkt *);
// void makeSleepData(NetSleepPkt *);
// void makeAwakeData(NetAwakePkt *);
// void makeHaltData(NetHaltPkt *);
// void doDHCP();
// void doAutoIP();
// void startLink();
// void doSync();
// void doPad(SendPriority);
// void doAwake();
// void doWaitSleep();
// void doWaitEnd();
// void doWaitPad();
// void doException();
// void doHalt();
// void haltNetConsole(ExceptionKind);
// void recvPad();
// void storePadData(NetPadPkt &);
// void recvSleep();
// void recvAwake();
// void recvHalt();
// void startRecvTask();
// void checkUSN(const char *, UPnPUuid *);
// void checkSERVER(const char *);
}; // class NetGameMgr
#endif // NETGAMEMGR_H

23
include/Osako/PadMgr.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef PADMGR_H
#define PADMGR_H
#include "Osako/kartPad.h"
namespace PadMgr
{ // Autogenerated
enum KartPadInput
{ // this is either 0 or 1?
};
// Global
void init(); // 0x8020c3ac
void framework(); // 0x8020c438
void processKartPad(); // 0x8020c4bc
void getPadData(unsigned char, KartPadInput, KartPadData *); // 0x8020c588
void setKartPadInput(KartPadInput); // 0x8020c74c
void resetPort(); // 0x8020c77c
extern KartPadInput msKartPadInput; // 0x80416a50
extern void *mspRecorder; // 0x80416a54
}; // namespace PadMgr
#endif // PADMGR_H

View File

@ -0,0 +1,19 @@
#ifndef RESETAGENT_H
#define RESETAGENT_H
#include "JSystem/JUtility/JUTGamePad.h"
namespace ResetAgent
{ // Autogenerated
// Global
extern void callbackReset(int, void *); // 0x8020f4dc
void reset(bool); // 0x8020f508
void draw(); // 0x8020f530
void calc(); // 0x8020f534
// void msState; // 0x80416a78
// void msCount; // 0x80416a7c
// void msForceMenu; // 0x80416a80
// void msInvalid; // 0x80416a81
// void msAudioReset; // 0x80416a82
}; // namespace ResetAgent
#endif // RESETAGENT_H

View File

@ -1,3 +1,5 @@
#ifndef SEQUENCEAPP_H
#define SEQUENCEAPP_H
#include "Osako/GameApp.h"
@ -5,21 +7,23 @@ class SequenceApp : public GameApp
{ // Autogenerated
public:
// Global
void create(); // 0x80208aec
//void call(Scene::SceneType); // 0x80208b3c
SequenceApp(); // 0x80208b88
virtual ~SequenceApp(); // 0x80208c58
void freeForMovieApp(); // 0x80208d6c
virtual void draw(); // 0x80208e80
virtual void calc(); // 0x80208ec8
virtual void reset(); // 0x80209064
void loadTask(void *); // 0x80209068
//void ready(Scene::SceneType); // 0x802090d4
void checkFinishAllLoading(); // 0x802091c8
//void createScene(Scene::SceneType); // 0x802092c8
//void msScene; // 0x80414868
//void msNextScene; // 0x8041486c
static SequenceApp * mspSequenceApp; // 0x80416a18
static SequenceApp *create(); // 0x80208aec
// void call(Scene::SceneType); // 0x80208b3c
SequenceApp(); // 0x80208b88
virtual ~SequenceApp(); // 0x80208c58
virtual void draw(); // 0x80208e80
virtual void calc(); // 0x80208ec8
virtual void reset(); // 0x80209064
void freeForMovieApp(); // 0x80208d6c
void loadTask(void *); // 0x80209068
// void ready(Scene::SceneType); // 0x802090d4
void checkFinishAllLoading(); // 0x802091c8
// void createScene(Scene::SceneType); // 0x802092c8
// void msScene; // 0x80414868
// void msNextScene; // 0x8041486c
static SequenceApp *mspSequenceApp; // 0x80416a18
// Inline/Unused
// void checkReady(Scene::SceneType);
}; // class SequenceApp
}; // class SequenceApp
#endif

View File

@ -4,22 +4,22 @@
#include "dolphin/OS.h"
#include "JSystem/J2D/J2DGrafContext.h"
#include "JSystem/J2D/J2DPrint.h"
#include "JSystem/JUtility/JUTException.h"
#include "JSystem/JFrameWork/JFWDisplay.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRAssertHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JKernel/JKRThread.h"
#include "types.h"
namespace System
{
extern JKRTask::RequestCallback startAudioTask;
{
void init();
void reset();
void changeProgressive();
void changeMovieRenderMode();
void changeNormalRenderMode();
extern OSErrorHandler callbackException;
void changeNormalRenderMode();
void haltRumble();
void run();
// Unused functions however i'm sure these get auto inlined in run()
@ -28,8 +28,65 @@ namespace System
void endRender();
void endFrame();
// callbacks
extern JKRTask::RequestCallback startAudioTask;
extern JUTErrorHandler callbackException;
f32 get2DVpX();
f32 get2DVpY();
f32 get2DVpW();
f32 get2DVpH();
f32 get3DVpX();
f32 get3DVpY();
f32 get3DVpW();
f32 get3DVpH();
f32 get3DVpDiv2X(u8);
f32 get3DVpDiv2Y(u8);
f32 get3DVpDiv2W(u8);
f32 get3DVpDiv2H(u8);
f32 get3DVpDiv4X(u8);
f32 get3DVpDiv4Y(u8);
f32 get3DVpDiv4W(u8);
f32 get3DVpDiv4H(u8);
f32 get3DVpSubX();
f32 get3DVpSubY();
f32 get3DVpSubW();
f32 get3DVpSubH();
u32 get2DScisX();
u32 get2DScisY();
u32 get2DScisW();
u32 get2DScisH();
u32 get3DScisX();
u32 get3DScisY();
u32 get3DScisW();
u32 get3DScisH();
u32 get3DAwardScisX();
u32 get3DAwardScisY();
u32 get3DAwardScisW();
u32 get3DAwardScisH();
u32 get3DScisDiv2X(u8);
u32 get3DScisDiv2Y(u8);
u32 get3DScisDiv2W(u8);
u32 get3DScisDiv2H(u8);
u32 get3DScisDiv4X(u8);
u32 get3DScisDiv4Y(u8);
u32 get3DScisDiv4W(u8);
u32 get3DScisDiv4H(u8);
u32 get3DScisSubX();
u32 get3DScisSubY();
u32 get3DScisSubW();
u32 get3DScisSubH();
f32 getOrthoL();
f32 getOrthoR();
f32 getOrthoT();
f32 getOrthoB();
f32 getPerspAspect();
f32 getPerspAspectDiv2();
f32 getPerspAspectDiv4();
f32 getPerspAspectSub();
extern JFWDisplay *mspDisplay;
extern JKRHeap *mspAppHeap; // JKRExpHeap
extern JKRExpHeap *mspAppHeap;
extern int msDvdState;
extern int msRenderMode;
extern JKRTask *mspSendTask;

View File

@ -14,7 +14,9 @@
// https://github.com/kiwi515/ogws/blob/master/src/egg/core/eggAsyncDisplay.cpp
// gpHang: https://github.com/valentinaslover/paper-mar/blob/master/source/sdk/DEMOInit.c#L280
/* extern */ JSUList<JFWAlarm> JFWAlarm::sList(false); // ctor might not match, i don't have a way of testing currently
Mtx e_mtx = {{1.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 0.0f}};
JSUList<JFWAlarm> JFWAlarm::sList(false);
JFWDisplay *JFWDisplay::sManager;
void JFWDisplay::ctor_subroutine(bool enableAlpha) {

View File

@ -61,7 +61,7 @@ void JFWSystem::init()
mainThread = new JKRThread(OSGetCurrentThread(), 4);
JUTVideo::createManager(CSetUpParam::renderMode);
JUTGraphFifo::create(CSetUpParam::fifoBufSize);
JUTCreateFifo(CSetUpParam::fifoBufSize);
JUTGamePad::init();
JUTDirectPrint *directPrint = JUTDirectPrint::start();
JUTAssertion::create();

View File

@ -1,9 +1,26 @@
#include "kartlocale.h"
#include "JSystem/J3D/J3DSys.h"
#include "JSystem/JUtility/JUTDbg.h"
#include "JSystem/JUtility/JUTGamePad.h"
#include "JSystem/JFrameWork/JFWSystem.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRDvdRipper.h"
#include "Inagaki/GameAudioMain.h"
#include "Kaneshige/MovieApp.h"
#include "Kaneshige/MoviePlayer.h"
#include "Kaneshige/ScrnShot.h"
#include "Kaneshige/SysDebug.h"
#include "Osako/AppMgr.h"
#include "Osako/BBAMgr.h"
#include "Osako/CardAgent.h"
#include "Osako/CardMgr.h"
#include "Osako/clock.h"
#include "Osako/ErrorViewApp.h"
#include "Osako/FontMgr.h"
#include "Osako/LogoApp.h"
#include "Osako/NetGameMgr.h"
#include "Osako/PadMgr.h"
#include "Osako/ResetAgent.h"
#include "Osako/ResMgr.h"
#include "Osako/SequenceApp.h"
#include "Osako/system.h"
@ -18,14 +35,25 @@ DUMMY_POINTER(lbl_8037d5e8)
#pragma pop
namespace System {
JFWDisplay *System::mspDisplay;
JKRExpHeap *System::mspAppHeap;
int System::msDvdState;
int System::msRenderMode;
JKRTask *System::mspSendTask;
JKRTask *System::mspRecvTask;
JKRTask *System::mspAramTask;
JKRTask *System::mspLoTask;
J2DPrint *System::mspJ2DPrint;
J2DOrthoGraph *System::mspJ2DOrtho;
JKRSolidHeap *System::mspAudioHeap;
void startAudioTask(void* p1) {
void *audioFile = JKRDvdRipper::loadToMainRAM("AudioRes/GCKart.baa", nullptr, Switch_1, 0, SequenceApp::mspSequenceApp->getHeap(), JKRDvdRipper::ALLOC_DIR_BOTTOM, 0, nullptr, nullptr);
GameAudio::Main::getAudio()->init(mspAudioHeap, SystemData::scAudioAramSize, audioFile, 0, 0);
delete audioFile;
gSystemRecord.applyAudioSetting();
}
/*void init() {
/*void init() { // some floats that are stored on the stack seem to be missing?
KartLocale::localize();
JFWSystem::setMaxStdHeap(SystemData::scNumStandardHeaps);
@ -72,11 +100,11 @@ namespace System {
SysDebug::getManager()->setHeapGroup("Card", JKRGetRootHeap());
CardMgr::create();
CardAgent::create();
CardAgent::create(JKRGetRootHeap());
SysDebug::getManager()->setHeapGroup("Net", JKRGetRootHeap());
BBAMgr::create();
NetGameMgr::create();
BBAMgr::create(JKRGetRootHeap());
NetGameMgr::create(JKRGetRootHeap());
JUTVideo::getManager()->setPostRetraceCallback(NetGameMgr::retraceCallback);
SysDebug::getManager()->setDefaultHeapGroup(JKRGetRootHeap());
@ -97,27 +125,20 @@ namespace System {
reset();
LogoApp::call();
JUTGamePad::C3ButtonReset::sCallback = ResetAgent::callbackReset;
JUTGamePad::C3ButtonReset::sCallbackArg = 0;
JUTGamePad::setResetCallback(ResetAgent::callbackReset, nullptr);
}*/
}
#include "orderstrings/8037d60c_8037d670.inc"
#include "orderstrings/8037d60c_8037d658.inc"
// .sdata2
#include "orderstringsm/8041b688_8041b6b4.inc"
/*const float lbl_8041b6b4 = -1.0f;
const float lbl_8041b6b8 = 1.0f;
const float lbl_8041b6bc = 0.0f;*/
#include "orderfloatsm/8041b6b4_8041b6c0.inc"
#include "orderstringsm/8041b6c0_8041b6e8.inc"
asm void System::init()
{
MANGLED_ASM(void init())
{
#include "asm/801feba0.s"
}
}
namespace System {
void reset()
{
mspDisplay->set_38(1);
@ -179,7 +200,7 @@ namespace System {
}
}
void callbackException(u16, OSContext *, u32, u32)
void callbackException(OSError p1, OSContext * p2, u32 p3, u32 p4)
{
haltRumble();
mspDisplay->startFadeIn(0);
@ -188,201 +209,206 @@ namespace System {
fader->startFadeIn(0);*/
}
/*void haltRumble() {
void haltRumble() {
PADControlMotor(0, 0);
PADControlMotor(2, 0);
PADControlMotor(3, 0);
PADControlMotor(4, 0);
JUTGamePad::LGWheels wheels = JUTGamePad::getLGWheels();
LGWheels *wheels = JUTGamePad::getLGWheels();
for(int i = 0; i < 4; i++) {
for(s32 i = 0; i < 4; i++) {
if (wheels->IsConnected(i)) {
wheels->StopBumpyRoadEffect(i);
wheels->StopSlipperyRoadEffect(i);
wheels->StopCarAirborne(i);
}
}
}*/
}
//#include "jumptable/8039cac0.inc"
/*void checkDVDState()
void checkDVDState()
{
msDvdState = DVDGetDriveStatus();
switch (msDvdState) {
case 5:
ErrorViewApp::call(1);
ErrorViewApp::call(ErrorViewApp::ERROR1);
break;
case 4:
ErrorViewApp::call(2);
ErrorViewApp::call(ErrorViewApp::ERROR2);
break;
case 6:
ErrorViewApp::call(3);
ErrorViewApp::call(ErrorViewApp::ERROR3);
break;
case 11:
ErrorViewApp::call(4);
ErrorViewApp::call(ErrorViewApp::ERROR4);
break;
case -1:
ErrorViewApp::call(5);
ErrorViewApp::call(ErrorViewApp::ERROR5);
break;
}
}*/
}
/*void endRender() {
void beginFrame() {
CardMgr::probe();
checkDVDState();
if (GameAudio::Main::getAudio()->isActive())
GameAudio::Main::getAudio()->frameWork();
mspDisplay->beginRender();
NetGameMgr::mspNetGameMgr->adjustFrame();
Clock::move();
j3dSys.drawInit();
PadMgr::framework();
NetGameMgr::mspNetGameMgr->framework();
}
void endRender() {
SysDebug::getManager()->draw();
if (ScrnShot::sScrnShot)
ScrnShot::sScrnShot->capture();
mspDisplay->endRender();
if (gGamePad1P.testButton(JUTGamePad::L) && gGamePad1P.testTrigger(JUTGamePad::DPAD_DOWN)) {
GameAudio::Main::getAudio()->setBgmVolume(0.0f);
}
AppMgr::calc();
SysDebug::getManager()->ctrlDebugMode();
}*/
}
}
/*void endFrame() {
void endFrame() {
SysDebug::getManager()->ctrlDebugMode();
mspDisplay->endFrame();
if(MoviePlayer::sPlayer) {
MoviePlayer::sPlayer->drawDone();
}
}
void run() {
while(true) { // not sure if this is how it was originally written however the functions match in size
beginFrame();
AppMgr::draw();
endRender();
AppMgr::calc();
endFrame();
}
}
/*MANGLED_ASM(void run())
{
#include "asm/801ff334.s"
}*/
}
// screw you nintendo if these have another inline
f32 get2DVpX() { return SystemData::sc3DViewPort.X; }
f32 get2DVpY() { return SystemData::sc3DViewPort.Y; }
f32 get2DVpW() { return SystemData::sc3DViewPort.W; }
f32 get2DVpH() { return SystemData::sc3DViewPort.H; }
asm void System::haltRumble()
{
#include "asm/801ff294.s"
}
f32 get3DVpX() { return SystemData::sc3DViewPort.X; }
f32 get3DVpY() { return SystemData::sc3DViewPort.Y; }
f32 get3DVpW() { return SystemData::sc3DViewPort.W; }
f32 get3DVpH() { return SystemData::sc3DViewPort.H; }
asm void System::run()
{
#include "asm/801ff334.s"
}
// how the hell did they format this
f32 get3DVpDiv2X(u8 pos) {
JUT_ASSERT(788, pos < 2);
return SystemData::sca3DViewPortDiv2[(u32)pos].X;
}
f32 get3DVpDiv2Y(u8 pos) {
JUT_ASSERT(789, pos < 2);
return SystemData::sca3DViewPortDiv2[(u32)pos].Y;
}
f32 get3DVpDiv2W(u8 pos) {
JUT_ASSERT(790, pos < 2);
return SystemData::sca3DViewPortDiv2[(u32)pos].W;
}
f32 get3DVpDiv2H(u8 pos) {
JUT_ASSERT(790, pos < 2);
return SystemData::sca3DViewPortDiv2[(u32)pos].H;
}
namespace System {
// screw you nintendo if these have another inline
f32 get2DVpX() { return SystemData::sc3DViewPort.X; }
f32 get2DVpY() { return SystemData::sc3DViewPort.Y; }
f32 get2DVpW() { return SystemData::sc3DViewPort.W; }
f32 get2DVpH() { return SystemData::sc3DViewPort.H; }
f32 get3DVpDiv4X(u8 pos) {
JUT_ASSERT(793, pos < 4);
return SystemData::sca3DViewPortDiv4[(u32)pos].X;
}
f32 get3DVpDiv4Y(u8 pos) {
JUT_ASSERT(794, pos < 4);
return SystemData::sca3DViewPortDiv4[(u32)pos].Y;
}
f32 get3DVpDiv4W(u8 pos) {
JUT_ASSERT(795, pos < 4);
return SystemData::sca3DViewPortDiv4[(u32)pos].W;
}
f32 get3DVpDiv4H(u8 pos) {
JUT_ASSERT(796, pos < 4);
return SystemData::sca3DViewPortDiv4[(u32)pos].H;
}
f32 get3DVpX() { return SystemData::sc3DViewPort.X; }
f32 get3DVpY() { return SystemData::sc3DViewPort.Y; }
f32 get3DVpW() { return SystemData::sc3DViewPort.W; }
f32 get3DVpH() { return SystemData::sc3DViewPort.H; }
f32 get3DVpSubX() { return SystemData::sc3DViewPortSub.X; }
f32 get3DVpSubY() { return SystemData::sc3DViewPortSub.Y; }
f32 get3DVpSubW() { return SystemData::sc3DViewPortSub.W; }
f32 get3DVpSubH() { return SystemData::sc3DViewPortSub.H; } // Unused, perhaps inline
// how the hell did they format this
f32 get3DVpDiv2X(u8 pos) {
JUT_ASSERT(788, pos < 2);
return SystemData::sca3DScissorDiv2[pos].X;
}
u32 get2DScisX() { return SystemData::sc3DScissor.X; }
u32 get2DScisY() { return SystemData::sc3DScissor.Y; }
u32 get2DScisW() { return SystemData::sc3DScissor.W; }
u32 get2DScisH() { return SystemData::sc3DScissor.H; }
f32 get3DVpDiv2Y(u8 pos) {
JUT_ASSERT(789, pos < 2);
return SystemData::sca3DScissorDiv2[pos].Y;
}
u32 get3DScisX() { return SystemData::sc3DScissor.X; }
u32 get3DScisY() { return SystemData::sc3DScissor.Y; }
u32 get3DScisW() { return SystemData::sc3DScissor.W; }
u32 get3DScisH() { return SystemData::sc3DScissor.H; }
f32 get3DVpDiv2W(u8 pos) {
JUT_ASSERT(790, pos < 2);
return SystemData::sca3DScissorDiv2[pos].W;
}
u32 get3DAwardScisX() { return SystemData::sc3DAwardScissor.X; }
u32 get3DAwardScisY() { return SystemData::sc3DAwardScissor.Y; }
u32 get3DAwardScisW() { return SystemData::sc3DAwardScissor.W; }
u32 get3DAwardScisH() { return SystemData::sc3DAwardScissor.H; }
f32 get3DVpDiv2H(u8 pos) {
JUT_ASSERT(790, pos < 2);
return SystemData::sca3DScissorDiv2[pos].H;
}
u32 get3DScisDiv2X(u8 pos) {
JUT_ASSERT(819, pos < 2);
return SystemData::sca3DScissorDiv2[(u32)pos].X;
}
u32 get3DScisDiv2Y(u8 pos) {
JUT_ASSERT(820, pos < 2);
return SystemData::sca3DScissorDiv2[(u32)pos].Y;
}
u32 get3DScisDiv2W(u8 pos) {
JUT_ASSERT(821, pos < 2);
return SystemData::sca3DScissorDiv2[(u32)pos].W;
}
u32 get3DScisDiv2H(u8 pos) {
JUT_ASSERT(822, pos < 2);
return SystemData::sca3DScissorDiv2[(u32)pos].H;
}
f32 get3DVpDiv4X(u8 pos) {
JUT_ASSERT(793, pos < 4);
return SystemData::sca3DViewPortDiv4[pos].X;
}
u32 get3DScisDiv4X(u8 pos) {
JUT_ASSERT(824, pos < 2);
return SystemData::sca3DScissorDiv2[(u32)pos].X;
}
u32 get3DScisDiv4Y(u8 pos) {
JUT_ASSERT(825, pos < 4);
return SystemData::sca3DScissorDiv2[(u32)pos].Y;
}
u32 get3DScisDiv4W(u8 pos) {
JUT_ASSERT(826, pos < 4);
return SystemData::sca3DScissorDiv2[(u32)pos].W;
}
u32 get3DScisDiv4H(u8 pos) {
JUT_ASSERT(827, pos < 4);
return SystemData::sca3DScissorDiv2[(u32)pos].W;
}
f32 get3DVpDiv4Y(u8 pos) {
JUT_ASSERT(794, pos < 4);
return SystemData::sca3DViewPortDiv4[pos].Y;
}
u32 get3DScisSubX() { return SystemData::sc3DScissorSub.X; }
u32 get3DScisSubY() { return SystemData::sc3DScissorSub.Y; }
u32 get3DScisSubW() { return SystemData::sc3DScissorSub.W; }
u32 get3DScisSubH() { return SystemData::sc3DScissorSub.H; }
// perhaps create new struct
f32 getOrthoL() { return SystemData::scOrtho.X; }
f32 getOrthoR() { return SystemData::scOrtho.Y; }
f32 getOrthoT() { return SystemData::scOrtho.W; }
f32 getOrthoB() { return SystemData::scOrtho.H; }
f32 get3DVpDiv4W(u8 pos) {
JUT_ASSERT(795, pos < 4);
return SystemData::sca3DViewPortDiv4[pos].W;
}
f32 get3DVpDiv4H(u8 pos) {
JUT_ASSERT(796, pos < 4);
return SystemData::sca3DViewPortDiv4[pos].H;
}
f32 get3DVpSubX() { return SystemData::sc3DViewPortSub.X; }
f32 get3DVpSubY() { return SystemData::sc3DViewPortSub.Y; }
f32 get3DVpSubW() { return SystemData::sc3DViewPortSub.W; }
f32 get3DVpSubH() { return SystemData::sc3DViewPortSub.H; } // Unused, perhaps inline
f32 get2DScisX() { return SystemData::sc3DScissor.X; }
f32 get2DScisY() { return SystemData::sc3DScissor.Y; }
f32 get2DScisW() { return SystemData::sc3DScissor.W; }
f32 get2DScisH() { return SystemData::sc3DScissor.H; }
f32 get3DScisX() { return SystemData::sc3DScissor.X; }
f32 get3DScisY() { return SystemData::sc3DScissor.Y; }
f32 get3DScisW() { return SystemData::sc3DScissor.W; }
f32 get3DScisH() { return SystemData::sc3DScissor.H; }
f32 get3DAwardScisX() { return SystemData::sc3DAwardScissor.X; }
f32 get3DAwardScisY() { return SystemData::sc3DAwardScissor.Y; }
f32 get3DAwardScisW() { return SystemData::sc3DAwardScissor.W; }
f32 get3DAwardScisH() { return SystemData::sc3DAwardScissor.H; }
f32 get3DScisDiv2X(u8 pos) {
JUT_ASSERT(819, pos < 2);
return SystemData::sca3DScissorDiv2[pos].X;
}
f32 get3DScisDiv2Y(u8 pos) {
JUT_ASSERT(820, pos < 2);
return SystemData::sca3DScissorDiv2[pos].Y;
}
f32 get3DScisDiv2W(u8 pos) {
JUT_ASSERT(821, pos < 2);
return SystemData::sca3DScissorDiv2[pos].W;
}
f32 get3DScisDiv2H(u8 pos) {
JUT_ASSERT(822, pos < 2);
return SystemData::sca3DScissorDiv2[pos].H;
}
f32 get3DScisDiv4X(u8 pos) {
JUT_ASSERT(824, pos < 2);
return SystemData::sca3DScissorDiv2[pos].X;
}
f32 get3DScisDiv4Y(u8 pos)
{
JUT_ASSERT(825, pos < 4);
return SystemData::sca3DScissorDiv2[pos].Y;
}
f32 get3DScisDiv4W(u8 pos)
{
JUT_ASSERT(826, pos < 4);
return SystemData::sca3DScissorDiv2[pos].W;
}
f32 get3DScisDiv4H(u8 pos)
{
JUT_ASSERT(827, pos < 4);
return SystemData::sca3DScissorDiv2[pos].W;
}
f32 get3DScisSubX() { return SystemData::sc3DScissorSub.X; }
f32 get3DScisSubY() { return SystemData::sc3DScissorSub.Y; }
f32 get3DScisSubW() { return SystemData::sc3DScissorSub.W; }
f32 get3DScisSubH() { return SystemData::sc3DScissorSub.H; }
// perhaps create new struct
f32 getOrthoL() { return SystemData::scOrtho.X; }
f32 getOrthoR() { return SystemData::scOrtho.Y; }
f32 getOrthoT() { return SystemData::scOrtho.W; }
f32 getOrthoB() { return SystemData::scOrtho.H; }
f32 getPerspAspect() {return SystemData::scAspect; }
f32 getPerspAspectDiv2() { return SystemData::scAspectDiv2; }
f32 getPerspAspectDiv4() { return SystemData::scAspect; }
f32 getPerspAspectSub() { return SystemData::scAspectSub; }
f32 getPerspAspect() { return SystemData::scAspect; }
f32 getPerspAspectDiv2() { return SystemData::scAspectDiv2; }
f32 getPerspAspectDiv4() { return SystemData::scAspect; }
f32 getPerspAspectSub() { return SystemData::scAspectSub; }
}