Skip to content

Commit b8b5f9f

Browse files
committed
set up fake iso system class
1 parent a642e31 commit b8b5f9f

File tree

11 files changed

+119
-8
lines changed

11 files changed

+119
-8
lines changed

game/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,13 @@ set(RUNTIME_SOURCE
252252
overlord/jak2/streamlist.cpp
253253
overlord/jak2/vag.cpp
254254
overlord/jak3/start.cpp
255+
overlord/jak3/iso_fake.cpp
256+
overlord/jak3/iso.cpp
255257
overlord/jak3/overlord.cpp
258+
overlord/jak3/pagemanager.cpp
259+
overlord/jak3/ramdisk.cpp
256260
overlord/jak3/sbank.cpp
261+
overlord/jak3/srpc.cpp
257262
overlord/jak3/ssound.cpp
258263
overlord/jak3/vblank_handler.cpp
259264
runtime.cpp

game/overlord/jak3/basefile.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22

3+
#include "game/overlord/jak3/iso.h"
34
#include "game/overlord/jak3/iso_structs.h"
45
#include "game/overlord/jak3/overlord.h"
56

@@ -11,9 +12,8 @@ class CBaseFile {
1112
virtual EIsoStatus SyncRead() = 0;
1213
virtual void Close() = 0;
1314

14-
/* unk return values */
15+
/* unk return values */
1516
virtual void Unk1() = 0;
1617
virtual void Unk2() = 0;
1718
};
1819
} // namespace jak3
19-

game/overlord/jak3/iso.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
#include <cstring>
44

5+
#include "common/log/log.h"
6+
7+
#include "game/common/dgo_rpc_types.h"
58
#include "game/overlord/jak3/basefilesystem.h"
9+
#include "game/overlord/jak3/iso_fake.h"
610

711
namespace jak3 {
812
using namespace iop;
@@ -12,6 +16,27 @@ static ISO_LoadDGO s_LoadDGO;
1216
int s_nSyncMbx;
1317
CBaseFileSystem* g_pFileSystem;
1418
MsgPacket s_MsgPacket_NotOnStackSync[2];
19+
RPC_Dgo_Cmd s_aISO_RPCBuf[1];
20+
21+
static void* RPC_DGO(u32 fno, void* data, int size) {
22+
lg::error("RPC_DGO UNIMPLEMENTED");
23+
return nullptr;
24+
}
25+
26+
static u32 DGOThread() {
27+
sceSifQueueData dq;
28+
sceSifServeData serve;
29+
30+
CpuDisableIntr();
31+
sceSifInitRpc(0);
32+
sceSifSetRpcQueue(&dq, GetThreadId());
33+
sceSifRegisterRpc(&serve, 0xfab3, RPC_DGO, s_aISO_RPCBuf, sizeof(s_aISO_RPCBuf), nullptr, nullptr,
34+
&dq);
35+
CpuEnableIntr();
36+
sceSifRpcLoop(&dq);
37+
38+
return 0;
39+
}
1540

1641
/* COMPLETE */
1742
void InitDriver() {
@@ -47,6 +72,7 @@ int InitISOFS(const char* fs_mode, const char* loading_sceeen) {
4772

4873
memset(&s_LoadDGO, 0, sizeof(s_LoadDGO));
4974
s_nISOInitFlag = 1;
75+
g_pFileSystem = &g_FakeISOCDFileSystem;
5076

5177
return s_nISOInitFlag;
5278
}

game/overlord/jak3/iso.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ struct ISO_Msg : ISO_Hdr {};
2121

2222
struct ISO_LoadDGO : ISO_Msg {};
2323

24+
int InitISOFS(const char* fs_mode, const char* loading_sceeen);
2425
} // namespace jak3

game/overlord/jak3/iso_fake.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#include "iso_fake.h"
2+
3+
namespace jak3 {
4+
CFakeISOCDFileSystem g_FakeISOCDFileSystem;
5+
6+
int CFakeISOCDFileSystem::Init() {
7+
return 0;
8+
}
9+
10+
void CFakeISOCDFileSystem::PollDrive() {}
11+
12+
const ISOFileDef* CFakeISOCDFileSystem::Find(const char* name) {
13+
return nullptr;
14+
}
15+
16+
const ISOFileDef* CFakeISOCDFileSystem::FindIN(const char* name) {
17+
return nullptr;
18+
}
19+
20+
int CFakeISOCDFileSystem::GetLength(const ISOFileDef* def) {
21+
return 0;
22+
}
23+
24+
int CFakeISOCDFileSystem::Open(const ISOFileDef* def, int offset, EFileComp mode) {
25+
return 0;
26+
}
27+
28+
int CFakeISOCDFileSystem::OpenWad(const ISOFileDef* def, int offset) {
29+
return 0;
30+
}
31+
32+
VagDirEntryJak3* CFakeISOCDFileSystem::FindVagFile(const char* name) {
33+
return nullptr;
34+
}
35+
36+
} // namespace jak3

game/overlord/jak3/iso_fake.h

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#ifndef ISO_FAKE_H_
2+
#define ISO_FAKE_H_
3+
4+
#include "basefile.h"
5+
#include "basefilesystem.h"
6+
7+
#include "game/overlord/jak3/iso.h"
8+
9+
namespace jak3 {
10+
class CFakeISOCDFileSystem : public CBaseFileSystem {
11+
int Init() override;
12+
void PollDrive() override;
13+
const ISOFileDef* Find(const char* name) override;
14+
const ISOFileDef* FindIN(const char* name) override;
15+
int GetLength(const ISOFileDef* def) override;
16+
int Open(const ISOFileDef* def, int offset, EFileComp mode) override;
17+
int OpenWad(const ISOFileDef* def, int offset) override;
18+
VagDirEntryJak3* FindVagFile(const char* name) override;
19+
};
20+
21+
class CFakeISOCDFile : public CBaseFile {
22+
EIsoStatus BeginRead(ISOBuffer*) override;
23+
EIsoStatus SyncRead() override;
24+
void Close() override;
25+
26+
/* unk return values */
27+
void Unk1() override;
28+
void Unk2() override;
29+
};
30+
31+
extern CFakeISOCDFileSystem g_FakeISOCDFileSystem;
32+
33+
} // namespace jak3
34+
35+
#endif // ISO_FAKE_H_

game/overlord/jak3/iso_structs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ struct VagDirJak3 {
2424
u32 version;
2525
u32 count;
2626
VagDirEntryJak3 entries[0];
27-
} dir;
27+
};
2828

