mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
set up fake iso system class
This commit is contained in:
parent
7661301b5f
commit
379622b70b
|
@ -252,8 +252,13 @@ set(RUNTIME_SOURCE
|
||||||
overlord/jak2/streamlist.cpp
|
overlord/jak2/streamlist.cpp
|
||||||
overlord/jak2/vag.cpp
|
overlord/jak2/vag.cpp
|
||||||
overlord/jak3/start.cpp
|
overlord/jak3/start.cpp
|
||||||
|
overlord/jak3/iso_fake.cpp
|
||||||
|
overlord/jak3/iso.cpp
|
||||||
overlord/jak3/overlord.cpp
|
overlord/jak3/overlord.cpp
|
||||||
|
overlord/jak3/pagemanager.cpp
|
||||||
|
overlord/jak3/ramdisk.cpp
|
||||||
overlord/jak3/sbank.cpp
|
overlord/jak3/sbank.cpp
|
||||||
|
overlord/jak3/srpc.cpp
|
||||||
overlord/jak3/ssound.cpp
|
overlord/jak3/ssound.cpp
|
||||||
overlord/jak3/vblank_handler.cpp
|
overlord/jak3/vblank_handler.cpp
|
||||||
runtime.cpp
|
runtime.cpp
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "game/overlord/jak3/iso.h"
|
||||||
#include "game/overlord/jak3/iso_structs.h"
|
#include "game/overlord/jak3/iso_structs.h"
|
||||||
#include "game/overlord/jak3/overlord.h"
|
#include "game/overlord/jak3/overlord.h"
|
||||||
|
|
||||||
|
@ -11,9 +12,8 @@ class CBaseFile {
|
||||||
virtual EIsoStatus SyncRead() = 0;
|
virtual EIsoStatus SyncRead() = 0;
|
||||||
virtual void Close() = 0;
|
virtual void Close() = 0;
|
||||||
|
|
||||||
/* unk return values */
|
/* unk return values */
|
||||||
virtual void Unk1() = 0;
|
virtual void Unk1() = 0;
|
||||||
virtual void Unk2() = 0;
|
virtual void Unk2() = 0;
|
||||||
};
|
};
|
||||||
} // namespace jak3
|
} // namespace jak3
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
#include "common/log/log.h"
|
||||||
|
|
||||||
|
#include "game/common/dgo_rpc_types.h"
|
||||||
#include "game/overlord/jak3/basefilesystem.h"
|
#include "game/overlord/jak3/basefilesystem.h"
|
||||||
|
#include "game/overlord/jak3/iso_fake.h"
|
||||||
|
|
||||||
namespace jak3 {
|
namespace jak3 {
|
||||||
using namespace iop;
|
using namespace iop;
|
||||||
|
@ -12,6 +16,27 @@ static ISO_LoadDGO s_LoadDGO;
|
||||||
int s_nSyncMbx;
|
int s_nSyncMbx;
|
||||||
CBaseFileSystem* g_pFileSystem;
|
CBaseFileSystem* g_pFileSystem;
|
||||||
MsgPacket s_MsgPacket_NotOnStackSync[2];
|
MsgPacket s_MsgPacket_NotOnStackSync[2];
|
||||||
|
RPC_Dgo_Cmd s_aISO_RPCBuf[1];
|
||||||
|
|
||||||
|
static void* RPC_DGO(u32 fno, void* data, int size) {
|
||||||
|
lg::error("RPC_DGO UNIMPLEMENTED");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static u32 DGOThread() {
|
||||||
|
sceSifQueueData dq;
|
||||||
|
sceSifServeData serve;
|
||||||
|
|
||||||
|
CpuDisableIntr();
|
||||||
|
sceSifInitRpc(0);
|
||||||
|
sceSifSetRpcQueue(&dq, GetThreadId());
|
||||||
|
sceSifRegisterRpc(&serve, 0xfab3, RPC_DGO, s_aISO_RPCBuf, sizeof(s_aISO_RPCBuf), nullptr, nullptr,
|
||||||
|
&dq);
|
||||||
|
CpuEnableIntr();
|
||||||
|
sceSifRpcLoop(&dq);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* COMPLETE */
|
/* COMPLETE */
|
||||||
void InitDriver() {
|
void InitDriver() {
|
||||||
|
@ -47,6 +72,7 @@ int InitISOFS(const char* fs_mode, const char* loading_sceeen) {
|
||||||
|
|
||||||
memset(&s_LoadDGO, 0, sizeof(s_LoadDGO));
|
memset(&s_LoadDGO, 0, sizeof(s_LoadDGO));
|
||||||
s_nISOInitFlag = 1;
|
s_nISOInitFlag = 1;
|
||||||
|
g_pFileSystem = &g_FakeISOCDFileSystem;
|
||||||
|
|
||||||
return s_nISOInitFlag;
|
return s_nISOInitFlag;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,4 +21,5 @@ struct ISO_Msg : ISO_Hdr {};
|
||||||
|
|
||||||
struct ISO_LoadDGO : ISO_Msg {};
|
struct ISO_LoadDGO : ISO_Msg {};
|
||||||
|
|
||||||
|
int InitISOFS(const char* fs_mode, const char* loading_sceeen);
|
||||||
} // namespace jak3
|
} // namespace jak3
|
||||||
|
|
36
game/overlord/jak3/iso_fake.cpp
Normal file
36
game/overlord/jak3/iso_fake.cpp
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include "iso_fake.h"
|
||||||
|
|
||||||
|
namespace jak3 {
|
||||||
|
CFakeISOCDFileSystem g_FakeISOCDFileSystem;
|
||||||
|
|
||||||
|
int CFakeISOCDFileSystem::Init() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFakeISOCDFileSystem::PollDrive() {}
|
||||||
|
|
||||||
|
const ISOFileDef* CFakeISOCDFileSystem::Find(const char* name) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ISOFileDef* CFakeISOCDFileSystem::FindIN(const char* name) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CFakeISOCDFileSystem::GetLength(const ISOFileDef* def) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CFakeISOCDFileSystem::Open(const ISOFileDef* def, int offset, EFileComp mode) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CFakeISOCDFileSystem::OpenWad(const ISOFileDef* def, int offset) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
VagDirEntryJak3* CFakeISOCDFileSystem::FindVagFile(const char* name) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace jak3
|
35
game/overlord/jak3/iso_fake.h
Normal file
35
game/overlord/jak3/iso_fake.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#ifndef ISO_FAKE_H_
|
||||||
|
#define ISO_FAKE_H_
|
||||||
|
|
||||||
|
#include "basefile.h"
|
||||||
|
#include "basefilesystem.h"
|
||||||
|
|
||||||
|
#include "game/overlord/jak3/iso.h"
|
||||||
|
|
||||||
|
namespace jak3 {
|
||||||
|
class CFakeISOCDFileSystem : public CBaseFileSystem {
|
||||||
|
int Init() override;
|
||||||
|
void PollDrive() override;
|
||||||
|
const ISOFileDef* Find(const char* name) override;
|
||||||
|
const ISOFileDef* FindIN(const char* name) override;
|
||||||
|
int GetLength(const ISOFileDef* def) override;
|
||||||
|
int Open(const ISOFileDef* def, int offset, EFileComp mode) override;
|
||||||
|
int OpenWad(const ISOFileDef* def, int offset) override;
|
||||||
|
VagDirEntryJak3* FindVagFile(const char* name) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class CFakeISOCDFile : public CBaseFile {
|
||||||
|
EIsoStatus BeginRead(ISOBuffer*) override;
|
||||||
|
EIsoStatus SyncRead() override;
|
||||||
|
void Close() override;
|
||||||
|
|
||||||
|
/* unk return values */
|
||||||
|
void Unk1() override;
|
||||||
|
void Unk2() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern CFakeISOCDFileSystem g_FakeISOCDFileSystem;
|
||||||
|
|
||||||
|
} // namespace jak3
|
||||||
|
|
||||||
|
#endif // ISO_FAKE_H_
|
|
@ -24,7 +24,7 @@ struct VagDirJak3 {
|
||||||
u32 version;
|
u32 version;
|
||||||
u32 count;
|
u32 count;
|
||||||
VagDirEntryJak3 entries[0];
|
VagDirEntryJak3 entries[0];
|
||||||
} dir;
|
};
|
||||||
|
|
||||||
struct VagDirEntry {};
|
struct VagDirEntry {};
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,8 @@ u32 Thread_Server() {
|
||||||
CpuDisableIntr();
|
CpuDisableIntr();
|
||||||
sceSifInitRpc(0);
|
sceSifInitRpc(0);
|
||||||
sceSifSetRpcQueue(&dq, GetThreadId());
|
sceSifSetRpcQueue(&dq, GetThreadId());
|
||||||
sceSifRegisterRpc(&serve, 0xfab2, RPC_Ramdisk, gRamDisk_RPCBUF, nullptr, nullptr, &dq);
|
sceSifRegisterRpc(&serve, 0xfab2, RPC_Ramdisk, gRamDisk_RPCBUF, sizeof(gRamDisk_RPCBUF), nullptr,
|
||||||
|
nullptr, &dq);
|
||||||
CpuEnableIntr();
|
CpuEnableIntr();
|
||||||
sceSifRpcLoop(&dq);
|
sceSifRpcLoop(&dq);
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,8 @@ u32 Thread_Player() {
|
||||||
CpuDisableIntr();
|
CpuDisableIntr();
|
||||||
sceSifInitRpc(0);
|
sceSifInitRpc(0);
|
||||||
sceSifSetRpcQueue(&dq, GetThreadId());
|
sceSifSetRpcQueue(&dq, GetThreadId());
|
||||||
sceSifRegisterRpc(&serve, 0xfab0, RPC_Player, s_anSRPC_PlayerBuf, nullptr, nullptr, &dq);
|
sceSifRegisterRpc(&serve, 0xfab0, RPC_Player, s_anSRPC_PlayerBuf, sizeof(s_anSRPC_PlayerBuf),
|
||||||
|
nullptr, nullptr, &dq);
|
||||||
CpuEnableIntr();
|
CpuEnableIntr();
|
||||||
sceSifRpcLoop(&dq);
|
sceSifRpcLoop(&dq);
|
||||||
|
|
||||||
|
@ -44,7 +45,8 @@ u32 Thread_Loader() {
|
||||||
CpuDisableIntr();
|
CpuDisableIntr();
|
||||||
sceSifInitRpc(0);
|
sceSifInitRpc(0);
|
||||||
sceSifSetRpcQueue(&dq, GetThreadId());
|
sceSifSetRpcQueue(&dq, GetThreadId());
|
||||||
sceSifRegisterRpc(&serve, 0xfab1, RPC_Loader, s_anSRPC_LoaderBuf, nullptr, nullptr, &dq);
|
sceSifRegisterRpc(&serve, 0xfab1, RPC_Loader, s_anSRPC_LoaderBuf, sizeof(s_anSRPC_LoaderBuf),
|
||||||
|
nullptr, nullptr, &dq);
|
||||||
CpuEnableIntr();
|
CpuEnableIntr();
|
||||||
sceSifRpcLoop(&dq);
|
sceSifRpcLoop(&dq);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
#include "iso.h"
|
||||||
#include "overlord.h"
|
#include "overlord.h"
|
||||||
#include "ramdisk.h"
|
#include "ramdisk.h"
|
||||||
#include "sbank.h"
|
#include "sbank.h"
|
||||||
|
@ -70,7 +71,7 @@ int start_overlord(int argc, const char* const* argp) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//CDvdDriver::Initialize(&g_DvdDriver);
|
// CDvdDriver::Initialize(&g_DvdDriver);
|
||||||
InitISOFS(argp[1], argp[2]);
|
InitISOFS(argp[1], argp[2]);
|
||||||
|
|
||||||
StartThread(g_nServerThreadID, 0);
|
StartThread(g_nServerThreadID, 0);
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
|
|
||||||
#ifdef OS_POSIX
|
#ifdef OS_POSIX
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
@ -78,6 +79,7 @@
|
||||||
#include "game/overlord/jak2/stream.h"
|
#include "game/overlord/jak2/stream.h"
|
||||||
#include "game/overlord/jak2/streamlist.h"
|
#include "game/overlord/jak2/streamlist.h"
|
||||||
#include "game/overlord/jak2/vag.h"
|
#include "game/overlord/jak2/vag.h"
|
||||||
|
#include "game/overlord/jak3/overlord.h"
|
||||||
#include "game/system/Deci2Server.h"
|
#include "game/system/Deci2Server.h"
|
||||||
#include "game/system/iop_thread.h"
|
#include "game/system/iop_thread.h"
|
||||||
#include "sce/deci2.h"
|
#include "sce/deci2.h"
|
||||||
|
@ -323,9 +325,11 @@ void iop_runner(SystemThreadInterface& iface, GameVersion version) {
|
||||||
jak1::start_overlord_wrapper(iop.overlord_argc, iop.overlord_argv, &complete);
|
jak1::start_overlord_wrapper(iop.overlord_argc, iop.overlord_argv, &complete);
|
||||||
break;
|
break;
|
||||||
case GameVersion::Jak2:
|
case GameVersion::Jak2:
|
||||||
case GameVersion::Jak3: // TODO: jak3 using jak2's overlord.
|
|
||||||
jak2::start_overlord_wrapper(iop.overlord_argc, iop.overlord_argv, &complete);
|
jak2::start_overlord_wrapper(iop.overlord_argc, iop.overlord_argv, &complete);
|
||||||
break;
|
break;
|
||||||
|
case GameVersion::Jak3:
|
||||||
|
jak3::start_overlord_wrapper(iop.overlord_argc, iop.overlord_argv, &complete);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT_NOT_REACHED();
|
ASSERT_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue