Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion MarathonRecomp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@ set(MARATHON_RECOMP_HID_CXX_SOURCES

set(MARATHON_RECOMP_PATCHES_CXX_SOURCES
"patches/aspect_ratio_patches.cpp"
"patches/audio_patches.cpp"
"patches/audio_patches.cpp"
"patches/camera_patches.cpp"
"patches/frontend_listener.cpp"
"patches/misc_patches.cpp"
"patches/TitleTask_patches.cpp"
Expand Down
2 changes: 1 addition & 1 deletion MarathonRecomp/api/CSD/Manager/csdmResourceBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace Chao::CSD
};

xpointer<Vftable> m_pVftable;
RCPtr<uint8_t> m_rcResourceHolder;
MARATHON_INSERT_PADDING(4);
xpointer<T> m_pResource;

~CResourceBase();
Expand Down
4 changes: 4 additions & 0 deletions MarathonRecomp/api/Marathon.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@
#include "CSD/Manager/csdmSceneObserver.h"
#include "CSD/Manager/csdmSubjectBase.h"
#include "CSD/Platform/csdTexList.h"
#include "Sonicteam/Actor.h"
#include "Sonicteam/AppMarathon.h"
#include "Sonicteam/Camera/CameraMode.h"
#include "Sonicteam/Camera/Cameraman.h"
#include "Sonicteam/Camera/SonicCamera.h"
#include "Sonicteam/DocMarathonImp.h"
#include "Sonicteam/DocMarathonState.h"
#include "Sonicteam/SoX/Component.h"
Expand Down
9 changes: 9 additions & 0 deletions MarathonRecomp/api/Sonicteam/Actor.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

#include <Marathon.inl>
#include <Sonicteam/SoX/Engine/Task.h>

namespace Sonicteam
{
class Actor : public SoX::Engine::Task {};
}
13 changes: 13 additions & 0 deletions MarathonRecomp/api/Sonicteam/Camera/CameraMode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#pragma once

#include <Marathon.inl>
#include <Sonicteam/SoX/MessageReceiver.h>

namespace Sonicteam::Camera
{
class CameraMode : public SoX::MessageReceiver
{
public:
MARATHON_INSERT_PADDING(0x24);
};
}
18 changes: 18 additions & 0 deletions MarathonRecomp/api/Sonicteam/Camera/Cameraman.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include <Marathon.inl>
#include <boost/smart_ptr/shared_ptr.h>

namespace Sonicteam::Camera
{
class Cameraman : Actor
{
public:
MARATHON_INSERT_PADDING(0x28);
boost::anonymous_shared_ptr m_spMyInputObj;
MARATHON_INSERT_PADDING(0x34);
be<float> m_FOV;
MARATHON_INSERT_PADDING(0x04);
boost::anonymous_shared_ptr m_spKynapseControl;
};
}
19 changes: 19 additions & 0 deletions MarathonRecomp/api/Sonicteam/Camera/SonicCamera.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once

namespace Sonicteam::Camera
{
class SonicCamera : public CameraMode
{
public:
MARATHON_INSERT_PADDING(0x1C);
be<float> m_SpringK;
be<float> m_DampingK;
MARATHON_INSERT_PADDING(0x08);
be<float> m_AzDriveK;
be<float> m_AzDampingK;
be<float> m_AltDriveK;
be<float> m_AltDampingK;
MARATHON_INSERT_PADDING(0x3C);
be<float> m_FovY;
};
}
2 changes: 1 addition & 1 deletion MarathonRecomp/api/Sonicteam/SoX/Component.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ namespace Sonicteam::SoX
class Component : public Object
{
public:
MARATHON_INSERT_PADDING(0x20);
MARATHON_INSERT_PADDING(0x1C);
};
}
3 changes: 2 additions & 1 deletion MarathonRecomp/api/Sonicteam/SoX/Engine/Doc.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ namespace Sonicteam::SoX::Engine
class Doc
{
public:
MARATHON_INSERT_PADDING(0x5C);
xpointer<void> m_pVftable;
MARATHON_INSERT_PADDING(0x58);
};
}
2 changes: 1 addition & 1 deletion MarathonRecomp/api/Sonicteam/SoX/Engine/Task.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ namespace Sonicteam::SoX::Engine
class Task : public Component, public MessageReceiver
{
public:
MARATHON_INSERT_PADDING(0x4C);
MARATHON_INSERT_PADDING(0x28);
};
}
6 changes: 5 additions & 1 deletion MarathonRecomp/api/Sonicteam/SoX/MessageReceiver.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,9 @@

