Skip to content

Commit fa4191b

Browse files
committed
wip
1 parent 66563b1 commit fa4191b

File tree

10 files changed

+106
-26
lines changed

10 files changed

+106
-26
lines changed

game/overlord/jak3/basefile.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#ifndef BASEFILE_H_
2-
#define BASEFILE_H_
1+
#pragma once
32

43
#include "game/overlord/jak3/iso_structs.h"
54
#include "game/overlord/jak3/overlord.h"
@@ -18,4 +17,3 @@ class CBaseFile {
1817
};
1918
} // namespace jak3
2019

21-
#endif // BASEFILE_H_
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
#ifndef BASEFILESYSTEM_H_
2-
#define BASEFILESYSTEM_H_
1+
#pragma once
32

43
#include "game/overlord/jak3/iso_structs.h"
54

65
namespace jak3 {
76
class CBaseFileSystem {
87
public:
9-
virtual void Init() = 0;
8+
virtual int Init() = 0;
109
virtual void PollDrive() = 0;
1110
virtual const ISOFileDef* Find(const char* name) = 0;
1211
virtual const ISOFileDef* FindIN(const char* name) = 0;
@@ -16,5 +15,3 @@ class CBaseFileSystem {
1615
virtual VagDirEntryJak3* FindVagFile(const char* name) = 0;
1716
};
1817
} // namespace jak3
19-
20-
#endif // BASEFILESYSTEM_H_

game/overlord/jak3/iso_structs.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#ifndef ISO_STRUCTS_H_
2-
#define ISO_STRUCTS_H_
1+
#pragma once
32

43
#include "common/common_types.h"
54

@@ -29,9 +28,5 @@ struct VagDirJak3 {
2928

3029
struct VagDirEntry {};
3130

32-
struct ISOBuffer {};
33-
3431
struct ISOFileDef {};
3532
} // namespace jak3
36-
37-
#endif // ISO_STRUCTS_H_

game/overlord/jak3/overlord.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1-
#ifndef OVERLORD_H_
2-
#define OVERLORD_H_
1+
#pragma once
32

43
#include <cstddef>
54

5+
#include "common/common_types.h"
6+
67
namespace jak3 {
8+
9+
struct Vec3 {
10+
s32 x, y, z;
11+
};
12+
713
enum class EIsoStatus { Unk };
814

915
int start_overlord_wrapper(int argc, const char* const* argv, bool* signal);
@@ -14,5 +20,3 @@ void InitSound();
1420

1521
int VBlank_Initialize();
1622
} // namespace jak3
17-
18-
#endif

game/overlord/jak3/pagemanager.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#ifndef PAGEMANAGER_H_
2-
#define PAGEMANAGER_H_
1+
#pragma once
32

43
#include "common/common_types.h"
54

@@ -40,5 +39,3 @@ class CPageManager {
4039
};
4140

4241
} // namespace jak3
43-
44-
#endif // PAGEMANAGER_H_

game/overlord/jak3/ramdisk.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include "ramdisk.h"
2+
3+
#include "common/log/log.h"
4+
5+
#include "game/sce/iop.h"
6+
7+
namespace jak3 {
8+
using namespace iop;
9+
10+
static u8 gRamDisk_RPCBUF[40];
11+
12+
static void* RPC_Ramdisk(u32 fno, void* data, int size) {
13+
lg::error("RPC_RAMDISK UNIMPLEMENTED");
14+
return nullptr;
15+
}
16+
17+
void InitRamdisk() {}
18+
19+
u32 Thread_Server() {
20+
sceSifQueueData dq;
21+
sceSifServeData serve;
22+
23+
CpuDisableIntr();
24+
sceSifInitRpc(0);
25+
sceSifSetRpcQueue(&dq, GetThreadId());
26+
sceSifRegisterRpc(&serve, 0xfab2, RPC_Ramdisk, gRamDisk_RPCBUF, nullptr, nullptr, &dq);
27+
CpuEnableIntr();
28+
sceSifRpcLoop(&dq);
29+
30+
return 0;
31+
}
32+
33+
} // namespace jak3