2929
struct VagDirEntry {};
3030

game/overlord/jak3/ramdisk.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ u32 Thread_Server() {
2323
CpuDisableIntr();
2424
sceSifInitRpc(0);
2525
sceSifSetRpcQueue(&dq, GetThreadId());
26-
sceSifRegisterRpc(&serve, 0xfab2, RPC_Ramdisk, gRamDisk_RPCBUF, nullptr, nullptr, &dq);
26+
sceSifRegisterRpc(&serve, 0xfab2, RPC_Ramdisk, gRamDisk_RPCBUF, sizeof(gRamDisk_RPCBUF), nullptr,
27+
nullptr, &dq);
2728
CpuEnableIntr();
2829
sceSifRpcLoop(&dq);
2930

game/overlord/jak3/srpc.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ u32 Thread_Player() {
3030
CpuDisableIntr();
3131
sceSifInitRpc(0);
3232
sceSifSetRpcQueue(&dq, GetThreadId());
33-
sceSifRegisterRpc(&serve, 0xfab0, RPC_Player, s_anSRPC_PlayerBuf, nullptr, nullptr, &dq);
33+
sceSifRegisterRpc(&serve, 0xfab0, RPC_Player, s_anSRPC_PlayerBuf, sizeof(s_anSRPC_PlayerBuf),
34+
nullptr, nullptr, &dq);
3435
CpuEnableIntr();
3536
sceSifRpcLoop(&dq);
3637

@@ -44,7 +45,8 @@ u32 Thread_Loader() {
4445
CpuDisableIntr();
4546
sceSifInitRpc(0);
4647
sceSifSetRpcQueue(&dq, GetThreadId());
47-
sceSifRegisterRpc(&serve, 0xfab1, RPC_Loader, s_anSRPC_LoaderBuf, nullptr, nullptr, &dq);
48+
sceSifRegisterRpc(&serve, 0xfab1, RPC_Loader, s_anSRPC_LoaderBuf, sizeof(s_anSRPC_LoaderBuf),
49+
nullptr, nullptr, &dq);
4850
CpuEnableIntr();
4951
sceSifRpcLoop(&dq);
5052

game/overlord/jak3/start.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <cstdio>
22
#include <cstring>
33

4+
#include "iso.h"
45
#include "overlord.h"
56
#include "ramdisk.h"
67
#include "sbank.h"
@@ -70,7 +71,7 @@ int start_overlord(int argc, const char* const* argp) {
7071
return 1;
7172
}
7273

73-
//CDvdDriver::Initialize(&g_DvdDriver);
74+
// CDvdDriver::Initialize(&g_DvdDriver);
7475
InitISOFS(argp[1], argp[2]);
7576

7677
StartThread(g_nServerThreadID, 0);

0 commit comments

Comments
 (0)