Files
bigmak94andClaude Opus 5.5 bd9bded792 GalaxyQuest: Super Mario Galaxy in VR on Meta Quest 3
A native port built on the Petari decompilation (previous commit): an
HLE platform layer (OS, DVD, GX, audio, input, NAND) under the game's
own code, an OpenXR presentation (a diorama around the player, a giant
screen, the HUD and settings as compositor layers, SpaceWarp, dynamic
resolution), Touch Plus controls, the tools that convert your own game
files (tools/cook, which also takes the few pieces of data the game's
executable holds from your sys/main.dol), and the port's changes to the
decompilation (`git diff petari-base -- decomp`).  README.md explains
installing and building, docs/TECHNICAL.md how it works.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 01:59:38 +02:00

48 lines
1.4 KiB
C++

#pragma once
#include "Game/Camera/Camera.hpp"
#include <JSystem/JGeometry/TMatrix.hpp>
class CameraDPD : public Camera {
public:
enum CameraType {
CameraType_FixedPos = 0,
CameraType_UpdateWithTarget = 1,
CameraType_FollowWorldPos = 2,
};
CameraDPD(const char* pName = "DPD\x91\x80\x8d\xec\x83\x4a\x83\x81\x83\x89");
virtual void reset();
virtual CameraTargetObj* calc();
virtual CamTranslatorBase* createTranslator();
void setParam(s32 cameraType, f32 dist, f32 angleXRange, f32 angleYRange, f32 angleX, f32 speedBlendRate, f32 blendFriction, bool isVertical,
f32 angleYMin) {
mCameraType = cameraType;
mDist = dist;
mAngleXRange = angleXRange;
mAngleYRange = angleYRange;
mAngleX = angleX;
mSpeedBlendRate = speedBlendRate;
mBlendFriction = blendFriction;
mIsVertical = isVertical;
mAngleYMin = angleYMin;
}
/* 0x4C */ f32 mCorePadDistToDisplay;
/* 0x50 */ TVec2f mRealPointPos;
/* 0x58 */ TVec2f mBlendPointPos;
/* 0x60 */ TPos3f mMtx;
/* 0x90 */ bool mResetPointingPos;
/* 0x94 */ s32 mCameraType;
/* 0x98 */ f32 mDist;
/* 0x9C */ f32 mFovy;
/* 0xA0 */ f32 mAngleXRange;
/* 0xA4 */ f32 mAngleYRange;
/* 0xA8 */ f32 mAngleX;
/* 0xAC */ f32 mSpeedBlendRate;
/* 0xB0 */ f32 mBlendFriction;
/* 0xB4 */ bool mIsVertical;
/* 0xB8 */ f32 mAngleYMin;
};