game/overlord/jak3/sbank.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#ifndef SBANK_H_
2-
#define SBANK_H_
1+
#pragma once
32

43
#include "common/common_types.h"
54

@@ -18,5 +17,3 @@ struct SoundBankInfo {
1817
};
1918
void InitBanks();
2019
} // namespace jak3
21-
22-
#endif // SBANK_H_

game/overlord/jak3/start.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,19 @@
22
#include <cstring>
33

44
#include "overlord.h"
5+
#include "ramdisk.h"
56
#include "sbank.h"
67

8+
#include "game/overlord/jak3/srpc.h"
79
#include "game/sce/iop.h"
810

911
namespace jak3 {
1012
using namespace iop;
1113

14+
int g_nServerThreadID;
15+
int g_nPlayerThreadID;
16+
int g_nLoaderThreadID;
17+
1218
int start_overlord(int argc, const char* const* argp) {
1319
ThreadParam thp;
1420

@@ -31,6 +37,52 @@ int start_overlord(int argc, const char* const* argp) {
3137
InitSound();
3238
VBlank_Initialize();
3339

40+
thp.attr = TH_C;
41+
thp.option = 0;
42+
thp.entry = Thread_Server;
43+
thp.stackSize = 0x800;
44+
thp.initPriority = 59;
45+
g_nServerThreadID = CreateThread(&thp);
46+
if (g_nServerThreadID < 0) {
47+
Panic();
48+
return 1;
49+
}
50+
51+
thp.attr = TH_C;
52+
thp.option = 0;
53+
thp.entry = Thread_Player;
54+
thp.stackSize = 0xb00;
55+
thp.initPriority = 54;
56+
g_nPlayerThreadID = CreateThread(&thp);
57+
if (g_nPlayerThreadID < 0) {
58+
Panic();
59+
return 1;
60+
}
61+
62+
thp.attr = TH_C;
63+
thp.option = 0;
64+
thp.entry = Thread_Loader;
65+
thp.stackSize = 0x900;
66+
thp.initPriority = 58;
67+
g_nLoaderThreadID = CreateThread(&thp);
68+
if (g_nPlayerThreadID < 0) {
69+
Panic();
70+
return 1;
71+
}
72+
73+
//CDvdDriver::Initialize(&g_DvdDriver);
74+
InitISOFS(argp[1], argp[2]);
75+
76+
StartThread(g_nServerThreadID, 0);
77+
StartThread(g_nPlayerThreadID, 0);
78+
StartThread(g_nLoaderThreadID, 0);
79+
80+
printf("======== overlrd2.irx post-startup ========\n");
81+
// printf(" mem size: %lu\n", QueryMemSize());
82+
// printf("total mem free: %lu\n", QueryTotalFreeMemSize());
83+
// printf(" max mem free: %lu\n", QueryMaxFreeMemSize());
84+
// printf(" used: %lu\n", QueryMemSize() - QueryTotalFreeMemSize());
85+
3486
return 0;
3587
}
3688

game/sce/iop.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ s32 SendMbx(s32 mbxid, void* sendmsg) {
193193
return iop->kernel.SendMbx(mbxid, sendmsg);
194194
}
195195

196+
s32 ReceiveMbx(MsgPacket** recvmsg, int mbxid) {
197+
ASSERT(false);
198+
// TODO
199+
return 0;
200+
}
201+
196202
s32 PollMbx(MsgPacket** recvmsg, int mbxid) {
197203
return iop->kernel.PollMbx((void**)recvmsg, mbxid);
198204
}

game/sce/iop.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ int sceCdDiskReady(int mode);
131131
u32 sceSifSetDma(sceSifDmaData* sdd, int len);
132132

133133
s32 SendMbx(int mbxid, void* sendmsg);
134+
s32 ReceiveMbx(MsgPacket** recvmsg, int mbxid);
134135
s32 PollMbx(MsgPacket** recvmsg, int mbxid);
135136
s32 PeekMbx(s32 mbx);
136137
s32 CreateMbx(MbxParam* param);

0 commit comments

Comments
 (0)