namespace Sonicteam::SoX
{
class MessageReceiver {};
class MessageReceiver
{
public:
xpointer<void> m_pVftable;
};
}
6 changes: 5 additions & 1 deletion MarathonRecomp/api/Sonicteam/SoX/Object.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,9 @@

namespace Sonicteam::SoX
{
class Object {};
class Object
{
public:
xpointer<void> m_pVftable;
};
}
4 changes: 2 additions & 2 deletions MarathonRecomp/api/Sonicteam/TitleTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@

namespace Sonicteam
{
class TitleTask : public Sonicteam::SoX::Engine::Task
class TitleTask : public SoX::Engine::Task
{
public:
MARATHON_INSERT_PADDING(0x10);
MARATHON_INSERT_PADDING(0x30);
be<uint32_t> m_SelectedIndex;
};
}
1 change: 1 addition & 0 deletions MarathonRecomp/api/boost/smart_ptr/shared_ptr.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <cstddef>
#include <utility>
#include <Marathon.inl>

namespace boost
{
Expand Down
2 changes: 1 addition & 1 deletion MarathonRecomp/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ PPC_FUNC(sub_82582648)
}

#if _DEBUG
// Sonicteam::SoX::Thread
// Sonicteam::SoX::Thread::Thread
PPC_FUNC_IMPL(__imp__sub_825867A8);
PPC_FUNC(sub_825867A8)
{
Expand Down
18 changes: 18 additions & 0 deletions MarathonRecomp/patches/camera_patches.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include <api/Marathon.h>
#include <user/config.h>

// Load Sonicteam::Camera::SonicCamera parameters
PPC_FUNC_IMPL(__imp__sub_82192218);
PPC_FUNC(sub_82192218)
{
auto pSonicCamera = (Sonicteam::Camera::SonicCamera*)g_memory.Translate(ctx.r3.u32);

__imp__sub_82192218(ctx, base);

// X axis is inverted by default.
if (Config::HorizontalCamera == ECameraRotationMode::Normal)
pSonicCamera->m_AzDriveK = -pSonicCamera->m_AzDriveK;

if (Config::VerticalCamera == ECameraRotationMode::Reverse)
pSonicCamera->m_AltDriveK = -pSonicCamera->m_AltDriveK;
}
2 changes: 1 addition & 1 deletion MarathonRecomp/user/config_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ CONFIG_DEFINE_LOCALISED("System", bool, AchievementNotifications, true);
CONFIG_DEFINE_ENUM_LOCALISED("System", ETimeOfDayTransition, TimeOfDayTransition, ETimeOfDayTransition::Xbox);
CONFIG_DEFINE("System", bool, ShowConsole, false);

CONFIG_DEFINE_ENUM_LOCALISED("Input", ECameraRotationMode, HorizontalCamera, ECameraRotationMode::Normal);
CONFIG_DEFINE_ENUM_LOCALISED("Input", ECameraRotationMode, HorizontalCamera, ECameraRotationMode::Reverse);
CONFIG_DEFINE_ENUM_LOCALISED("Input", ECameraRotationMode, VerticalCamera, ECameraRotationMode::Normal);
CONFIG_DEFINE_LOCALISED("Input", bool, Vibration, true);
CONFIG_DEFINE_LOCALISED("Input", bool, AllowBackgroundInput, false);
Expand Down
Loading