├── .clangd ├── include ├── agl │ ├── g3d.h │ ├── g3d │ │ └── g3d_ResFile.h │ ├── driver │ │ ├── NVNimage.h │ │ ├── NVNsampler.h │ │ └── NVNtexture.h │ ├── RenderTargetDepth.h │ ├── detail │ │ ├── ShaderHolder.h │ │ ├── MemoryPool.h │ │ └── MemoryPoolHeap.h │ ├── RenderTargetColor.h │ ├── utl.h │ ├── shtxt │ │ ├── Lexer.h │ │ └── SyntaxTree.h │ ├── DrawContext.h │ └── shader │ │ └── ShaderProgramArchive.h ├── nn │ ├── g3d.h │ ├── ui2d │ │ ├── Texture.h │ │ ├── Parts.h │ │ ├── Material.h │ │ └── detail │ │ │ └── TexCoordArray.h │ ├── settings.h │ ├── util.h │ ├── gfx │ │ ├── memory.h │ │ ├── device.h │ │ ├── buffer.h │ │ ├── detail │ │ │ └── deviceimpl.h │ │ └── api.h │ ├── g3d │ │ ├── ResLightAnim.h │ │ ├── ResShapeAnim.h │ │ ├── BindFuncTable.h │ │ ├── ResSkeletalAnim.h │ │ ├── ResMaterialAnim.h │ │ ├── g3d_ResFile.h │ │ ├── ResFogAnim.h │ │ ├── ResMaterial.h │ │ └── ResModel.h │ ├── vfx │ │ ├── Config.h │ │ ├── Heap.h │ │ └── System.h │ ├── nifm.h │ ├── util │ │ ├── util_AccessorBase.h │ │ └── Float2.h │ ├── result.h │ ├── nex │ │ ├── data.h │ │ ├── reference.h │ │ ├── dynamic.h │ │ ├── auth.h │ │ ├── buffer.h │ │ ├── cache.h │ │ ├── plugin.h │ │ ├── hash.h │ │ ├── string.h │ │ ├── RootObject.h │ │ ├── ddl.h │ │ └── key.h │ ├── atk.h │ ├── diag.h │ ├── atk │ │ ├── detail │ │ │ ├── StreamSoundRuntime.h │ │ │ ├── AdvancedWaveSoundRuntime.h │ │ │ └── WaveSoundRuntime.h │ │ └── SoundDataManager.h │ ├── init.h │ ├── err.h │ ├── nn.h │ ├── hid.h │ ├── mem.h │ ├── ssl.h │ ├── vi.h │ └── oe.h ├── game │ ├── Actors │ │ ├── IUseDemoSkip.h │ │ ├── ReflectBombGenerator.h │ │ ├── ChurchDoor.h │ │ ├── KuriboHack.h │ │ ├── ShineTowerRocket.h │ │ ├── CoinStackGroup.h │ │ └── WorldEndBorderKeeper.h │ ├── Player │ │ ├── PlayerInitInfo.h │ │ ├── PlayerModelKeeper.h │ │ ├── HackCap │ │ │ ├── CapTargetInfo.h │ │ │ └── HackCapJointControlKeeper.h │ │ ├── PlayerJointControlPartsDynamics.h │ │ ├── PlayerCollider.h │ │ ├── CapFunction.h │ │ ├── PlayerInput.h │ │ ├── PlayerCameraTarget.h │ │ ├── PlayerAnimFrameCtrl.h │ │ ├── PlayerCostumeFunction.h │ │ ├── PlayerModelChangerHakoniwa.h │ │ ├── PlayerPuppet.h │ │ ├── PlayerColliderHakoniwa.h │ │ ├── YukimaruRacePlayer.h │ │ ├── PlayerModelHolder.h │ │ ├── PlayerFactory.h │ │ └── PlayerAnimControlRun.h │ ├── StaticInstances.h │ ├── Interfaces │ │ ├── IUsePlayerCollision.h │ │ ├── IUsePlayerHack.h │ │ └── IUseDimension.h │ ├── Sequence │ │ └── SequenceFactory.h │ ├── HakoniwaSequence │ │ ├── HakoniwaStateDeleteScene.h │ │ ├── HakoniwaStateBootLoadData.h │ │ ├── HakoniwaStateSimpleDemo.h │ │ ├── HakoniwaStateDemoWorldWarp.h │ │ ├── HakoniwaStateDemoEnding.h │ │ └── HakoniwaStateDemoOpening.h │ ├── GameData │ │ ├── GameDataHolderWriter.h │ │ ├── GameProgressData.h │ │ ├── SaveDataAccessFunction.h │ │ ├── GameDataHolderBase.h │ │ ├── UniqueObjInfo.h │ │ └── GameDataHolderAccessor.h │ ├── InformationMovie │ │ └── InformationMovieUpdater.h │ ├── Controller │ │ └── ControllerAppletFunction.h │ ├── System │ │ ├── GameSystem.h │ │ ├── Application.h │ │ ├── GameDrawInfo.h │ │ └── GameFrameWorkNx.h │ ├── WorldList │ │ └── WorldList.h │ ├── Layouts │ │ ├── MapMini.h │ │ ├── SimpleLayoutMenu.h │ │ └── CoinCounter.h │ ├── SaveData │ │ └── SaveDataAccessFunction.h │ └── SceneObjs │ │ └── RouteGuideDirector.h ├── al │ ├── audio │ │ ├── AudioDirector.h │ │ └── AudioKeeper.h │ ├── effect │ │ ├── Effect.h │ │ ├── EffectSystemInfo.h │ │ ├── EffectInfo.h │ │ ├── EffectKeeper.h │ │ └── EffectUserInfo.h │ ├── message │ │ ├── MessageSystem.h │ │ └── IUseMessageSystem.h │ ├── Scene.hpp │ ├── camera │ │ ├── CameraTurnInfo.h │ │ ├── CameraStartInfo.h │ │ ├── CameraObjectRequestInfo.h │ │ ├── CameraPoserSceneInfo.h │ │ ├── GyroCameraCtrl.h │ │ ├── CameraPoseUpdater.h │ │ ├── SnapshotCameraCtrl.h │ │ ├── CameraAngleCtrlInfo.h │ │ ├── CameraAngleSwingInfo.h │ │ ├── CameraPoserFollowLimit.h │ │ ├── CameraVerticalAbsorber.h │ │ ├── Projection.h │ │ ├── CameraTargetHolder.h │ │ ├── CameraArrowCollider.h │ │ ├── CameraTicket.h │ │ └── CameraPoserFlag.h │ ├── sensor │ │ ├── SensorMsg.h │ │ ├── SensorHitGroup.h │ │ └── HitSensorKeeper.h │ ├── rumble │ │ ├── PadRumbleDirector.h │ │ └── PadRumbleParam.h │ ├── area │ │ ├── AreaObjGroup.h │ │ └── AreaObjDirector.h │ ├── event │ │ └── IEventFlowEventReceiver.h │ ├── screen │ │ └── ScreenPointKeeper.h │ ├── actor │ │ ├── LiveActorKit.h │ │ ├── IUseName.h │ │ ├── misc.h │ │ ├── ActorExecuteInfo.h │ │ ├── alPlacementFunction.h │ │ ├── ActorDimensionKeeper.h │ │ ├── SubActorKeeper.h │ │ ├── ActorCameraTarget.h │ │ └── Placement.h │ ├── execute │ │ ├── IUseExecutor.h │ │ ├── ExecuteSystemInitInfo.h │ │ ├── ExecuteOrder.h │ │ ├── ExecuteTable.h │ │ ├── ExecutorListBase.h │ │ └── ExecuteRequestKeeper.h │ ├── layout │ │ ├── CoinCounter.h │ │ ├── HtmlViewer.h │ │ ├── LayoutKit.h │ │ ├── IUseLayout.h │ │ ├── KeyRepeatCtrl.h │ │ ├── TalkMessageVoicePlayer.h │ │ ├── LayoutSceneInfo.h │ │ ├── SimpleLayoutAppearWaitEnd.h │ │ └── WindowConfirm.h │ ├── gamepad │ │ └── util.h │ ├── rail │ │ ├── RailRider.h │ │ └── RailKeeper.h │ ├── gfx │ │ └── UniformBlock.h │ ├── factory │ │ ├── ProjectActorFactory.h │ │ ├── ProjectCameraPoserFactory.h │ │ └── ActorFactory.h │ ├── hio │ │ └── HioNode.h │ ├── HtmlViewer.h │ ├── collision │ │ └── CollisionDirector.h │ ├── stage │ │ └── StageInfo.h │ ├── action │ │ └── ActionEffectCtrl.h │ ├── byaml │ │ ├── ByamlContainerHeader.h │ │ ├── ByamlHashPair.h │ │ ├── ByamlHeader.h │ │ ├── writer │ │ │ ├── ByamlWriterBigDataList.h │ │ │ └── ByamlWriterStringTable.h │ │ ├── ByamlStringTableIter.h │ │ └── ByamlData.h │ ├── scene │ │ ├── SceneCreator.h │ │ ├── ISceneObj.h │ │ ├── SceneInitInfo.h │ │ └── SceneObjHolder.h │ ├── sequence │ │ └── SequenceInitInfo.h │ ├── nerve │ │ ├── ActorStateBase.h │ │ ├── HostStateBase.h │ │ ├── Nerve.h │ │ ├── NerveStateBase.h │ │ ├── NerveExecutor.h │ │ ├── NerveKeeper.h │ │ ├── NerveAction.h │ │ └── NerveStateCtrl.h │ ├── async │ │ ├── FunctorBase.h │ │ ├── AsyncFunctorThread.h │ │ └── FunctorV0M.hpp │ ├── string │ │ └── StringTmp.h │ ├── switch │ │ └── StageSwitchKeeper.h │ ├── util │ │ ├── AudioUtil.h │ │ ├── KitUtil.h │ │ ├── GraphicsUtil.h │ │ ├── ResourceUtil.h │ │ └── ControllerUtil.h │ ├── LiveActor │ │ └── LiveActorGroup.h │ ├── debug │ │ └── GpuPerf.h │ ├── resource │ │ ├── ActorResourceHolder.h │ │ └── ActorResource.h │ ├── model │ │ └── ModelMaterialCategory.h │ └── PlayerHolder │ │ └── PlayerHolder.h ├── sead │ ├── devenv │ │ ├── seadFontBase.h │ │ ├── seadGameConfig.h │ │ ├── seadEnvUtil.h │ │ └── seadAssertConfig.h │ ├── framework │ │ ├── seadTaskParameter.h │ │ ├── seadProcessMeter.h │ │ ├── seadMethodTreeMgr.h │ │ ├── seadTaskID.h │ │ ├── seadHeapPolicies.h │ │ ├── seadInfLoopChecker.h │ │ └── seadCalculateTask.h │ ├── camera │ │ └── PerspectiveProjection.h │ ├── hostio │ │ ├── seadHostIOMgr.h │ │ └── seadHostIOThreadLock.h │ ├── random │ │ └── seadGlobalRandom.h │ ├── thread │ │ ├── seadThreadUtil.h │ │ ├── seadSpinLock.h │ │ ├── seadDelegateThread.h │ │ ├── seadThreadLocalStorage.h │ │ ├── nin │ │ │ └── seadThreadLocalStorageNin.hpp │ │ ├── seadReadWriteLock.h │ │ └── seadMutex.h │ ├── filedevice │ │ ├── nin │ │ │ ├── seadNinContentFileDeviceNin.h │ │ │ ├── seadNinAocFileDeviceNin.h │ │ │ ├── seadNinSDFileDeviceNin.h │ │ │ ├── seadNinSaveFileDeviceNin.h │ │ │ └── seadNinHostIOFileDevice.h │ │ └── seadPath.h │ ├── codec │ │ ├── seadBase64.h │ │ ├── seadHashCRC16.h │ │ └── seadHashCRC32.h │ ├── heap │ │ ├── seadArena.h │ │ └── seadMemBlock.h │ ├── stream │ │ └── seadStreamSrc.h │ ├── gfx │ │ ├── seadTexture.h │ │ ├── seadDrawContext.h │ │ ├── cafe │ │ │ └── seadTextureCafeGX2.h │ │ ├── seadViewport.h │ │ └── seadPrimitiveRendererUtil.h │ ├── math │ │ ├── seadMathPolicies.h │ │ └── seadQuatCalcCommon.h │ ├── mc │ │ └── seadJob.h │ ├── prim │ │ ├── seadNamable.h │ │ ├── seadSizedEnum.h │ │ ├── cafe │ │ │ └── seadMemUtilCafe.hpp │ │ ├── seadScopeGuard.h │ │ └── nin │ │ │ └── seadMemUtilNin.hpp │ ├── basis │ │ └── seadTypes.h │ └── time │ │ ├── seadDateUtil.h │ │ └── seadTickTime.h ├── packets │ ├── PlayerDC.h │ ├── HolePunchPacket.h │ ├── UdpPacket.h │ ├── InitPacket.h │ ├── ShineCollect.h │ ├── ServerCommand.h │ ├── CaptureInf.h │ ├── HackCapInf.h │ ├── PlayerConnect.h │ ├── ChangeStagePacket.h │ ├── TagInf.h │ ├── CostumeInf.h │ ├── GameInf.h │ └── PlayerInfPacket.h ├── nn.h ├── server │ ├── gamemode │ │ ├── GameModeInfoBase.hpp │ │ ├── modifiers │ │ │ ├── NoCapModifier.hpp │ │ │ ├── GravityModifier.hpp │ │ │ ├── ModeModifierBase.hpp │ │ │ └── ModifierFactory.hpp │ │ └── GameModeConfigMenu.hpp │ ├── DeltaTime.hpp │ └── hns │ │ └── HideAndSeekConfigMenu.hpp ├── rs │ └── util │ │ ├── LiveActorUtil.h │ │ ├── ItemUtil.h │ │ └── InputUtil.h ├── nx │ └── svc.h ├── debugMenu.hpp ├── actors │ ├── PuppetCapActor.h │ └── PuppetHackActor.h ├── logger.hpp ├── layouts │ └── HideAndSeekIcon.h ├── SocketBase.hpp ├── cameras │ ├── CameraVerticalAbsorber2DGalaxy.h │ └── CameraPoserCustom.h └── puppets │ ├── HackModelHolder.hpp │ └── PuppetHolder.hpp ├── .gitattributes ├── exported.txt ├── patches ├── maps │ └── 100 │ │ └── main.map └── configs │ └── 100.config ├── romfs ├── ObjectData │ └── PuppetActor.szs ├── LayoutData │ ├── TitleLogoParts.szs │ ├── HideAndSeekIcon.szs │ └── TitleLogoSmallParts.szs └── DebugData │ └── Font │ ├── nvn_font_jis1.ntx │ ├── nvn_font_shader.bin │ ├── nvn_font_jis1_tbl.bin │ └── nvn_font_shader_jis1.bin ├── .gitignore ├── switch.specs ├── source ├── nx │ └── svc.s ├── server │ ├── DeltaTime.cpp │ └── gamemode │ │ └── modifiers │ │ └── NoCapModifier.cpp ├── cameras │ └── ProjectCameraPoserFactory.cpp ├── Factory.cpp ├── module.cpp ├── crt0.s └── states │ └── StageSceneStatePauseMenu.cpp ├── Dockerfile ├── docker-build.sh ├── linkerscripts └── syms100.ld ├── .github ├── workflows │ └── build.yml └── actions │ └── release │ └── action.yml └── LICENSE /.clangd: -------------------------------------------------------------------------------- 1 | CompileFlags: 2 | Add: [-std=c++20] -------------------------------------------------------------------------------- /include/agl/g3d.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include -------------------------------------------------------------------------------- /include/nn/g3d.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /include/game/Actors/IUseDemoSkip.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class IUseDemoSkip { 4 | 5 | }; -------------------------------------------------------------------------------- /exported.txt: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | _Z14stageSceneHookv; 4 | local: *; 5 | }; 6 | -------------------------------------------------------------------------------- /include/game/Player/PlayerInitInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PlayerInitInfo { 4 | 5 | }; -------------------------------------------------------------------------------- /include/game/StaticInstances.h: -------------------------------------------------------------------------------- 1 | // Header file to store static instances of classes 2 | #pragma once -------------------------------------------------------------------------------- /include/game/Actors/ReflectBombGenerator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" -------------------------------------------------------------------------------- /include/al/audio/AudioDirector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class AudioDirector; 6 | 7 | }; -------------------------------------------------------------------------------- /include/game/Player/PlayerModelKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PlayerModelKeeper { 4 | public: 5 | 6 | }; -------------------------------------------------------------------------------- /include/al/effect/Effect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class Effect 6 | { 7 | 8 | }; 9 | }; -------------------------------------------------------------------------------- /include/al/message/MessageSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class MessageSystem { 5 | 6 | }; 7 | } -------------------------------------------------------------------------------- /include/game/Player/HackCap/CapTargetInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CapTargetInfo { 4 | public: 5 | 6 | }; -------------------------------------------------------------------------------- /include/al/Scene.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class Scene 6 | { 7 | 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /include/al/camera/CameraTurnInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class CameraTurnInfo { 5 | 6 | }; 7 | } -------------------------------------------------------------------------------- /patches/maps/100/main.map: -------------------------------------------------------------------------------- 1 | Address Publics by Value 2 | 00000000:00000071004CC348 _ZN10StageScene7controlEv 3 | -------------------------------------------------------------------------------- /include/al/camera/CameraStartInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class CameraStartInfo { 5 | 6 | }; 7 | } -------------------------------------------------------------------------------- /include/game/Interfaces/IUsePlayerCollision.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class IUsePlayerCollision { 4 | public: 5 | 6 | }; -------------------------------------------------------------------------------- /include/al/sensor/SensorMsg.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class SensorMsg { 6 | 7 | }; 8 | } // namespace al 9 | -------------------------------------------------------------------------------- /include/game/Player/PlayerJointControlPartsDynamics.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PlayerJointControlPartsDynamics { 4 | public: 5 | }; -------------------------------------------------------------------------------- /romfs/ObjectData/PuppetActor.szs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/ObjectData/PuppetActor.szs -------------------------------------------------------------------------------- /romfs/LayoutData/TitleLogoParts.szs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/LayoutData/TitleLogoParts.szs -------------------------------------------------------------------------------- /include/al/camera/CameraObjectRequestInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class CameraObjectRequestInfo { 5 | 6 | }; 7 | } -------------------------------------------------------------------------------- /include/al/rumble/PadRumbleDirector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class PadRumbleDirector { 5 | public: 6 | }; 7 | } -------------------------------------------------------------------------------- /romfs/DebugData/Font/nvn_font_jis1.ntx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/DebugData/Font/nvn_font_jis1.ntx -------------------------------------------------------------------------------- /romfs/LayoutData/HideAndSeekIcon.szs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/LayoutData/HideAndSeekIcon.szs -------------------------------------------------------------------------------- /include/game/Actors/ChurchDoor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | 5 | class ChurchDoor : public al::LiveActor { 6 | 7 | }; -------------------------------------------------------------------------------- /include/game/Actors/KuriboHack.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | 5 | class KuriboHack : public al::LiveActor { 6 | 7 | }; -------------------------------------------------------------------------------- /include/game/Sequence/SequenceFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class SequenceFactory { 4 | public: 5 | static void createSequence(const char *); 6 | }; -------------------------------------------------------------------------------- /romfs/DebugData/Font/nvn_font_shader.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/DebugData/Font/nvn_font_shader.bin -------------------------------------------------------------------------------- /romfs/LayoutData/TitleLogoSmallParts.szs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/LayoutData/TitleLogoSmallParts.szs -------------------------------------------------------------------------------- /include/al/camera/CameraPoserSceneInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | struct CameraPoserSceneInfo { 5 | float mSceneFovyDegree; 6 | }; 7 | } -------------------------------------------------------------------------------- /include/al/effect/EffectSystemInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class EffectSystemInfo { 5 | public: 6 | 7 | }; 8 | } -------------------------------------------------------------------------------- /romfs/DebugData/Font/nvn_font_jis1_tbl.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/DebugData/Font/nvn_font_jis1_tbl.bin -------------------------------------------------------------------------------- /include/al/camera/GyroCameraCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class GyroCameraCtrl { 6 | public: 7 | 8 | }; 9 | }; -------------------------------------------------------------------------------- /include/al/effect/EffectInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class EffectInfo 6 | { 7 | public: 8 | 9 | }; 10 | } -------------------------------------------------------------------------------- /romfs/DebugData/Font/nvn_font_shader_jis1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amethyst-szs/SuperMarioOdysseyOnline/HEAD/romfs/DebugData/Font/nvn_font_shader_jis1.bin -------------------------------------------------------------------------------- /include/al/area/AreaObjGroup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class AreaObjGroup 6 | { 7 | public: 8 | 9 | }; 10 | }; -------------------------------------------------------------------------------- /include/al/camera/CameraPoseUpdater.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class CameraPoseUpdater { 6 | public: 7 | 8 | }; 9 | }; -------------------------------------------------------------------------------- /include/al/camera/SnapshotCameraCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class SnapShotCameraCtrl { 6 | public: 7 | 8 | }; 9 | }; -------------------------------------------------------------------------------- /include/al/event/IEventFlowEventReceiver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class IEventFlowEventReceiver { 6 | 7 | }; 8 | } // namespace al 9 | -------------------------------------------------------------------------------- /include/nn/ui2d/Texture.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn { 4 | namespace ui2d { 5 | class TextureInfo; 6 | class TextureData; 7 | } 8 | } -------------------------------------------------------------------------------- /include/al/camera/CameraAngleCtrlInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class CameraAngleCtrlInfo { 6 | public: 7 | 8 | }; 9 | }; -------------------------------------------------------------------------------- /include/al/camera/CameraAngleSwingInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class CameraAngleSwingInfo { 6 | public: 7 | 8 | }; 9 | }; -------------------------------------------------------------------------------- /include/game/HakoniwaSequence/HakoniwaStateDeleteScene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HakoniwaSequence; 4 | 5 | class HakoniwaStateDeleteScene { 6 | public: 7 | 8 | }; -------------------------------------------------------------------------------- /include/al/screen/ScreenPointKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class ScreenPointKeeper 6 | { 7 | public: 8 | 9 | }; 10 | }; -------------------------------------------------------------------------------- /include/sead/devenv/seadFontBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace sead 4 | { 5 | class FontBase { 6 | // no clue whats in this 7 | }; 8 | } // namespace sead 9 | -------------------------------------------------------------------------------- /include/game/GameData/GameDataHolderWriter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GameDataHolder.h" 4 | 5 | class GameDataHolderWriter { 6 | public: 7 | GameDataHolder *mData; 8 | }; -------------------------------------------------------------------------------- /include/al/actor/LiveActorKit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class LiveActorKit { 6 | public: 7 | 8 | }; 9 | } // namespace al 10 | -------------------------------------------------------------------------------- /include/al/execute/IUseExecutor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class IUseExecutor { 5 | public: 6 | virtual void execute() = 0; 7 | virtual void draw() = 0; 8 | }; 9 | } -------------------------------------------------------------------------------- /include/al/layout/CoinCounter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /* 4 | * VTable Loc: 1CC3170 5 | */ 6 | 7 | #include "al/layout/LayoutActor.h" 8 | 9 | class CoinCounter : public al::LayoutActor {}; -------------------------------------------------------------------------------- /include/al/actor/IUseName.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class IUseName 6 | { 7 | public: 8 | virtual const char* getName() const = 0; 9 | }; 10 | }; -------------------------------------------------------------------------------- /include/game/Player/PlayerCollider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PlayerCollider { 4 | public: 5 | void calcBoundingRadius(float *); 6 | void setCollisionShapeScale(float); 7 | }; -------------------------------------------------------------------------------- /include/al/execute/ExecuteSystemInitInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "agl/DrawContext.h" 4 | 5 | namespace al { 6 | struct ExecuteSystemInitInfo { 7 | agl::DrawContext *mDrawCtx; 8 | }; 9 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | starlight_patch_100/** 2 | build100/** 3 | romfs stuff/** 4 | .vscode/** 5 | Crash Reports/** 6 | .cache/** 7 | Custom Stage Builds/** 8 | *.lst 9 | *.disabled 10 | 11 | compile_commands.json 12 | -------------------------------------------------------------------------------- /include/al/camera/CameraPoserFollowLimit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | class CameraPoserFollowLimit { 5 | public: 6 | unsigned char massive[0x200]; 7 | 8 | //sead::Vector3f lookAtPos; // 0x1F4 9 | }; -------------------------------------------------------------------------------- /patches/configs/100.config: -------------------------------------------------------------------------------- 1 | [build_id] 2 | main=3CA12DFAAF9C82DA064D1698DF79CDA1 3 | sdk=AE34E75D02925F4417B24499AD80C394 4 | 5 | [nso_load_addr] 6 | main=0 7 | subsdk0=0x25A8000 8 | subsdk1=0x2C63000 9 | sdk=0x2C85000 -------------------------------------------------------------------------------- /include/al/camera/CameraVerticalAbsorber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class CameraVerticalAbsorber { 6 | public: 7 | bool isValid(void); 8 | 9 | }; 10 | }; -------------------------------------------------------------------------------- /include/game/InformationMovie/InformationMovieUpdater.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file InformationMoviePlayer.h 3 | * @brief unknown. 4 | */ 5 | 6 | #pragma once 7 | 8 | class InformationMoviePlayer 9 | { 10 | 11 | }; -------------------------------------------------------------------------------- /include/al/camera/Projection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class Projection { 6 | public: 7 | float getFovy(void) const; 8 | void setFovy(float); 9 | }; 10 | }; -------------------------------------------------------------------------------- /include/nn/settings.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn { namespace settings { 4 | 5 | struct LanguageCode 6 | { 7 | char data[8]; 8 | }; 9 | 10 | void GetLanguageCode(LanguageCode* out); 11 | 12 | } } 13 | -------------------------------------------------------------------------------- /include/al/gamepad/util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class GamePadSystem { 5 | public: 6 | void changeSinglePlayMode(void); 7 | void changeMultiPlayMode(int, int); 8 | }; 9 | } -------------------------------------------------------------------------------- /include/game/HakoniwaSequence/HakoniwaStateBootLoadData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HakoniwaSequence; 4 | #include "game/WorldList/WorldResourceLoader.h" 5 | 6 | class HakoniwaStateBootLoadData { 7 | public: 8 | 9 | }; -------------------------------------------------------------------------------- /include/game/HakoniwaSequence/HakoniwaStateSimpleDemo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HakoniwaSequence; 4 | #include "game/WorldList/WorldResourceLoader.h" 5 | 6 | class HakoniwaStateSimpleDemo { 7 | public: 8 | 9 | }; -------------------------------------------------------------------------------- /include/al/rail/RailRider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class RailRider; 6 | 7 | class IUseRail 8 | { 9 | public: 10 | virtual al::RailRider* getRailRider() const = 0; 11 | }; 12 | }; -------------------------------------------------------------------------------- /include/game/GameData/GameProgressData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class GameProgressData { 4 | public: 5 | int getHomeLevel(void) const; 6 | void upHomeLevel(void); 7 | void talkCapNearHomeInWaterfall(void); 8 | }; -------------------------------------------------------------------------------- /include/game/HakoniwaSequence/HakoniwaStateDemoWorldWarp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HakoniwaSequence; 4 | #include "game/WorldList/WorldResourceLoader.h" 5 | 6 | class HakoniwaStateDemoWorldWarp { 7 | public: 8 | 9 | }; -------------------------------------------------------------------------------- /include/packets/PlayerDC.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED PlayerDC : Packet { 6 | PlayerDC() : Packet() {this->mType = PacketType::PLAYERDC; mPacketSize = sizeof(PlayerDC) - sizeof(Packet);}; 7 | }; -------------------------------------------------------------------------------- /switch.specs: -------------------------------------------------------------------------------- 1 | %rename link old_link 2 | 3 | *link: 4 | %(old_link) -T ../linkerscripts/symstemp.ld -T ../linkerscripts/application.ld --shared --build-id=sha1 --build-id=sha1 5 | 6 | *startfile: 7 | crti%O%s crtbegin%O%s -------------------------------------------------------------------------------- /include/al/gfx/UniformBlock.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace al { 6 | class UniformBlock { 7 | UniformBlock(); 8 | ~UniformBlock(); 9 | void swap(); 10 | 11 | }; 12 | } -------------------------------------------------------------------------------- /include/game/Player/CapFunction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "HackCap.h" 4 | #include "PlayerAnimator.h" 5 | 6 | class CapFunction 7 | { 8 | public: 9 | static void putOnCapPlayer(HackCap *, PlayerAnimator *); 10 | }; -------------------------------------------------------------------------------- /include/sead/framework/seadTaskParameter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "prim/seadRuntimeTypeInfo.h" 4 | 5 | namespace sead 6 | { 7 | class TaskParameter 8 | { 9 | SEAD_RTTI_BASE(TaskParameter) 10 | }; 11 | } // namespace sead 12 | -------------------------------------------------------------------------------- /include/al/actor/misc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | 5 | namespace al 6 | { 7 | template 8 | al::LiveActor *createActorFunction(const char *actorName); 9 | 10 | } // namespace al 11 | 12 | -------------------------------------------------------------------------------- /include/packets/HolePunchPacket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED HolePunch : Packet { 6 | HolePunch() : Packet() {this->mType = PacketType::HOLEPUNCH; mPacketSize = sizeof(HolePunch) - sizeof(Packet);}; 7 | }; 8 | -------------------------------------------------------------------------------- /include/al/factory/ProjectActorFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ActorFactory.h" 4 | #include "ActorFactoryEntries100.h" 5 | 6 | class ProjectActorFactory : public al::ActorFactory { 7 | public: 8 | ProjectActorFactory(); 9 | }; 10 | -------------------------------------------------------------------------------- /include/al/layout/HtmlViewer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace al { 6 | class HtmlViewer { 7 | public: 8 | void call(const char*, sead::BufferedSafeStringBase*) const; 9 | }; 10 | }; // namespace al -------------------------------------------------------------------------------- /include/al/layout/LayoutKit.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file IUseLayout.h 3 | * @brief Interface for classes that are layouts. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace al { 9 | class LayoutKit { 10 | public: 11 | 12 | }; 13 | } -------------------------------------------------------------------------------- /include/packets/UdpPacket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED UdpInit : Packet { 6 | UdpInit() : Packet() {this->mType = PacketType::UDPINIT; mPacketSize = sizeof(UdpInit) - sizeof(Packet);}; 7 | u16 port = 0; 8 | }; 9 | -------------------------------------------------------------------------------- /include/al/actor/ActorExecuteInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class ExecutorActorExecuteBase; 6 | 7 | class ActorExecuteInfo 8 | { 9 | public: 10 | void addUpdater(al::ExecutorActorExecuteBase *); 11 | }; 12 | }; -------------------------------------------------------------------------------- /include/al/area/AreaObjDirector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class AreaObjDirector; 6 | 7 | class IUseAreaObj 8 | { 9 | public: 10 | virtual al::AreaObjDirector* getAreaObjDirector() const = 0; 11 | }; 12 | }; -------------------------------------------------------------------------------- /include/al/message/IUseMessageSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "MessageSystem.h" 4 | 5 | namespace al { 6 | class IUseMessageSystem { 7 | public: 8 | virtual al::MessageSystem *getMessageSystem() const = 0; 9 | }; 10 | } -------------------------------------------------------------------------------- /include/nn/util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "../types.h" 4 | 5 | namespace nn { namespace util { 6 | 7 | s32 SNPrintf(char* s, ulong n, const char* format, ...); 8 | s32 VSNPrintf(char* s, ulong n, const char* format, va_list arg); 9 | 10 | } } 11 | -------------------------------------------------------------------------------- /include/al/camera/CameraTargetHolder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/actor/ActorCameraTarget.h" 4 | 5 | namespace al { 6 | class CameraTargetHolder { 7 | public: 8 | al::ActorCameraTarget *tryGetViewTarget(int) const; 9 | }; 10 | } -------------------------------------------------------------------------------- /include/al/hio/HioNode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class IUseHioNode 6 | { 7 | public: 8 | // ?? 9 | }; 10 | 11 | class HioNode : public IUseHioNode 12 | { 13 | public: 14 | // ?? 15 | }; 16 | }; -------------------------------------------------------------------------------- /include/packets/InitPacket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED InitPacket : Packet { 6 | InitPacket() : Packet() {this->mType = PacketType::CLIENTINIT; mPacketSize = sizeof(InitPacket) - sizeof(Packet);}; 7 | u16 maxPlayers = 0; 8 | }; -------------------------------------------------------------------------------- /include/al/HtmlViewer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sead/prim/seadSafeString.hpp" 4 | 5 | namespace al 6 | { 7 | class HtmlViewer 8 | { 9 | public: 10 | void call(const char *, sead::BufferedSafeStringBase *) const; 11 | }; 12 | }; -------------------------------------------------------------------------------- /include/al/execute/ExecuteOrder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | struct ExecuteOrder 5 | { 6 | const char *mListName; 7 | const char *mExecuteGroup; 8 | int mListMaxSize; 9 | const char *mGroupType; 10 | }; 11 | } -------------------------------------------------------------------------------- /include/nn.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | #include "nn/result.h" 5 | #include "nn/util.h" 6 | #include "nn/os.h" 7 | #include "nn/fs.h" 8 | #include "nn/diag.h" 9 | #include "nn/nifm.h" 10 | #include "nn/settings.h" 11 | #include "nn/err.h" 12 | #include "nn/socket.h" -------------------------------------------------------------------------------- /include/al/collision/CollisionDirector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class CollisionDirector; 6 | 7 | class IUseCollision 8 | { 9 | public: 10 | virtual al::CollisionDirector* getCollisionDirector() const = 0; 11 | }; 12 | }; -------------------------------------------------------------------------------- /include/al/stage/StageInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/byaml/ByamlIter.h" 4 | 5 | namespace al { 6 | 7 | class Resource; 8 | 9 | struct StageInfo { 10 | StageInfo(al::Resource *, al::ByamlIter const &, al::ByamlIter const &); 11 | }; 12 | } -------------------------------------------------------------------------------- /include/al/execute/ExecuteTable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ExecuteOrder.h" 4 | 5 | namespace al { 6 | struct ExecuteTable 7 | { 8 | const char *mName; 9 | const al::ExecuteOrder* mExecuteOrders; 10 | int mExecuteOrderCount; 11 | }; 12 | } -------------------------------------------------------------------------------- /include/game/GameData/SaveDataAccessFunction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "game/GameData/GameDataHolder.h" 4 | 5 | namespace SaveDataAccessFunction { 6 | 7 | void startSaveDataInitSync(GameDataHolder *); 8 | 9 | void startSaveDataReadSync(GameDataHolder *); 10 | } 11 | -------------------------------------------------------------------------------- /include/game/Player/PlayerInput.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | 5 | class PlayerInput { 6 | public: 7 | bool isMove(void) const; 8 | bool isMoveDeepDown(void) const; 9 | bool isMoveDeepDownNoSnap(void) const; 10 | bool isNoInput(void) const; 11 | }; -------------------------------------------------------------------------------- /include/sead/camera/PerspectiveProjection.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace sead { 4 | class PerspectiveProjection { 5 | public: 6 | float getFovy(); 7 | 8 | unsigned char padding[0xA0]; 9 | float fovy; 10 | }; 11 | } -------------------------------------------------------------------------------- /include/al/action/ActionEffectCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/effect/EffectKeeper.h" 4 | 5 | namespace al { 6 | class ActionEffectCtrl { 7 | public: 8 | void startAction(char const *); 9 | IUseEffectKeeper *mEffectKeeper; 10 | }; 11 | } -------------------------------------------------------------------------------- /include/al/byaml/ByamlContainerHeader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace al { 6 | class ByamlContainerHeader { 7 | public: 8 | int getType() const; 9 | int getCount(bool) const; 10 | 11 | u32 mType; // _0 12 | }; 13 | }; // namespace al -------------------------------------------------------------------------------- /include/al/rail/RailKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/rail/RailRider.h" 4 | 5 | namespace al 6 | { 7 | class RailKeeper 8 | { 9 | public: 10 | virtual al::RailRider* getRailRider() const; 11 | 12 | al::RailRider* mRailRider; // _8 13 | }; 14 | }; -------------------------------------------------------------------------------- /include/al/factory/ProjectCameraPoserFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CameraPoserFactoryEntries100.h" 4 | #include "CameraPoserFactory.h" 5 | 6 | class ProjectCameraPoserFactory : public al::CameraPoserFactory { 7 | public: 8 | ProjectCameraPoserFactory(); 9 | }; 10 | -------------------------------------------------------------------------------- /include/game/Controller/ControllerAppletFunction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/gamepad/util.h" 4 | 5 | class ControllerAppletFunction { 6 | public: 7 | void connectControllerSinglePlay(al::GamePadSystem *); 8 | void connectControllerSeparatePlay(al::GamePadSystem *); 9 | }; -------------------------------------------------------------------------------- /include/nn/gfx/memory.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file memory.h 3 | * @brief GFX Memory Pool. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace nn 9 | { 10 | namespace gfx 11 | { 12 | // todo: finish me! 13 | template 14 | class TMemoryPool { }; 15 | }; 16 | }; -------------------------------------------------------------------------------- /include/al/camera/CameraArrowCollider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sead/math/seadVector.h" 4 | 5 | namespace al 6 | { 7 | class CameraArrowCollider { 8 | public: 9 | void update(sead::Vector3f const &,sead::Vector3f const &,sead::Vector3f const &); 10 | }; 11 | }; -------------------------------------------------------------------------------- /include/nn/g3d/ResLightAnim.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "BindFuncTable.h" 4 | 5 | namespace nn 6 | { 7 | namespace g3d 8 | { 9 | class ResLightAnim 10 | { 11 | public: 12 | s32 Bind(nn::g3d::BindFuncTable const &); 13 | }; 14 | }; 15 | }; -------------------------------------------------------------------------------- /include/sead/hostio/seadHostIOMgr.h: -------------------------------------------------------------------------------- 1 | #ifndef SEAD_HOST_IO_MGR_H_ 2 | #define SEAD_HOST_IO_MGR_H_ 3 | 4 | namespace sead 5 | { 6 | class HostIOMgr 7 | { 8 | public: 9 | struct Parameter 10 | { 11 | }; 12 | }; 13 | 14 | } // namespace sead 15 | 16 | #endif // SEAD_HOST_IO_MGR_H_ 17 | -------------------------------------------------------------------------------- /include/packets/ShineCollect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED ShineCollect : Packet { 6 | ShineCollect() : Packet() {this->mType = PacketType::SHINECOLL; mPacketSize = sizeof(ShineCollect) - sizeof(Packet);}; 7 | int shineId = -1; 8 | bool1 isGrand = false; 9 | }; -------------------------------------------------------------------------------- /include/nn/vfx/Config.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Config.h 3 | * @brief VFX configuration. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace nn 9 | { 10 | namespace vfx 11 | { 12 | class Config 13 | { 14 | public: 15 | virtual ~Config(); 16 | }; 17 | }; 18 | }; -------------------------------------------------------------------------------- /include/game/Player/PlayerCameraTarget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/actor/ActorCameraTarget.h" 4 | 5 | class PlayerCameraTarget : public al::ActorCameraTarget 6 | { 7 | public: 8 | PlayerCameraTarget(al::LiveActor const *player); 9 | 10 | float unk1; 11 | float unk2; 12 | }; -------------------------------------------------------------------------------- /include/al/effect/EffectKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class EffectKeeper; 6 | 7 | class IUseEffectKeeper 8 | { 9 | public: 10 | virtual al::EffectKeeper* getEffectKeeper() const = 0; 11 | }; 12 | 13 | class EffectKeeper 14 | { 15 | 16 | }; 17 | } -------------------------------------------------------------------------------- /include/al/scene/SceneCreator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class SceneCreator; 6 | 7 | class IUseSceneCreator 8 | { 9 | public: 10 | virtual al::SceneCreator* getSceneCreator() const = 0; 11 | virtual void setSceneCreator(al::SceneCreator* ) = 0; 12 | }; 13 | }; -------------------------------------------------------------------------------- /include/game/Interfaces/IUsePlayerHack.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | /** 3 | * @file PlayerActorBase.h 4 | * @brief Interfaces for Classes that use PlayerHack (PlayerActorBase) 5 | * Vtable loc: 6 | */ 7 | 8 | class IUsePlayerHack { 9 | public: 10 | virtual struct PlayerHackKeeper *getPlayerHackKeeper() const = 0; 11 | }; -------------------------------------------------------------------------------- /source/nx/svc.s: -------------------------------------------------------------------------------- 1 | .macro SVC_BEGIN name 2 | .section .text.\name, "ax", %progbits 3 | .global \name 4 | .type \name, %function 5 | .align 2 6 | .cfi_startproc 7 | \name: 8 | .endm 9 | 10 | .macro SVC_END 11 | .cfi_endproc 12 | .endm 13 | 14 | SVC_BEGIN svcOutputDebugString 15 | svc 0x27 16 | ret 17 | SVC_END -------------------------------------------------------------------------------- /include/packets/ServerCommand.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED ServerCommand : Packet { 6 | ServerCommand(const char *command) : Packet() {this->mType = PacketType::CMD; strcpy(srvCmd, command); mPacketSize = sizeof(ServerCommand) - sizeof(Packet);}; 7 | char srvCmd[PACKBUFSIZE] = {}; 8 | }; -------------------------------------------------------------------------------- /include/sead/random/seadGlobalRandom.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "heap/seadDisposer.h" 4 | #include "random/seadRandom.h" 5 | 6 | namespace sead 7 | { 8 | class GlobalRandom : public Random 9 | { 10 | SEAD_SINGLETON_DISPOSER(GlobalRandom) 11 | GlobalRandom() = default; 12 | }; 13 | } // namespace sead 14 | -------------------------------------------------------------------------------- /include/game/Player/PlayerAnimFrameCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "al/LiveActor/LiveActor.h" 3 | #include "sead/prim/seadSafeString.hpp" 4 | 5 | class PlayerAnimFrameCtrl { 6 | public: 7 | const char *getActionName(void) const; 8 | void startAction(al::LiveActor *actor, sead::SafeString const &actionName); 9 | }; -------------------------------------------------------------------------------- /include/packets/CaptureInf.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED CaptureInf : Packet { 6 | CaptureInf() : Packet() { 7 | this->mType = PacketType::CAPTUREINF; 8 | mPacketSize = sizeof(CaptureInf) - sizeof(Packet); 9 | }; 10 | 11 | char hackName[0x20] = {}; 12 | 13 | }; -------------------------------------------------------------------------------- /include/server/gamemode/GameModeInfoBase.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "server/gamemode/GameModeBase.hpp" 4 | #include 5 | 6 | // base struct containing info about the current gamemode 7 | struct GameModeInfoBase { 8 | GameMode mMode; 9 | }; 10 | 11 | #include "server/gamemode/GameModeManager.hpp" -------------------------------------------------------------------------------- /include/server/gamemode/modifiers/NoCapModifier.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "server/gamemode/modifiers/ModeModifierBase.hpp" 4 | 5 | class NoCapModifier : public ModeModifierBase { 6 | public: 7 | NoCapModifier(GameModeBase* modeInfo); 8 | 9 | void enable() override; 10 | void disable() override; 11 | }; -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM devkitpro/devkita64:latest as builder 2 | 3 | # install dependencies 4 | RUN apt-get update \ 5 | && apt-get install -y \ 6 | python3 \ 7 | python3-pip \ 8 | && pip3 install keystone-engine \ 9 | ; 10 | 11 | WORKDIR /app/ 12 | 13 | ENTRYPOINT make 14 | -------------------------------------------------------------------------------- /include/al/audio/AudioKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class AudioKeeper; 6 | 7 | class IUseAudioKeeper 8 | { 9 | public: 10 | virtual al::AudioKeeper* getAudioKeeper() const = 0; 11 | }; 12 | 13 | class AudioKeeper 14 | { 15 | public: 16 | 17 | }; 18 | }; -------------------------------------------------------------------------------- /include/game/Actors/ShineTowerRocket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | #include "al/event/IEventFlowEventReceiver.h" 5 | #include "IUseDemoSkip.h" 6 | 7 | class ShineTowerRocket : public al::LiveActor, public al::IEventFlowEventReceiver, public IUseDemoSkip { 8 | // virtual void makeActorDead 0x30 9 | }; -------------------------------------------------------------------------------- /include/game/GameData/GameDataHolderBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/hio/HioNode.h" 4 | #include "al/message/IUseMessageSystem.h" 5 | #include "al/scene/ISceneObj.h" 6 | 7 | namespace al { 8 | class GameDataHolderBase : public ISceneObj, HioNode, IUseMessageSystem { 9 | public: 10 | 11 | }; 12 | } -------------------------------------------------------------------------------- /include/al/sequence/SequenceInitInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "game/System/GameSystemInfo.h" 4 | 5 | namespace al { 6 | class SequenceInitInfo { 7 | public: 8 | SequenceInitInfo(al::GameSystemInfo const *sysInf) : mSystemInfo(sysInf) {} 9 | const GameSystemInfo *mSystemInfo; 10 | }; 11 | } -------------------------------------------------------------------------------- /include/game/System/GameSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GameSystemInfo.h" 4 | #include "al/nerve/NerveExecutor.h" 5 | 6 | class GameSystem : public al::NerveExecutor { 7 | public: 8 | void init(); 9 | void *gap; 10 | al::GameSystemInfo* mSystemInfo; // 0x18 11 | // 0x78 GameConfigData 12 | }; -------------------------------------------------------------------------------- /include/nn/g3d/ResShapeAnim.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file ResShapeAnim.h 3 | * @brief Resource file for shape animations. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace nn 9 | { 10 | namespace g3d 11 | { 12 | class ResShapeAnim 13 | { 14 | public: 15 | void Reset(); 16 | }; 17 | }; 18 | }; -------------------------------------------------------------------------------- /include/nn/vfx/Heap.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Heap.h 3 | * @brief VFX heap implementation. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | 10 | namespace nn 11 | { 12 | namespace vfx 13 | { 14 | class Heap 15 | { 16 | public: 17 | virtual ~Heap(); 18 | }; 19 | }; 20 | }; -------------------------------------------------------------------------------- /include/nn/g3d/BindFuncTable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace nn 6 | { 7 | namespace g3d 8 | { 9 | struct BindFuncTable 10 | { 11 | u64 _0; 12 | u32 _8; 13 | u32 _C; 14 | u64 _10; 15 | u64 _18; 16 | }; 17 | }; 18 | }; -------------------------------------------------------------------------------- /include/game/System/Application.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GameFrameWorkNx.h" 4 | 5 | class Application { 6 | public: 7 | static const Application *sInstance; 8 | 9 | unsigned char padding_28[0x28]; 10 | al::GameFrameworkNx *mFramework; // 0x28 11 | }; 12 | 13 | // const Application *Application::sInstance; -------------------------------------------------------------------------------- /include/nn/g3d/ResSkeletalAnim.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file ResSkeletalAnim.h 3 | * @brief Resource file for skeletal animations. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace nn 9 | { 10 | namespace g3d 11 | { 12 | class ResSkeletalAnim 13 | { 14 | public: 15 | void Reset(); 16 | }; 17 | }; 18 | }; -------------------------------------------------------------------------------- /include/nn/nifm.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | #include "result.h" 5 | 6 | namespace nn { namespace nifm { 7 | 8 | Result Initialize(); 9 | void SubmitNetworkRequest(); 10 | void SubmitNetworkRequestAndWait(); 11 | void CancelNetworkRequest(); 12 | bool IsNetworkRequestOnHold(); 13 | bool IsNetworkAvailable(); 14 | 15 | } } 16 | -------------------------------------------------------------------------------- /include/game/Player/PlayerCostumeFunction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/resource/Resource.h" 4 | #include "game/Player/PlayerCostumeInfo.h" 5 | 6 | namespace PlayerCostumeFunction { 7 | PlayerBodyCostumeInfo *createBodyCostumeInfo(al::Resource *,char const*); 8 | PlayerHeadCostumeInfo *createHeadCostumeInfo(al::Resource *,char const*,bool); 9 | } -------------------------------------------------------------------------------- /include/al/nerve/ActorStateBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "NerveStateBase.h" 4 | #include "al/LiveActor/LiveActor.h" 5 | 6 | namespace al { 7 | class ActorStateBase : public al::NerveStateBase { 8 | public: 9 | ActorStateBase(const char*, al::LiveActor*); 10 | 11 | protected: 12 | LiveActor* mLiveActor; 13 | }; 14 | } -------------------------------------------------------------------------------- /include/game/Actors/CoinStackGroup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | 5 | struct CoinStack; // stub class 6 | 7 | class CoinStackGroup : public al::LiveActor 8 | { 9 | public: 10 | void setStackAsCollected(CoinStack *stack); 11 | void generateCoinStackGroup(al::ActorInitInfo const &, int count); 12 | }; -------------------------------------------------------------------------------- /include/game/GameData/UniqueObjInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sead/prim/seadSafeString.hpp" 4 | #include "types.h" 5 | 6 | class UniqObjInfo { 7 | public: 8 | bool isEqual(char const *, char const *); 9 | void set(); 10 | 11 | undefined structSize[0x138]; 12 | }; 13 | 14 | static_assert(sizeof(UniqObjInfo) == 0x138); -------------------------------------------------------------------------------- /include/nn/util/util_AccessorBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nn 4 | { 5 | namespace util 6 | { 7 | template 8 | class AccessorBase : protected T 9 | { 10 | protected: 11 | AccessorBase(); 12 | 13 | public: 14 | typedef T value_type; 15 | }; 16 | }; 17 | }; -------------------------------------------------------------------------------- /include/al/async/FunctorBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | 6 | class FunctorBase 7 | { 8 | public: 9 | virtual void operator()(void) const {return;}; 10 | virtual FunctorBase *clone(void) const {return {0};}; 11 | virtual ~FunctorBase() {return;}; 12 | }; 13 | } // namespace al 14 | -------------------------------------------------------------------------------- /include/game/Interfaces/IUseDimension.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | /** 3 | * @file PlayerActorBase.h 4 | * @brief Interfaces for Classes that use Dimensions 5 | * Vtable loc: 6 | */ 7 | 8 | #include "al/actor/ActorDimensionKeeper.h" 9 | 10 | class IUseDimension { 11 | public: 12 | virtual ActorDimensionKeeper *getActorDimensionKeeper() const = 0; 13 | }; -------------------------------------------------------------------------------- /include/server/DeltaTime.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sead/time/seadTickTime.h" 4 | #include "sead/time/seadDateTime.h" 5 | #include "sead/math/seadQuatCalcCommon.hpp" 6 | 7 | struct Time { 8 | 9 | static void calcTime(); 10 | 11 | static sead::TickTime prevTime; 12 | static sead::TickSpan deltaSpan; 13 | static float deltaTime; 14 | }; -------------------------------------------------------------------------------- /include/agl/g3d/g3d_ResFile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace agl 6 | { 7 | namespace g3d 8 | { 9 | class ResFile 10 | { 11 | public: 12 | static void BindTexture(nn::g3d::ResFile *, nn::g3d::ResFile *); 13 | static void Cleanup(nn::g3d::ResFile *); 14 | }; 15 | }; 16 | }; -------------------------------------------------------------------------------- /include/sead/thread/seadThreadUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "basis/seadTypes.h" 4 | 5 | namespace sead 6 | { 7 | class ThreadUtil 8 | { 9 | public: 10 | static s32 ConvertPrioritySeadToPlatform(s32 prio); 11 | static s32 ConvertPriorityPlatformToSead(s32 prio); 12 | static uintptr_t GetCurrentStackPointer(); 13 | }; 14 | } // namespace sead 15 | -------------------------------------------------------------------------------- /include/al/nerve/HostStateBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "NerveStateBase.h" 4 | 5 | namespace al 6 | { 7 | template 8 | class HostStateBase : public NerveStateBase { 9 | public: 10 | HostStateBase(const char* name, T *host) : NerveStateBase(name), mHost(host){}; 11 | T *mHost; 12 | }; 13 | } // namespace al 14 | -------------------------------------------------------------------------------- /include/al/scene/ISceneObj.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | namespace al { 5 | class ISceneObj { 6 | public: 7 | virtual const char* getSceneObjName(void) = 0; 8 | virtual ~ISceneObj(); 9 | virtual void initAfterPlacementSceneObj(struct ActorInitInfo const&) = 0; 10 | virtual void initSceneObj(void) = 0; 11 | }; 12 | } -------------------------------------------------------------------------------- /source/server/DeltaTime.cpp: -------------------------------------------------------------------------------- 1 | #include "server/DeltaTime.hpp" 2 | 3 | sead::TickTime Time::prevTime; 4 | sead::TickSpan Time::deltaSpan; 5 | float Time::deltaTime; 6 | 7 | void Time::calcTime() { 8 | Time::deltaSpan = Time::prevTime.diffToNow(); 9 | Time::prevTime.setNow(); 10 | Time::deltaTime = fabsf((double)Time::deltaSpan.toNanoSeconds() / 1000000000.0); 11 | } -------------------------------------------------------------------------------- /include/al/execute/ExecutorListBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace al { 6 | class ExecutorListBase { 7 | public: 8 | ExecutorListBase(char const*); 9 | virtual ~ExecutorListBase(); 10 | virtual void executeList() const; 11 | virtual bool isActive() const; 12 | 13 | const char *mName; 14 | }; 15 | } -------------------------------------------------------------------------------- /include/packets/HackCapInf.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED HackCapInf : Packet { 6 | HackCapInf() : Packet() {this->mType = PacketType::HACKCAPINF; mPacketSize = sizeof(HackCapInf) - sizeof(Packet);}; 7 | sead::Vector3f capPos; 8 | sead::Quatf capQuat; 9 | bool1 isCapVisible = false; 10 | char capAnim[PACKBUFSIZE] = {}; 11 | }; -------------------------------------------------------------------------------- /include/sead/filedevice/nin/seadNinContentFileDeviceNin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "filedevice/nin/seadNinFileDeviceBaseNin.h" 4 | 5 | namespace sead 6 | { 7 | class NinContentFileDevice : public NinFileDeviceBase 8 | { 9 | SEAD_RTTI_OVERRIDE(NinContentFileDevice, NinFileDeviceBase) 10 | 11 | public: 12 | NinContentFileDevice(); 13 | }; 14 | } // namespace sead 15 | -------------------------------------------------------------------------------- /include/al/effect/EffectUserInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class EffectUserInfo 6 | { 7 | public: 8 | EffectUserInfo(); 9 | 10 | unsigned long _0; 11 | int _8; 12 | int _C; 13 | unsigned long _10; 14 | int _18; 15 | int _1C; 16 | unsigned long _20; 17 | unsigned long _28; 18 | }; 19 | }; -------------------------------------------------------------------------------- /source/cameras/ProjectCameraPoserFactory.cpp: -------------------------------------------------------------------------------- 1 | #include "al/factory/ProjectCameraPoserFactory.h" 2 | 3 | ProjectCameraPoserFactory::ProjectCameraPoserFactory() : CameraPoserFactory("プロジェクトカメラファクトリー") { 4 | alCameraPoserFactoryFunction::initAndCreateTableFromOtherTable2(this, poserEntries, sizeof(poserEntries)/sizeof(poserEntries[0]), poserEntries2, sizeof(poserEntries2)/sizeof(poserEntries2[0])); 5 | }; -------------------------------------------------------------------------------- /include/nn/result.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace nn { 6 | 7 | struct Result 8 | { 9 | Result(u32 value = 0) : value(value) { } 10 | 11 | inline bool isSuccess() 12 | { 13 | return value == 0; 14 | } 15 | 16 | inline bool isFailure() 17 | { 18 | return !isSuccess(); 19 | } 20 | 21 | u32 value; 22 | }; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /include/rs/util/LiveActorUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | 5 | namespace rs { 6 | void createPlayerSklRetargettingInfo(al::LiveActor *,sead::Vector3f const&); 7 | void initItemByPlacementInfo(al::LiveActor *, al::ActorInitInfo const &, bool); 8 | float setShadowDropLength(al::LiveActor *,al::ActorInitInfo const&,char const*); 9 | } // namespace rs 10 | -------------------------------------------------------------------------------- /include/sead/filedevice/nin/seadNinAocFileDeviceNin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "filedevice/nin/seadNinFileDeviceBaseNin.h" 4 | 5 | namespace sead 6 | { 7 | class NinAocFileDevice : public NinFileDeviceBase 8 | { 9 | SEAD_RTTI_OVERRIDE(NinAocFileDevice, NinFileDeviceBase) 10 | 11 | public: 12 | explicit NinAocFileDevice(const SafeString& mount); 13 | }; 14 | } // namespace sead 15 | -------------------------------------------------------------------------------- /include/packets/PlayerConnect.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | #include 6 | 7 | struct PACKED PlayerConnect : Packet { 8 | PlayerConnect() : Packet() {this->mType = PacketType::PLAYERCON; mPacketSize = sizeof(PlayerConnect) - sizeof(Packet);}; 9 | ConnectionTypes conType; 10 | u16 maxPlayerCount = USHRT_MAX; 11 | char clientName[COSTUMEBUFSIZE] = {}; 12 | }; -------------------------------------------------------------------------------- /include/game/WorldList/WorldList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class WorldList { 4 | public: 5 | const char *getWorldDevelopName(int) const; 6 | int tryFindWorldIndexByStageName(char const *stageName) const; 7 | int getMoonRockScenarioNo(int worldId) const; 8 | int findUseScenarioNo(const char *stageName) const; 9 | bool checkIsMainStage(char const *stageName) const; 10 | }; -------------------------------------------------------------------------------- /include/sead/codec/seadBase64.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace sead 6 | { 7 | class Base64 8 | { 9 | public: 10 | static void encode(char* dst, const void* src, size_t length, bool url_safe); 11 | static bool decode(void* dst, size_t dst_size, const char* src, size_t src_size, 12 | size_t* decoded_size); 13 | }; 14 | } // namespace sead 15 | -------------------------------------------------------------------------------- /docker-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ISEMU=${1:-0} 4 | 5 | export DOCKER_BUILDKIT=1 6 | docker build . -t smoo-client-build 7 | docker run --rm \ 8 | -u $(id -u):$(id -g) \ 9 | -v "/$PWD/":/app/ \ 10 | -e ISEMU=${ISEMU} \ 11 | smoo-client-build \ 12 | ; 13 | docker rmi smoo-client-build 14 | 15 | cp -r ./romfs/ ./starlight_patch_*/atmosphere/contents/0100000000010000/. 16 | -------------------------------------------------------------------------------- /include/al/byaml/ByamlHashPair.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class ByamlHashPair { 5 | public: 6 | int getKey(bool) const; 7 | char getType() const; 8 | int getValue(bool) const; 9 | 10 | union { 11 | const int mData; 12 | struct { 13 | const char _0, _1, _2, mType; 14 | }; 15 | }; 16 | 17 | const int mValue; 18 | }; 19 | }; // namespace al -------------------------------------------------------------------------------- /include/nn/nex/data.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file data.h 3 | * @brief NEX Data. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "RootObject.h" 9 | 10 | namespace nn 11 | { 12 | namespace nex 13 | { 14 | class Data : public nn::nex::RootObject 15 | { 16 | public: 17 | Data(); 18 | 19 | virtual ~Data(); 20 | 21 | u8 _8; 22 | }; 23 | }; 24 | }; -------------------------------------------------------------------------------- /include/sead/filedevice/nin/seadNinSDFileDeviceNin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "filedevice/nin/seadNinFileDeviceBaseNin.h" 4 | 5 | namespace sead 6 | { 7 | class NinSDFileDevice : public NinFileDeviceBase 8 | { 9 | SEAD_RTTI_OVERRIDE(NinSDFileDevice, NinFileDeviceBase) 10 | 11 | public: 12 | NinSDFileDevice(); 13 | 14 | bool doIsAvailable_() const override; 15 | }; 16 | } // namespace sead 17 | -------------------------------------------------------------------------------- /include/al/actor/alPlacementFunction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/actor/ActorInitInfo.h" 4 | 5 | namespace alPlacementFunction { 6 | void getModelName(char const**,al::ActorInitInfo const&); 7 | void getModelName(char const**,al::PlacementInfo const&); 8 | bool tryGetModelName(char const**,al::PlacementInfo const&); 9 | bool tryGetModelName(char const**, al::ActorInitInfo const&); 10 | 11 | } -------------------------------------------------------------------------------- /include/al/layout/IUseLayout.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file IUseLayout.h 3 | * @brief Interface for classes that are layouts. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "al/actor/IUseName.h" 9 | 10 | namespace al { 11 | 12 | struct LayoutKeeper; 13 | 14 | class IUseLayout : virtual public al::IUseName { 15 | public: 16 | virtual al::LayoutKeeper* getLayoutKeeper(void) const = 0; 17 | }; 18 | } // namespace al -------------------------------------------------------------------------------- /include/nn/atk.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace nn { namespace atk { 6 | 7 | class SoundArchive 8 | { 9 | public: 10 | const char* GetItemLabel(u32 id) const; 11 | u32 GetItemId(char const* label) const; 12 | }; 13 | 14 | class SoundActor // Inherits SoundStartable, size: 0x7C 15 | { 16 | public: 17 | virtual ~SoundActor(); 18 | u8 data[0x7C-0x4]; 19 | }; 20 | 21 | } } 22 | -------------------------------------------------------------------------------- /include/nn/util/Float2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Float2.h 3 | * @brief Some odd float implementation that I don't understand yet... 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | 10 | namespace nn 11 | { 12 | namespace util 13 | { 14 | struct Float2 15 | { 16 | u64 _0; 17 | u64 _8; 18 | u64 _10; 19 | u64 _18; 20 | }; 21 | }; 22 | }; -------------------------------------------------------------------------------- /include/sead/heap/seadArena.h: -------------------------------------------------------------------------------- 1 | #ifndef SEAD_ARENA_H_ 2 | #define SEAD_ARENA_H_ 3 | 4 | #include 5 | 6 | namespace sead 7 | { 8 | class Arena 9 | { 10 | public: 11 | Arena(); 12 | ~Arena(); 13 | 14 | u8* initialize(size_t size); 15 | 16 | u8* mStart; 17 | size_t mSize; 18 | bool mInitWithStartAddress; 19 | }; 20 | 21 | } // namespace sead 22 | 23 | #endif // SEAD_ARENA_H_ 24 | -------------------------------------------------------------------------------- /include/sead/filedevice/nin/seadNinSaveFileDeviceNin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "filedevice/nin/seadNinFileDeviceBaseNin.h" 4 | 5 | namespace sead 6 | { 7 | class NinSaveFileDevice : public NinFileDeviceBase 8 | { 9 | SEAD_RTTI_OVERRIDE(NinSaveFileDevice, NinFileDeviceBase) 10 | 11 | public: 12 | explicit NinSaveFileDevice(const SafeString& mount); 13 | bool tryCommit(); 14 | }; 15 | } // namespace sead 16 | -------------------------------------------------------------------------------- /include/nn/diag.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace nn { namespace diag { 6 | 7 | struct ModuleInfo 8 | { 9 | const char* path; 10 | u32 base; 11 | u32 size; 12 | }; 13 | 14 | u32 GetAllModuleInfo(ModuleInfo** outModuleInfos, void* buffer, u32 bufferLen); 15 | u32 GetRequiredBufferSizeForGetAllModuleInfo(); 16 | u32 GetModulePath(char* outName, u32 nameLenMax, u32 address); 17 | 18 | } } 19 | -------------------------------------------------------------------------------- /include/nn/nex/reference.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file reference.h 3 | * @brief Reference implementations for NEX. 4 | */ 5 | #pragma once 6 | 7 | #include "RootObject.h" 8 | 9 | namespace nn 10 | { 11 | namespace nex 12 | { 13 | class RefCountedObject : public nn::nex::RootObject 14 | { 15 | public: 16 | virtual ~RefCountedObject(); 17 | 18 | u32 _8; 19 | }; 20 | }; 21 | }; -------------------------------------------------------------------------------- /include/al/scene/SceneInitInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "game/GameData/GameDataHolderAccessor.h" 4 | #include "game/System/GameSystemInfo.h" 5 | #include "types.h" 6 | 7 | namespace al { 8 | struct SceneInitInfo { 9 | al::GameSystemInfo * gameSysInfo; 10 | GameDataHolderAccessor gameDataHolder; 11 | undefined field_0x10[8]; 12 | char *initStageName; 13 | u32 scenarioNo; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /include/packets/ChangeStagePacket.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED ChangeStagePacket : Packet { 6 | ChangeStagePacket() : Packet() { 7 | this->mType = PacketType::CHANGESTAGE; 8 | mPacketSize = sizeof(ChangeStagePacket) - sizeof(Packet); 9 | }; 10 | char changeStage[0x30] = {}; 11 | char changeID[0x10] = {}; 12 | s8 scenarioNo = -1; 13 | u8 subScenarioType = -1; 14 | }; -------------------------------------------------------------------------------- /include/game/HakoniwaSequence/HakoniwaStateDemoEnding.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HakoniwaSequence; 4 | #include "game/WorldList/WorldResourceLoader.h" 5 | 6 | class HakoniwaStateDemoEnding { 7 | public: 8 | // HakoniwaStateDemoOpening(HakoniwaSequence *, al::WipeHolder *, al::ScreenCaptureExecutor *, WorldResourceLoader *, BootLayout *, const al::LayoutInitInfo *, HakoniwaStateDeleteScene *, al::AsyncFunctorThread *, LoadLayoutCtrl *) 9 | }; -------------------------------------------------------------------------------- /include/game/HakoniwaSequence/HakoniwaStateDemoOpening.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class HakoniwaSequence; 4 | #include "game/WorldList/WorldResourceLoader.h" 5 | 6 | class HakoniwaStateDemoOpening { 7 | public: 8 | // HakoniwaStateDemoOpening(HakoniwaSequence *, al::WipeHolder *, al::ScreenCaptureExecutor *, WorldResourceLoader *, BootLayout *, const al::LayoutInitInfo *, HakoniwaStateDeleteScene *, al::AsyncFunctorThread *, LoadLayoutCtrl *) 9 | }; -------------------------------------------------------------------------------- /include/game/Layouts/MapMini.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/layout/LayoutActor.h" 4 | class MapMini : public al::LayoutActor { 5 | public: 6 | MapMini(al::LayoutInitInfo const&,al::PlayerHolder const*); 7 | void appearSlideIn(void); 8 | void end(void); 9 | void calcNearHintTrans(void); 10 | 11 | bool isEnd(void) const; 12 | 13 | void exeAppear(void); 14 | void exeWait(void); 15 | void exeEnd(void); 16 | }; -------------------------------------------------------------------------------- /source/Factory.cpp: -------------------------------------------------------------------------------- 1 | #include "al/factory/ProjectActorFactory.h" 2 | 3 | #include "al/factory/ProjectCameraPoserFactory.h" 4 | #include "al/factory/CameraPoserFactory.h" 5 | #include "al/factory/CameraPoserFactoryEntries100.h" 6 | 7 | ProjectActorFactory::ProjectActorFactory() : ActorFactory("アクター生成") { 8 | this->actorTable = actorEntries; 9 | this->factoryCount = sizeof(actorEntries)/sizeof(actorEntries[0]); // 570 actors in factory in 1.0.0 10 | }; -------------------------------------------------------------------------------- /include/al/layout/KeyRepeatCtrl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | struct KeyRepeatCtrl { 6 | KeyRepeatCtrl(void); 7 | void init(int, int); 8 | void update(bool isUp, bool isDown); 9 | void reset(void); 10 | bool isUp(void) const; 11 | bool isDown(void) const; 12 | 13 | int maxIndex = 0; 14 | int frameTime = 0; 15 | bool isNoMove = true; 16 | }; 17 | } // namespace al 18 | -------------------------------------------------------------------------------- /include/sead/stream/seadStreamSrc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "basis/seadTypes.h" 4 | 5 | namespace sead 6 | { 7 | class StreamSrc 8 | { 9 | public: 10 | virtual u32 read(void* data, u32 size) = 0; 11 | virtual u32 write(const void* data, u32 size) = 0; 12 | virtual u32 skip(s32 offset) = 0; 13 | virtual void rewind() = 0; 14 | virtual bool isEOF() = 0; 15 | virtual bool flush() { return true; } 16 | }; 17 | } // namespace sead 18 | -------------------------------------------------------------------------------- /source/module.cpp: -------------------------------------------------------------------------------- 1 | #define MODULE_NAME "Starlight" 2 | #define MODULE_NAME_LEN 9 3 | 4 | // rtld working object 5 | __attribute__((section(".bss"))) char __nx_module_runtime[0xD0]; 6 | 7 | struct ModuleName { 8 | int unknown; 9 | int name_lengh; 10 | char name[MODULE_NAME_LEN + 1]; 11 | }; 12 | 13 | __attribute__((section(".rodata.module_name"))) 14 | ModuleName module_name = {.unknown = 0, .name_lengh = MODULE_NAME_LEN, .name = MODULE_NAME}; 15 | -------------------------------------------------------------------------------- /include/nn/gfx/device.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file device.h 3 | * @brief Device implementation for GFX. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | 10 | namespace nn 11 | { 12 | namespace gfx 13 | { 14 | class DeviceInfo 15 | { 16 | public: 17 | 18 | u64 mInfo; // _0 19 | }; 20 | 21 | template 22 | class TDevice 23 | { 24 | 25 | }; 26 | }; 27 | }; -------------------------------------------------------------------------------- /include/sead/framework/seadProcessMeter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "heap/seadDisposer.h" 4 | 5 | namespace sead 6 | { 7 | class ProcessMeterBarBase; 8 | 9 | // FIXME 10 | class ProcessMeter 11 | { 12 | SEAD_SINGLETON_DISPOSER(ProcessMeter) 13 | ProcessMeter() = default; 14 | 15 | public: 16 | void attachProcessMeterBar(ProcessMeterBarBase* bar); 17 | void detachProcessMeterBar(ProcessMeterBarBase* bar); 18 | }; 19 | } // namespace sead 20 | -------------------------------------------------------------------------------- /include/nx/svc.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file svc.h 3 | * @brief Wrappers for kernel syscalls. 4 | * @copyright libnx Authors 5 | */ 6 | #pragma once 7 | 8 | extern "C" { 9 | 10 | /** 11 | * @brief Outputs debug text, if used during debugging. 12 | * @param[in] str Text to output. 13 | * @param[in] size Size of the text in bytes. 14 | * @return Result code. 15 | * @note Syscall number 0x27. 16 | */ 17 | Result svcOutputDebugString(const char *str, u64 size); 18 | 19 | 20 | } -------------------------------------------------------------------------------- /include/al/sensor/SensorHitGroup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class HitSensor; 6 | 7 | class SensorHitGroup 8 | { 9 | public: 10 | SensorHitGroup(int, const char *); 11 | 12 | void add(al::HitSensor *); 13 | void remove(al::HitSensor *); 14 | al::HitSensor* getSensor(int) const; 15 | 16 | int _0; 17 | int mSensorCount; // _4 18 | al::HitSensor** mSensors; // _8 19 | }; 20 | }; -------------------------------------------------------------------------------- /include/game/Player/PlayerModelChangerHakoniwa.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | #include "PlayerCostumeInfo.h" 5 | #include "PlayerModelHolder.h" 6 | #include "game/Interfaces/IUseDimension.h" 7 | 8 | class PlayerPainPartsKeeper; 9 | 10 | class PlayerModelChangerHakoniwa { 11 | public: 12 | PlayerModelChangerHakoniwa(al::LiveActor const *, PlayerModelHolder *, PlayerPainPartsKeeper *, PlayerCostumeInfo *, IUseDimension const *); 13 | }; -------------------------------------------------------------------------------- /include/al/string/StringTmp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | 5 | template 6 | class StringTmp : public sead::FixedSafeString { // equal to WFormatFixedSafeString 7 | public: 8 | StringTmp(const char* format, ...) : sead::FixedSafeString() { 9 | std::va_list args; 10 | va_start(args, format); 11 | this->formatV(format, args); 12 | va_end(args); 13 | } 14 | ~StringTmp() = default; 15 | }; 16 | 17 | } // namespace al 18 | -------------------------------------------------------------------------------- /include/packets/TagInf.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | #include "sead/basis/seadTypes.h" 5 | 6 | enum TagUpdateType : u8 { 7 | TIME = 1 << 0, 8 | STATE = 1 << 1 9 | }; 10 | 11 | struct PACKED TagInf : Packet { 12 | TagInf() : Packet() { this->mType = PacketType::TAGINF; mPacketSize = sizeof(TagInf) - sizeof(Packet);}; 13 | TagUpdateType updateType; 14 | bool1 isIt = false; 15 | u8 seconds; 16 | u16 minutes; 17 | }; -------------------------------------------------------------------------------- /include/sead/gfx/seadTexture.h: -------------------------------------------------------------------------------- 1 | #ifndef SEAD_TEXTURE_H_ 2 | #define SEAD_TEXTURE_H_ 3 | 4 | #include 5 | #include 6 | 7 | namespace sead 8 | { 9 | class Texture 10 | { 11 | SEAD_RTTI_BASE(Texture) 12 | 13 | public: 14 | Texture() {} 15 | virtual ~Texture() {} 16 | 17 | virtual u32 getWidth() const = 0; 18 | virtual u32 getHeight() const = 0; 19 | }; 20 | 21 | } // namespace sead 22 | 23 | #endif // SEAD_TEXTURE_H_ 24 | -------------------------------------------------------------------------------- /include/al/nerve/Nerve.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al 4 | { 5 | class NerveKeeper; 6 | 7 | class IUseNerve 8 | { 9 | public: 10 | 11 | inline IUseNerve() 12 | { 13 | 14 | } 15 | 16 | virtual NerveKeeper* getNerveKeeper() const = 0; 17 | }; 18 | 19 | class Nerve 20 | { 21 | public: 22 | virtual void execute(NerveKeeper *) = 0; 23 | virtual void executeOnEnd(NerveKeeper *) const; 24 | }; 25 | }; -------------------------------------------------------------------------------- /include/nn/nex/dynamic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file dynamic.h 3 | * @brief NEX Dyamnic Runtime. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "RootObject.h" 9 | 10 | namespace nn 11 | { 12 | namespace nex 13 | { 14 | class DynamicRunTimeInterface : public nn::nex::RootObject 15 | { 16 | public: 17 | DynamicRunTimeInterface(); 18 | 19 | virtual ~DynamicRunTimeInterface(); 20 | 21 | u64* GetInstance(); 22 | }; 23 | }; 24 | }; -------------------------------------------------------------------------------- /include/al/rumble/PadRumbleParam.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | struct PadRumbleParam { 5 | inline PadRumbleParam() = default; 6 | float mRumbleNear = 0.0f; 7 | float mRumbleFar = 3000.0f; 8 | float mRumbleVolume = 1.0f; 9 | float mRumblePitchVol = 1.0f; 10 | float mRumblePitchLeft = 1.0f; 11 | float mRumblePitchRight = 1.0f; 12 | int unk = 0; 13 | bool isUseController = false; 14 | }; 15 | } // namespace al -------------------------------------------------------------------------------- /include/game/Player/PlayerPuppet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class PlayerPuppet { 4 | public: 5 | void hide(void); 6 | void hideShadow(void); 7 | void hideSilhouette(void); 8 | 9 | void show(void); 10 | void showShadow(void); 11 | void showSilhouette(void); 12 | 13 | void invalidateCollisionCheck(void); 14 | void invalidateSensor(void); 15 | 16 | void validateCollisionCheck(void); 17 | void validateSensor(void); 18 | }; -------------------------------------------------------------------------------- /source/crt0.s: -------------------------------------------------------------------------------- 1 | .section ".text.crt0","ax" 2 | .global __module_start 3 | .extern __nx_module_runtime 4 | 5 | __module_start: 6 | b . 7 | .word __nx_mod0 - __module_start 8 | 9 | .section ".rodata.mod0" 10 | .global __nx_mod0 11 | __nx_mod0: 12 | .ascii "MOD0" 13 | .word __dynamic_start__ - __nx_mod0 14 | .word __bss_start__ - __nx_mod0 15 | .word __bss_end__ - __nx_mod0 16 | .word 0 17 | .word 0 18 | .word __nx_module_runtime - __nx_mod0 19 | -------------------------------------------------------------------------------- /include/al/nerve/NerveStateBase.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "NerveExecutor.h" 4 | 5 | namespace al 6 | { 7 | class NerveStateBase : public NerveExecutor 8 | { 9 | public: 10 | NerveStateBase(const char *); 11 | 12 | virtual ~NerveStateBase(); 13 | virtual void init(); 14 | virtual void appear(); 15 | virtual void kill(); 16 | virtual bool update(); 17 | virtual void control(); 18 | 19 | bool mIsDead; // _10 20 | }; 21 | }; -------------------------------------------------------------------------------- /include/al/switch/StageSwitchKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/actor/IUseName.h" 4 | 5 | namespace al 6 | { 7 | class StageSwitchKeeper; 8 | 9 | class IUseStageSwitch : virtual public al::IUseName 10 | { 11 | public: 12 | virtual al::StageSwitchKeeper* getStageSwitchKeeper() const = 0; 13 | virtual void initStageSwitchKeeper() = 0; 14 | }; 15 | 16 | class StageSwitchKeeper 17 | { 18 | public: 19 | StageSwitchKeeper(); 20 | }; 21 | }; -------------------------------------------------------------------------------- /include/al/util/AudioUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/audio/AudioKeeper.h" 4 | #include "sead/prim/seadSafeString.h" 5 | 6 | namespace al { 7 | 8 | bool checkIsPlayingSe(al::IUseAudioKeeper const*, const sead::SafeString&, const char*); 9 | 10 | bool isPlayingBgm(al::IUseAudioKeeper const*); 11 | 12 | bool isPlayingBgm(al::IUseAudioKeeper const*,char const*); 13 | 14 | void stopAllBgm(al::IUseAudioKeeper const*, int); 15 | 16 | bool tryStopAllBgm(al::IUseAudioKeeper const *, int); 17 | 18 | } -------------------------------------------------------------------------------- /include/al/nerve/NerveExecutor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Nerve.h" 4 | #include "NerveKeeper.h" 5 | 6 | namespace al 7 | { 8 | class NerveExecutor : public IUseNerve 9 | { 10 | public: 11 | NerveExecutor(const char *); 12 | 13 | virtual NerveKeeper* getNerveKeeper() const; 14 | virtual ~NerveExecutor(); 15 | 16 | void initNerve(const al::Nerve *, int stateCount); 17 | void updateNerve(); 18 | 19 | al::NerveKeeper* mKeeper; // _8 20 | }; 21 | }; -------------------------------------------------------------------------------- /include/nn/g3d/ResMaterialAnim.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file ResMaterialAnim.h 3 | * @brief Resource file for material animations. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace nn 9 | { 10 | namespace g3d 11 | { 12 | typedef void* TextureRef; 13 | 14 | class ResMaterialAnim 15 | { 16 | public: 17 | void ReleaseTexture(); 18 | s32 BindTexture(nn::g3d::TextureRef (*)(char const*, void *), void *); 19 | void Reset(); 20 | }; 21 | }; 22 | }; -------------------------------------------------------------------------------- /include/server/gamemode/GameModeConfigMenu.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "game/Layouts/CommonVerticalList.h" 4 | 5 | class GameModeConfigMenu { 6 | public: 7 | GameModeConfigMenu() = default; 8 | 9 | virtual void initMenu(const al::LayoutInitInfo &initInfo) {return;} 10 | 11 | virtual bool updateMenu(int selectIndex) {return false;} 12 | 13 | virtual const sead::WFixedSafeString<0x200>* getStringData() {return nullptr;} 14 | 15 | virtual const int getMenuSize() {return 0;} 16 | 17 | }; -------------------------------------------------------------------------------- /include/al/LiveActor/LiveActorGroup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/hio/HioNode.h" 4 | 5 | namespace al 6 | { 7 | class LiveActor; 8 | 9 | class LiveActorGroup : public al::HioNode 10 | { 11 | public: 12 | LiveActorGroup(const char *, int); 13 | 14 | virtual void registerActor(al::LiveActor *); 15 | 16 | const char* mGroupName; // _8 17 | int mMaxActorCount; // _10 18 | int mActorCount; // _14 19 | al::LiveActor** mActors; // _18 20 | }; 21 | }; -------------------------------------------------------------------------------- /include/nn/g3d/g3d_ResFile.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "nn/util/util_AccessorBase.h" 4 | 5 | namespace nn 6 | { 7 | namespace g3d 8 | { 9 | struct ResFileData 10 | { 11 | // empty for now 12 | }; 13 | 14 | class ResFile : public nn::util::AccessorBase 15 | { 16 | public: 17 | 18 | static ResFile* ResCast(void *); 19 | 20 | void ReleaseTexture(); 21 | void Reset(); 22 | }; 23 | }; 24 | }; -------------------------------------------------------------------------------- /include/sead/filedevice/nin/seadNinHostIOFileDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "filedevice/nin/seadNinFileDeviceBaseNin.h" 4 | 5 | namespace sead 6 | { 7 | class NinHostIOFileDevice : public NinFileDeviceBase 8 | { 9 | SEAD_RTTI_OVERRIDE(NinHostIOFileDevice, NinFileDeviceBase) 10 | 11 | public: 12 | NinHostIOFileDevice(); 13 | 14 | bool doIsAvailable_() const override; 15 | bool formatPathForFS_(BufferedSafeString* out, const SafeString& path) const override; 16 | }; 17 | } // namespace sead 18 | -------------------------------------------------------------------------------- /include/al/layout/TalkMessageVoicePlayer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/audio/AudioKeeper.h" 4 | #include "al/message/IUseMessageSystem.h" 5 | 6 | namespace al { 7 | class TalkMessageVoicePlayer { 8 | public: 9 | TalkMessageVoicePlayer(); 10 | 11 | void start(al::IUseMessageSystem const*, al::IUseAudioKeeper const*, char16_t const*, int); 12 | void stop(void); 13 | void update(void); 14 | void calcVoicePitch(int); 15 | bool isPlaying(void) const; 16 | 17 | char size[0x440]; 18 | }; 19 | } -------------------------------------------------------------------------------- /include/server/gamemode/modifiers/GravityModifier.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ModeModifierBase.hpp" 4 | #include "game/StageScene/StageScene.h" 5 | 6 | class GravityModifier : public ModeModifierBase { 7 | public: 8 | GravityModifier(GameModeBase* modeInfo); 9 | 10 | void enable() override; 11 | void disable() override; 12 | void update() override; 13 | 14 | void setCamTicket(al::CameraTicket *ticket) {mTicket = ticket;}; 15 | 16 | private: 17 | al::CameraTicket *mTicket = nullptr; 18 | }; -------------------------------------------------------------------------------- /include/al/util/KitUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/scene/Scene.h" 4 | 5 | namespace al { 6 | 7 | class LayoutKit; 8 | class LiveActorKit; 9 | 10 | void updateKitList(al::Scene *,char const*,char const*); 11 | void updateKitList(al::Scene*, char const*); 12 | 13 | void executeUpdateList(al::LayoutKit *,char const*,char const*); 14 | void executeUpdateList(al::LiveActorKit*, char const*, char const*); 15 | 16 | void executeDrawList(al::LiveActorKit const*,char const*,char const*); 17 | } -------------------------------------------------------------------------------- /include/sead/hostio/seadHostIOThreadLock.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "basis/seadTypes.h" 4 | #include "thread/seadAtomic.h" 5 | 6 | namespace sead 7 | { 8 | class CriticalSection; 9 | 10 | namespace hostio 11 | { 12 | class ThreadLock 13 | { 14 | public: 15 | ThreadLock(); 16 | ~ThreadLock(); 17 | static void lock(); 18 | static void unlock(); 19 | 20 | private: 21 | static CriticalSection& getCS(); 22 | static Atomic sLockCnt; 23 | }; 24 | } // namespace hostio 25 | } // namespace sead 26 | -------------------------------------------------------------------------------- /include/sead/gfx/seadDrawContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "basis/seadTypes.h" 4 | #include "prim/seadRuntimeTypeInfo.h" 5 | 6 | namespace sead 7 | { 8 | class DrawContext 9 | { 10 | SEAD_RTTI_BASE(DrawContext) 11 | public: 12 | DrawContext(); 13 | virtual ~DrawContext(); 14 | 15 | private: 16 | u32 _8; 17 | u32 _c; 18 | u64 _10; 19 | u8 _18[0xC0 - 0x18]; 20 | u64 _c0; 21 | u64 _c8; 22 | u64 _d0; 23 | u64 _d8; 24 | u64 _e0; 25 | u64 _e8; 26 | }; 27 | 28 | } // namespace sead 29 | -------------------------------------------------------------------------------- /include/sead/math/seadMathPolicies.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace sead 6 | { 7 | template 8 | class Policies 9 | { 10 | public: 11 | using Vec2Base = BaseVec2; 12 | using Vec3Base = BaseVec3; 13 | using Vec4Base = BaseVec4; 14 | using QuatBase = BaseQuat; 15 | using Mtx22Base = BaseMtx22; 16 | using Mtx33Base = BaseMtx33; 17 | using Mtx34Base = BaseMtx34; 18 | using Mtx44Base = BaseMtx44; 19 | }; 20 | 21 | } // namespace sead 22 | -------------------------------------------------------------------------------- /include/game/System/GameDrawInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //#include "agl/DrawContext.h" 4 | #include "agl/RenderBuffer.h" 5 | 6 | namespace agl 7 | { 8 | struct DrawContext; 9 | } // namespace agl 10 | 11 | 12 | namespace al 13 | { 14 | class GameDrawInfo { 15 | public: 16 | agl::RenderBuffer *mFirstRenderBuffer; // 0x0 17 | agl::RenderBuffer *mSecondRenderBuffer; // 0x8 18 | bool unkBool; // 0x10 19 | agl::DrawContext *mDrawContext; // 0x18 20 | }; 21 | } // namespace al 22 | -------------------------------------------------------------------------------- /include/nn/nex/auth.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file auth.h 3 | * @brief Authorization for DDL. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "ddl.h" 9 | #include "types.h" 10 | 11 | namespace nn 12 | { 13 | namespace nex 14 | { 15 | class NintendoAuthenticationDDLDeclarations : public nn::nex::DDLDeclarations 16 | { 17 | public: 18 | virtual ~NintendoAuthenticationDDLDeclarations(); 19 | virtual void Init(); 20 | 21 | void Register(); 22 | 23 | }; 24 | }; 25 | }; -------------------------------------------------------------------------------- /include/agl/driver/NVNimage.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file NVNimage.h 3 | * @brief Defines a class for representing a NVN image. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | 10 | namespace agl 11 | { 12 | namespace driver 13 | { 14 | class NVNimage_ 15 | { 16 | public: 17 | NVNimage_(); 18 | NVNimage_(agl::driver::NVNimage_ const &); 19 | ~NVNimage_(); 20 | 21 | void updateImageId(s32 id); 22 | 23 | u64 mImageId; // _0 24 | }; 25 | }; 26 | }; -------------------------------------------------------------------------------- /include/nn/atk/detail/StreamSoundRuntime.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file StreamSoundRuntime.h 3 | * @brief Stream sound runtime information. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | 10 | namespace nn 11 | { 12 | namespace atk 13 | { 14 | namespace detail 15 | { 16 | class StreamSoundRuntime 17 | { 18 | public: 19 | StreamSoundRuntime(); 20 | ~StreamSoundRuntime(); 21 | 22 | u8 _0[0xB0]; 23 | }; 24 | }; 25 | }; 26 | }; -------------------------------------------------------------------------------- /include/sead/mc/seadJob.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "prim/seadDelegate.h" 4 | #include "prim/seadNamable.h" 5 | 6 | namespace sead 7 | { 8 | class Job : public INamable 9 | { 10 | public: 11 | virtual ~Job(); 12 | virtual void invoke() = 0; 13 | }; 14 | 15 | template 16 | class Job0 : public Job 17 | { 18 | public: 19 | Job0(const Delegate& delegate) : mDelegate(delegate) {} 20 | void invoke() override { mDelegate.invoke(); } 21 | 22 | protected: 23 | Delegate mDelegate; 24 | }; 25 | } // namespace sead 26 | -------------------------------------------------------------------------------- /include/al/byaml/ByamlHeader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace al { 4 | class ByamlHeader { 5 | public: 6 | short getTag() const; 7 | bool isInvertOrder() const; 8 | short getVersion() const; 9 | int getHashKeyTableOffset() const; 10 | int getStringTableOffset() const; 11 | int getDataOffset() const; 12 | 13 | union { 14 | int _0; 15 | unsigned short mTag, mVersion; 16 | }; 17 | 18 | int mHashKeyOffset; // _4 19 | int mStringTableOffset; // _8 20 | int mDataOffset; // _C 21 | }; 22 | }; // namespace al -------------------------------------------------------------------------------- /include/sead/heap/seadMemBlock.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "basis/seadTypes.h" 4 | #include "container/seadListImpl.h" 5 | #include "container/seadOffsetList.h" 6 | 7 | namespace sead 8 | { 9 | class MemBlock 10 | { 11 | public: 12 | static MemBlock* FindManageArea(void* ptr); 13 | 14 | static u32 getOffset() { return offsetof(MemBlock, mListNode); } 15 | 16 | protected: 17 | ListNode mListNode; 18 | u16 mHeapCheckTag; 19 | u16 mOffset; 20 | size_t mSize; 21 | }; 22 | 23 | using MemBlockList = OffsetList; 24 | } // namespace sead 25 | -------------------------------------------------------------------------------- /include/nn/init.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file init.h 3 | * @brief Initialization functions for OS related functions. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "mem.h" 9 | #include "types.h" 10 | 11 | namespace nn 12 | { 13 | namespace init 14 | { 15 | void InitializeAllocator(void *addr, u64 size); 16 | nn::mem::StandardAllocator* GetAllocator(); 17 | 18 | namespace detail 19 | { 20 | void* DefaultAllocatorForThreadLocal(u64, u64); 21 | void* DefaultDeallocatorForThreadLocal(void *, u64); 22 | }; 23 | } 24 | }; -------------------------------------------------------------------------------- /include/nn/gfx/buffer.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file buffer.h 3 | * @brief GFX Buffers. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | 10 | namespace nn 11 | { 12 | namespace gfx 13 | { 14 | class BufferInfo 15 | { 16 | public: 17 | void SetDefault(); 18 | 19 | u64 mInfo; // _0 20 | }; 21 | 22 | class BufferTextureViewInfo 23 | { 24 | public: 25 | void SetDefault(); 26 | 27 | u64 _0; 28 | u64 _8; 29 | u64 _10; 30 | }; 31 | }; 32 | }; -------------------------------------------------------------------------------- /include/nn/vfx/System.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file System.h 3 | * @brief VFX system implementation. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "Config.h" 9 | #include "Heap.h" 10 | 11 | // this class is massive 12 | namespace nn 13 | { 14 | namespace vfx 15 | { 16 | class System 17 | { 18 | public: 19 | System(nn::vfx::Config const &); 20 | 21 | virtual ~System(); 22 | virtual void Initialize(nn::vfx::Heap *,nn::vfx::Heap *, nn::vfx::Config const &); 23 | 24 | u8 _0[0x1700]; 25 | }; 26 | }; 27 | }; -------------------------------------------------------------------------------- /include/sead/devenv/seadGameConfig.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "heap/seadDisposer.h" 4 | #include "hostio/seadHostIONode.h" 5 | #include "prim/seadSafeString.h" 6 | 7 | namespace sead 8 | { 9 | class GameConfig : public hostio::Node 10 | { 11 | SEAD_SINGLETON_DISPOSER(GameConfig) 12 | GameConfig(); 13 | virtual ~GameConfig(); 14 | 15 | static const SafeString cNodeName; 16 | 17 | protected: 18 | struct FileWriteCallback 19 | { 20 | virtual ~FileWriteCallback(); 21 | virtual void save(); 22 | }; 23 | }; 24 | } // namespace sead 25 | -------------------------------------------------------------------------------- /include/sead/prim/seadNamable.h: -------------------------------------------------------------------------------- 1 | #ifndef SEAD_NAMABLE_H_ 2 | #define SEAD_NAMABLE_H_ 3 | 4 | #include 5 | 6 | namespace sead 7 | { 8 | class INamable 9 | { 10 | public: 11 | INamable() = default; 12 | explicit INamable(const SafeString& name) : mINamableName(name) {} 13 | 14 | const SafeString& getName() const { return mINamableName; } 15 | void setName(const SafeString& name) { mINamableName = name; } 16 | 17 | private: 18 | SafeString mINamableName = ""; 19 | }; 20 | 21 | } // namespace sead 22 | 23 | #endif // SEAD_NAMABLE_H_ 24 | -------------------------------------------------------------------------------- /include/nn/nex/buffer.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file buffer.h 3 | * @brief NEX buffer implementation. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "string.h" 9 | #include "types.h" 10 | 11 | namespace nn 12 | { 13 | namespace nex 14 | { 15 | // todo 16 | class Buffer 17 | { 18 | public: 19 | Buffer(nn::nex::Buffer const &); 20 | Buffer(nn::nex::Buffer &&); 21 | Buffer(nn::nex::String const &); 22 | 23 | void FreeDataBuffer(u8 *, u64); 24 | 25 | virtual ~Buffer(); 26 | }; 27 | }; 28 | }; -------------------------------------------------------------------------------- /include/packets/CostumeInf.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | 5 | struct PACKED CostumeInf : Packet { 6 | CostumeInf() : Packet() {this->mType = PacketType::COSTUMEINF; mPacketSize = sizeof(CostumeInf) - sizeof(Packet);}; 7 | CostumeInf(const char* body, const char* cap) : Packet() { 8 | this->mType = PacketType::COSTUMEINF; 9 | mPacketSize = sizeof(CostumeInf) - sizeof(Packet); 10 | strcpy(bodyModel, body); 11 | strcpy(capModel, cap); 12 | } 13 | char bodyModel[COSTUMEBUFSIZE] = {}; 14 | char capModel[COSTUMEBUFSIZE] = {}; 15 | }; -------------------------------------------------------------------------------- /include/nn/err.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "result.h" 4 | #include "settings.h" 5 | 6 | namespace nn { namespace err { 7 | 8 | class ApplicationErrorArg 9 | { 10 | public: 11 | ApplicationErrorArg(); 12 | ApplicationErrorArg(u32 code, const char* str1, const char* str2, const nn::settings::LanguageCode& languageCode); 13 | 14 | u8 data[0x1014]; 15 | }; 16 | 17 | void ShowError(Result result); 18 | void ShowApplicationError(const ApplicationErrorArg& arg); 19 | void ShowUnacceptableApplicationVersionError(); 20 | void ShowUnacceptableAddOnContentVersionError(); 21 | 22 | } } 23 | -------------------------------------------------------------------------------- /include/game/Player/HackCap/HackCapJointControlKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | #include "sead/math/seadQuat.h" 5 | 6 | class HackCapJointControlKeeper { 7 | public: 8 | HackCapJointControlKeeper(void); 9 | void initCapJointControl(al::LiveActor *); 10 | void initDisplayCapJointControl(al::LiveActor *); 11 | void updateRotateThrowZ(float,float); 12 | void updateRotateStayZ(float); 13 | void updateRotateY(float); 14 | 15 | sead::Vector3f mJointRot = sead::Vector3f(); 16 | float mSkew = 0; 17 | }; 18 | -------------------------------------------------------------------------------- /include/sead/basis/seadTypes.h: -------------------------------------------------------------------------------- 1 | #ifndef SEAD_TYPES_H_ 2 | #define SEAD_TYPES_H_ 3 | 4 | #ifdef cafe 5 | #include 6 | #else 7 | #include 8 | #include 9 | 10 | using u8 = std::uint8_t; 11 | using u16 = std::uint16_t; 12 | using u32 = std::uint32_t; 13 | using u64 = std::uint64_t; 14 | 15 | using s8 = std::int8_t; 16 | using s16 = std::int16_t; 17 | using s32 = std::int32_t; 18 | using s64 = std::int64_t; 19 | 20 | using f32 = float; 21 | using f64 = double; 22 | 23 | using char16 = char16_t; 24 | using size_t = std::size_t; 25 | #endif 26 | 27 | #endif // SEAD_NEW_H_ 28 | -------------------------------------------------------------------------------- /include/al/debug/GpuPerf.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "agl/DrawContext.h" 4 | #include "sead/gfx/seadFrameBuffer.h" 5 | 6 | // seems to be a static class for managing agl::fctr::GPUStressChecker 7 | namespace al 8 | { 9 | class GpuPerf { 10 | public: 11 | GpuPerf(void); 12 | void beginPerf(agl::DrawContext *); 13 | void endPerf(agl::DrawContext *); 14 | void update(void); 15 | void drawResult(agl::DrawContext *,sead::FrameBuffer const*) const; 16 | 17 | // this class has no members 18 | }; 19 | } // namespace al 20 | -------------------------------------------------------------------------------- /include/debugMenu.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "sead/devenv/seadDebugFontMgrNvn.h" 4 | #include "sead/gfx/seadPrimitiveRenderer.h" 5 | #include "sead/gfx/seadTextWriter.h" 6 | #include "sead/basis/seadNew.h" 7 | #include "sead/gfx/seadViewport.h" 8 | 9 | #include "agl/DrawContext.h" 10 | #include "agl/utl.h" 11 | 12 | #include "game/System/GameSystem.h" 13 | 14 | #include "al/util.hpp" 15 | #include "logger.hpp" 16 | 17 | extern sead::TextWriter *gTextWriter; 18 | 19 | bool setupDebugMenu(agl::DrawContext* context, sead::Viewport* viewport); 20 | 21 | void drawBackground(agl::DrawContext *context); -------------------------------------------------------------------------------- /include/sead/thread/seadSpinLock.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "basis/seadTypes.h" 4 | #include "thread/seadAtomic.h" 5 | 6 | namespace sead 7 | { 8 | class Thread; 9 | 10 | class SpinLock 11 | { 12 | public: 13 | SpinLock(); 14 | ~SpinLock(); 15 | 16 | SpinLock(const SpinLock&) = delete; 17 | SpinLock& operator=(const SpinLock&) = delete; 18 | 19 | void lock(); 20 | bool tryLock(); 21 | void unlock(); 22 | 23 | bool try_lock() { return tryLock(); } 24 | 25 | private: 26 | Atomic mOwnerThread; 27 | u32 mCount = 0; 28 | }; 29 | } // namespace sead 30 | -------------------------------------------------------------------------------- /include/nn/nn.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file nn.h 3 | * @brief Barebones NN functions, such as init and nnMain. 4 | */ 5 | 6 | #pragma once 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | int main(int argc, char **argv); 13 | void nninitStartup(); 14 | 15 | void _init(); 16 | void _fini(); 17 | void __nnDetailNintendoSdkRuntimeObjectFileRefer(); 18 | void __nnDetailNintendoSdkRuntimeObjectFile(); 19 | void __nnDetailNintendoSdkNsoFileRefer(); 20 | 21 | void __nnmusl_init_dso_0(); 22 | void __nnmusl_fini_dso_0(); 23 | void __nnDetailNintendoSdkNsoFile_0(); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif -------------------------------------------------------------------------------- /include/al/resource/ActorResourceHolder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "types.h" 5 | 6 | namespace al { 7 | class ActorResourceHolder { 8 | 9 | ActorResourceHolder(int); 10 | ~ActorResourceHolder(); 11 | 12 | void tryFindActorResource(sead::SafeString const&); 13 | void findActorResourceImpl(sead::SafeString const&); 14 | void createActorResource(sead::SafeString const&, al::Resource*, al::Resource*); 15 | void removeAll(); 16 | void eraseResourceUser(al::Resource*); 17 | void freeErasedActorResource(); 18 | 19 | }; 20 | } -------------------------------------------------------------------------------- /include/game/Player/PlayerColliderHakoniwa.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | #include "PlayerCollider.h" 5 | #include "game/Interfaces/IUsePlayerCollision.h" 6 | 7 | class PlayerColliderHakoniwa : public IUsePlayerCollision { 8 | public: 9 | f32 getColliderRadius() const; 10 | f32 getColliderDiskHalfHeight() const; 11 | f32 getSafetyCeilSpace() const; 12 | f32 getCeilCheckHeight() const; 13 | f32 getGroundHeight() const; 14 | f32 getShadowDropHeight() const; 15 | f32 getFallDistance() const; 16 | 17 | PlayerCollider *getPlayerCollider() const; 18 | }; -------------------------------------------------------------------------------- /include/al/layout/LayoutSceneInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/camera/CameraDirector.h" 4 | #include "al/message/IUseMessageSystem.h" 5 | #include "al/rumble/PadRumbleDirector.h" 6 | #include "al/scene/SceneObjHolder.h" 7 | #include "game/System/GameSystemInfo.h" 8 | 9 | namespace al { 10 | class LayoutSceneInfo { 11 | public: 12 | void* gap; 13 | al::CameraDirector *mCameraDirector; 14 | al::PadRumbleDirector *mPadRumbleDirector; 15 | al::SceneObjHolder *mSceneObjHolder; 16 | al::MessageSystem* mMessageSystem; 17 | al::GamePadSystem *mGamepadSystem; 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /include/nn/g3d/ResFogAnim.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "types.h" 4 | 5 | namespace nn 6 | { 7 | namespace g3d 8 | { 9 | class ResFogAnim 10 | { 11 | public: 12 | char mMagic[4]; // _0 13 | u16 mFlags; // _4 14 | u16 mPad; // _6 15 | s32 mNumFrames; // _8 16 | u8 mNumCurves; // _C 17 | u8 mIdxDistanceAttnFunc; // _D 18 | u16 mNumUserData; // _E 19 | u32 mSizeBaked; // _10 20 | u64 mNameOffset; // _14 21 | u64 mFuncNameOffset; // _1C 22 | 23 | }; 24 | }; 25 | }; -------------------------------------------------------------------------------- /include/nn/gfx/detail/deviceimpl.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file deviceimpl.h 3 | * @brief Device implementation for GFX. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "nn/gfx/device.h" 9 | 10 | namespace nn 11 | { 12 | namespace gfx 13 | { 14 | namespace detail 15 | { 16 | template 17 | class DeviceImpl 18 | { 19 | public: 20 | DeviceImpl(); 21 | ~DeviceImpl(); 22 | 23 | void Initialize(nn::gfx::DeviceInfo const &deviceInfo); 24 | void Finalize(); 25 | }; 26 | }; 27 | }; 28 | }; -------------------------------------------------------------------------------- /include/al/byaml/writer/ByamlWriterBigDataList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sead { 7 | class WriteStream; 8 | } 9 | 10 | namespace al { 11 | 12 | class ByamlWriterBigData; 13 | 14 | class ByamlWriterBigDataList { 15 | public: 16 | ByamlWriterBigDataList(); 17 | virtual ~ByamlWriterBigDataList(); 18 | u32 calcPackSize() const; 19 | void addData(al::ByamlWriterBigData*); 20 | int setOffset(int); 21 | void write(sead::WriteStream*); 22 | 23 | private: 24 | sead::TList mList; 25 | }; 26 | 27 | } // namespace al 28 | -------------------------------------------------------------------------------- /include/sead/devenv/seadEnvUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "prim/seadEnum.h" 4 | #include "prim/seadSafeString.h" 5 | 6 | namespace sead 7 | { 8 | SEAD_ENUM(RegionLanguageID, JPja, USen, USes, USfr, USpt, EUen, EUes, EUfr, EUde, EUit, EUpt, EUnl, EUru, KRko, CNzh, TWzh) 9 | 10 | class EnvUtil 11 | { 12 | public: 13 | static const SafeString& getRomType(); 14 | static RegionLanguageID getRegionLanguage(); 15 | static s32 getEnvironmentVariable(BufferedSafeString* out, const SafeString& variable); 16 | static s32 resolveEnvronmentVariable(BufferedSafeString* out, const SafeString& str); 17 | }; 18 | } // namespace sead 19 | -------------------------------------------------------------------------------- /source/server/gamemode/modifiers/NoCapModifier.cpp: -------------------------------------------------------------------------------- 1 | #include "server/gamemode/modifiers/NoCapModifier.hpp" 2 | #include "game/GameData/GameDataFunction.h" 3 | #include "server/gamemode/GameModeBase.hpp" 4 | #include "game/GameData/GameDataHolderAccessor.h" 5 | #include "helpers.hpp" 6 | #include "math/seadVector.h" 7 | #include "rs/util.hpp" 8 | #include "server/gamemode/GameModeManager.hpp" 9 | 10 | NoCapModifier::NoCapModifier(GameModeBase* mode) : ModeModifierBase(mode) {} 11 | 12 | void NoCapModifier::enable() { 13 | ModeModifierBase::enable(); 14 | } 15 | 16 | void NoCapModifier::disable() { 17 | ModeModifierBase::disable(); 18 | } -------------------------------------------------------------------------------- /include/nn/gfx/api.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file api.h 3 | * @brief GFX API version and typing. 4 | */ 5 | 6 | #pragma once 7 | 8 | namespace nn 9 | { 10 | namespace gfx 11 | { 12 | // passes both ApiType<4> and ApiVersion<8> 13 | template 14 | class ApiVariation 15 | { 16 | 17 | }; 18 | 19 | // usually passed as just a 4 20 | template 21 | class ApiType 22 | { 23 | 24 | }; 25 | 26 | // usually passed as just a 8 27 | template 28 | class ApiVersion 29 | { 30 | 31 | }; 32 | }; 33 | }; -------------------------------------------------------------------------------- /include/nn/hid.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file hid.h 3 | * @brief Functions that help process gamepad inputs. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "types.h" 9 | #include "util.h" 10 | 11 | namespace nn 12 | { 13 | namespace hid 14 | { 15 | struct NpadHandheldState; 16 | struct NpadStyleTag; 17 | 18 | void InitializeNpad(); 19 | void SetSupportedNpadIdType(u32 const* , u64); 20 | void SetSupportedNpadStyleSet(nn::util::BitFlagSet<32, nn::hid::NpadStyleTag>); 21 | void GetNpadStyleSet(u32 const &); 22 | void GetNpadStates(nn::hid::NpadHandheldState *, s32, u32 const &); 23 | }; 24 | }; -------------------------------------------------------------------------------- /include/al/byaml/ByamlStringTableIter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace al { 6 | class ByamlStringTableIter { 7 | public: 8 | ByamlStringTableIter(); 9 | ByamlStringTableIter(const unsigned char*, bool); 10 | 11 | int getSize() const; 12 | const u32* getAddressTable() const; 13 | int getStringAddress(int) const; 14 | int getEndAddress() const; 15 | const char* getString(int) const; 16 | int getStringSize(int) const; 17 | int findStringIndex(const char*) const; 18 | bool isValidate() const; 19 | 20 | const u8* mData; // _0 21 | bool mReversed; 22 | }; 23 | }; // namespace al -------------------------------------------------------------------------------- /include/game/Player/YukimaruRacePlayer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "game/Interfaces/IUseDimension.h" 4 | #include "PlayerActorBase.h" 5 | #include "PlayerPuppet.h" 6 | #include "PlayerInput.h" 7 | #include "PlayerAnimator.h" 8 | #include "HackCap.h" 9 | #include "PlayerModelKeeper.h" 10 | #include "PlayerColliderHakoniwa.h" 11 | #include "PlayerConst.h" 12 | #include "PlayerHackKeeper.h" 13 | #include "PlayerInfo.h" 14 | #include "PlayerInitInfo.h" 15 | 16 | class YukimaruRacePlayer : public PlayerActorBase , public IUseDimension { 17 | public: 18 | void initPlayer(al::ActorInitInfo const &, PlayerInitInfo const &); 19 | undefined size[0x1A8]; 20 | }; -------------------------------------------------------------------------------- /include/al/actor/ActorDimensionKeeper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/LiveActor/LiveActor.h" 4 | 5 | class ActorDimensionKeeper { 6 | public: 7 | ActorDimensionKeeper(al::LiveActor const *); 8 | void validate(void); 9 | void invalidate(void); 10 | void forceChange2DKeep(void); 11 | void forceEndChange2DKeep(void); 12 | void update(void); 13 | 14 | al::LiveActor *curActor; // 0x0 15 | bool is2D; // 0x8 16 | bool is2DModel; // 0x9 17 | bool unk2; // 0x10 18 | bool unk3; // 0xA 19 | bool unk4; // 0xB 20 | struct In2DAreaMoveControl *mMoveControl; // 0x10 21 | }; -------------------------------------------------------------------------------- /include/game/Layouts/SimpleLayoutMenu.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "al/layout/LayoutActor.h" 4 | 5 | class SimpleLayoutMenu : public al::LayoutActor { 6 | public: 7 | SimpleLayoutMenu(al::LayoutActor *,char const*,char const*,al::LayoutInitInfo const&,char const*); 8 | SimpleLayoutMenu(char const*,char const*,al::LayoutInitInfo const&,char const*,bool); 9 | 10 | void exeAppear(void); 11 | void exeEnd(void); 12 | void exeEndWait(void); 13 | void exeWait(void); 14 | void isAppearOrWait(void); 15 | void isEndWait(void); 16 | void isWait(void); 17 | void startAppear(char const*); 18 | void startEnd(char const*); 19 | 20 | }; 21 | -------------------------------------------------------------------------------- /include/sead/devenv/seadAssertConfig.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "prim/seadDelegate.h" 4 | #include "prim/seadDelegateEventSlot.h" 5 | 6 | namespace sead 7 | { 8 | class AssertConfig 9 | { 10 | public: 11 | using AssertEvent = DelegateEvent; 12 | 13 | static void registerCallback(AssertEvent::Slot& slot); 14 | static void unregisterCallback(AssertEvent::Slot& slot); 15 | static void registerFinalCallback(IDelegate1* cb); 16 | static void execCallbacks(const char* assertMessage); 17 | 18 | private: 19 | static AssertEvent sAssertEvent; 20 | static IDelegate1* sFinalCallback; 21 | }; 22 | } // namespace sead 23 | -------------------------------------------------------------------------------- /include/sead/gfx/cafe/seadTextureCafeGX2.h: -------------------------------------------------------------------------------- 1 | #ifndef SEAD_TEXTURE_CAFE_GX2_H_ 2 | #define SEAD_TEXTURE_CAFE_GX2_H_ 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | namespace sead 11 | { 12 | class TextureCafeGX2 : public Texture 13 | { 14 | SEAD_RTTI_OVERRIDE(TextureCafeGX2, Texture) 15 | 16 | public: 17 | TextureCafeGX2() {} 18 | virtual ~TextureCafeGX2() {} 19 | 20 | virtual u32 getWidth() const; 21 | virtual u32 getHeight() const; 22 | 23 | GX2Texture* mGX2Texture; 24 | }; 25 | 26 | } // namespace sead 27 | 28 | #endif // SEAD_TEXTURE_CAFE_GX2_H_ 29 | -------------------------------------------------------------------------------- /include/al/util/GraphicsUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace sead { 4 | class LookAtCamera; 5 | class Projection; 6 | } 7 | 8 | namespace al { 9 | class IUseCamera; 10 | class Scene; 11 | 12 | void updateKitListPrev(Scene *); 13 | void updateKitList(Scene *, const char *); 14 | void updateKitListPost(Scene *); 15 | 16 | sead::LookAtCamera *getLookAtCamera(al::IUseCamera const*,int); 17 | sead::Projection *getProjectionSead(al::IUseCamera const*,int); 18 | } // namespace al 19 | 20 | 21 | 22 | // TODO: get this out of here 23 | namespace rs 24 | { 25 | void requestGraphicsPresetAndCubeMapPause(const al::Scene *); 26 | } // namespace rs 27 | -------------------------------------------------------------------------------- /include/agl/RenderTargetDepth.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file RenderTargetDepth.h 3 | * @brief Defines a class to represent a render target depth. 4 | */ 5 | 6 | #pragma once 7 | 8 | #include "TextureData.h" 9 | 10 | namespace agl 11 | { 12 | class RenderTargetDepth : public agl::TextureData 13 | { 14 | public: 15 | RenderTargetDepth(); 16 | RenderTargetDepth(agl::TextureData const &, u32, u32); 17 | 18 | void onApplyTextureData_(); 19 | void initRegs_(u32) const; 20 | 21 | s32 _128; 22 | u32 _12C; 23 | u64 _130; 24 | u64 _138; 25 | u64 _140; 26 | u64 _148; 27 | u8 _150[0x178-0x150]; 28 | }; 29 | }; -------------------------------------------------------------------------------- /include/packets/GameInf.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Packet.h" 4 | #include "al/util.hpp" 5 | 6 | struct PACKED GameInf : Packet { 7 | GameInf() : Packet() {this->mType = PacketType::GAMEINF; mPacketSize = sizeof(GameInf) - sizeof(Packet);}; 8 | bool1 is2D = false; 9 | u8 scenarioNo = 255; 10 | char stageName[0x40] = {}; 11 | 12 | bool operator==(const GameInf &rhs) const { 13 | return ( 14 | is2D == rhs.is2D && 15 | scenarioNo == rhs.scenarioNo && 16 | al::isEqualString(stageName, rhs.stageName) 17 | ); 18 | } 19 | 20 | bool operator!=(const GameInf& rhs) const { return !operator==(rhs); } 21 | 22 | }; 23 | -------------------------------------------------------------------------------- /include/server/gamemode/modifiers/ModeModifierBase.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "game/StageScene/StageScene.h" 5 | 6 | class GameModeBase; 7 | 8 | class ModeModifierBase { 9 | public: 10 | ModeModifierBase(GameModeBase* mode) : mMode(mode) {} 11 | 12 | bool isActive() const { return mIsEnabled; } 13 | 14 | virtual void init(StageScene *scene) { mScene = scene; } 15 | 16 | virtual void enable() { mIsEnabled = true; } 17 | virtual void disable() { mIsEnabled = false; } 18 | virtual void update() {} 19 | 20 | protected: 21 | GameModeBase* mMode = nullptr; 22 | StageScene *mScene = nullptr; 23 | bool mIsEnabled = false; 24 | }; -------------------------------------------------------------------------------- /include/sead/time/seadDateUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include