mirror of
https://github.com/perfect-dark-pc-port/perfect_dark.git
synced 2026-10-24 08:12:41 +02:00
83 lines
1.6 KiB
C
83 lines
1.6 KiB
C
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <PR/ultratypes.h>
|
|
#include <PR/ultrasched.h>
|
|
#include <PR/os_message.h>
|
|
|
|
#include "lib/main.h"
|
|
#include "bss.h"
|
|
|
|
#include "video.h"
|
|
#include "audio.h"
|
|
#include "input.h"
|
|
#include "fs.h"
|
|
#include "romdata.h"
|
|
#include "config.h"
|
|
#include "system.h"
|
|
|
|
u32 g_OsMemSize = 0;
|
|
u8 g_Is4Mb = 0;
|
|
s8 g_Resetting = false;
|
|
OSSched g_Sched;
|
|
|
|
OSMesgQueue g_MainMesgQueue;
|
|
OSMesg g_MainMesgBuf[32];
|
|
|
|
u8 *g_MempHeap = NULL;
|
|
u32 g_MempHeapSize = 0;
|
|
|
|
u32 g_VmNumTlbMisses = 0;
|
|
u32 g_VmNumPageMisses = 0;
|
|
u32 g_VmNumPageReplaces = 0;
|
|
u8 g_VmShowStats = 0;
|
|
|
|
s32 bootGetMemSize(void)
|
|
{
|
|
return (s32)g_OsMemSize;
|
|
}
|
|
|
|
void *bootAllocateStack(s32 threadid, s32 size)
|
|
{
|
|
static u8 bruh[0x1000];
|
|
return bruh;
|
|
}
|
|
|
|
void bootCreateSched(void)
|
|
{
|
|
osCreateMesgQueue(&g_MainMesgQueue, g_MainMesgBuf, ARRAYCOUNT(g_MainMesgBuf));
|
|
if (osTvType == OS_TV_MPAL) {
|
|
osCreateScheduler(&g_Sched, NULL, OS_VI_MPAL_LAN1, 1);
|
|
} else {
|
|
osCreateScheduler(&g_Sched, NULL, OS_VI_NTSC_LAN1, 1);
|
|
}
|
|
}
|
|
|
|
int main(int argc, const char **argv)
|
|
{
|
|
fsInit();
|
|
configInit();
|
|
videoInit();
|
|
inputInit();
|
|
audioInit();
|
|
romdataInit();
|
|
|
|
bootCreateSched();
|
|
|
|
osMemSize = configGetInt("Game.MemorySize", 16) * 1024 * 1024;
|
|
|
|
g_OsMemSize = osGetMemSize();
|
|
|
|
g_MempHeapSize = g_OsMemSize;
|
|
g_MempHeap = sysMemZeroAlloc(g_MempHeapSize);
|
|
if (!g_MempHeap) {
|
|
sysFatalError("Could not alloc %u bytes for memp heap.", g_MempHeapSize);
|
|
}
|
|
|
|
printf("memp heap at %p - %p\n", g_MempHeap, g_MempHeap + g_MempHeapSize);
|
|
printf("rom file at %p - %p\n", g_RomFile, g_RomFile + g_RomFileSize);
|
|
|
|
mainProc();
|
|
|
|
return 0;
|
|
}
|