mirror of
https://github.com/izzy2lost/Ghostship.git
synced 2026-06-19 01:17:03 -07:00
Cleaned Game.cpp
This commit is contained in:
+1
-1
@@ -54,7 +54,7 @@ build/*
|
||||
build-cmake/*
|
||||
cmake-build-*/*
|
||||
.idea/*
|
||||
sm64.json
|
||||
ghostship.cfg.json
|
||||
imgui.ini
|
||||
.DS_Store
|
||||
logs/
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
#include "synthesis.h"
|
||||
#include "seqplayer.h"
|
||||
#include "effects.h"
|
||||
#include "port/Globals.h"
|
||||
#include "port/Engine.h"
|
||||
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
|
||||
|
||||
@@ -650,8 +650,6 @@ void thread5_game_loop() {
|
||||
#endif
|
||||
save_file_load_all();
|
||||
|
||||
set_vblank_handler(2, &gGameVblankHandler, &gGameVblankQueue, OS_MESG_32(1));
|
||||
|
||||
// Point address to the entry point into the level script data.
|
||||
addr = segmented_to_virtual(level_script_entry);
|
||||
|
||||
|
||||
@@ -68,8 +68,6 @@ extern s8 D_8032C650;
|
||||
extern s8 gShowProfiler;
|
||||
extern s8 gShowDebugText;
|
||||
|
||||
void set_vblank_handler(s32 index, struct VblankHandler *handler, OSMesgQueue *queue, OSMesg msg);
|
||||
void dispatch_audio_sptask(struct SPTask *spTask);
|
||||
void exec_display_list(struct SPTask *spTask);
|
||||
|
||||
#endif // MAIN_H
|
||||
|
||||
@@ -340,7 +340,6 @@ void thread4_sound(UNUSED void *arg) {
|
||||
vec3f_copy(unused80339DC0, gVec3fZero);
|
||||
|
||||
osCreateMesgQueue(&sSoundMesgQueue, sSoundMesgBuf, ARRAY_COUNT(sSoundMesgBuf));
|
||||
set_vblank_handler(1, &sSoundVblankHandler, &sSoundMesgQueue, OS_MESG_32(512));
|
||||
|
||||
while (TRUE) {
|
||||
OSMesg msg;
|
||||
@@ -350,9 +349,6 @@ void thread4_sound(UNUSED void *arg) {
|
||||
struct SPTask *spTask;
|
||||
profiler_log_thread4_time();
|
||||
spTask = create_next_audio_frame_task();
|
||||
if (spTask != NULL) {
|
||||
dispatch_audio_sptask(spTask);
|
||||
}
|
||||
profiler_log_thread4_time();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "Globals.h"
|
||||
#include "Engine.h"
|
||||
#include "ImguiUI.h"
|
||||
|
||||
#include <iostream>
|
||||
@@ -8,29 +8,28 @@
|
||||
GameEngine* GameEngine::Instance;
|
||||
|
||||
GameEngine::GameEngine(){
|
||||
std::cout << "GameEngine::GameEngine" << std::endl;
|
||||
std::string main = LUS::Context::GetPathRelativeToAppBundle("soh.otr");
|
||||
this->context = LUS::Context::CreateInstance("Ghostship", "sm64", "ghostship.cfg.json", {main}, {}, 3);
|
||||
this->context->GetWindow()->SetTargetFps(30);
|
||||
this->context->GetWindow()->SetMaximumFrameLatency(1);
|
||||
}
|
||||
|
||||
void GameEngine_Create(void){
|
||||
void GameEngine::Create(void){
|
||||
GameEngine::Instance = new GameEngine();
|
||||
GameUI::SetupGuiElements();
|
||||
}
|
||||
|
||||
void GameEngine_StartFrame(void){
|
||||
GameEngine::Instance->context->GetWindow()->StartFrame();
|
||||
void GameEngine::StartFrame(void){
|
||||
this->context->GetWindow()->StartFrame();
|
||||
}
|
||||
|
||||
void GameEngine_RunCommands(Gfx* Commands) {
|
||||
void GameEngine::RunCommands(Gfx* Commands) {
|
||||
gfx_run(Commands, {});
|
||||
gfx_end_frame();
|
||||
}
|
||||
|
||||
void GameEngine_ProcessFrame(void (*run_one_game_iter)(void)) {
|
||||
GameEngine::Instance->context->GetWindow()->MainLoop(run_one_game_iter);
|
||||
void GameEngine::ProcessFrame(void (*run_one_game_iter)(void)) {
|
||||
this->context->GetWindow()->MainLoop(run_one_game_iter);
|
||||
}
|
||||
|
||||
extern "C" uint32_t GameEngine_GetSampleRate(void) {
|
||||
@@ -4,6 +4,11 @@
|
||||
#include <vector>
|
||||
#include <Context.h>
|
||||
|
||||
#define SAMPLES_HIGH 752
|
||||
#define SAMPLES_LOW 720
|
||||
#define AUDIO_FRAMES_PER_UPDATE 2
|
||||
#define NUM_AUDIO_CHANNELS 2
|
||||
|
||||
class GameEngine {
|
||||
public:
|
||||
static GameEngine* Instance;
|
||||
@@ -12,13 +17,11 @@ class GameEngine {
|
||||
|
||||
GameEngine();
|
||||
~GameEngine();
|
||||
void run();
|
||||
static void Create(void);
|
||||
void StartFrame(void);
|
||||
void RunCommands(Gfx* Commands);
|
||||
void ProcessFrame(void (*run_one_game_iter)(void));
|
||||
};
|
||||
|
||||
void GameEngine_Create(void);
|
||||
void GameEngine_StartFrame(void);
|
||||
void GameEngine_RunCommands(Gfx* Commands);
|
||||
void GameEngine_ProcessFrame(void (*run_one_game_iter)(void));
|
||||
#else
|
||||
uint32_t GameEngine_GetSampleRate(void);
|
||||
#endif
|
||||
+8
-35
@@ -2,38 +2,14 @@
|
||||
|
||||
#include "sm64.h"
|
||||
#include <Fast3D/gfx_pc.h>
|
||||
#include "Globals.h"
|
||||
|
||||
#define SAMPLES_HIGH 752
|
||||
#define SAMPLES_LOW 720
|
||||
#define AUDIO_FRAMES_PER_UPDATE 2
|
||||
#define NUM_AUDIO_CHANNELS 2
|
||||
#include "Engine.h"
|
||||
|
||||
extern "C" {
|
||||
#include "game/main.h"
|
||||
#include "game/game_init.h"
|
||||
#include "audio/external.h"
|
||||
#include "segments.h"
|
||||
s8 D_8032C650 = 0;
|
||||
s8 gResetTimer = 0;
|
||||
u32 gNumVblanks = 0;
|
||||
s8 gNmiResetBarsTimer = 0;
|
||||
u64 osClockRate = 62500000;
|
||||
|
||||
s8 sAudioEnabled = TRUE;
|
||||
s8 gShowProfiler = FALSE;
|
||||
s8 gShowDebugText = FALSE;
|
||||
s8 gDebugLevelSelect = TRUE;
|
||||
|
||||
OSIoMesg gDmaIoMesg;
|
||||
OSMesg gMainReceivedMesg;
|
||||
OSMesgQueue gDmaMesgQueue;
|
||||
OSMesgQueue gSIEventMesgQueue;
|
||||
#include "game/game_init.h"
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
void set_vblank_handler(s32 index, VblankHandler *handler, OSMesgQueue *queue, OSMesg msg) {}
|
||||
void dispatch_audio_sptask(SPTask *spTask) {}
|
||||
bool sAudioEnabled = true;
|
||||
|
||||
void alloc_pool(void) {
|
||||
static u64 pool[1024 * 1024 * 4];
|
||||
@@ -41,16 +17,13 @@ void alloc_pool(void) {
|
||||
gEffectsMemoryPool = mem_pool_init(0x4000, MEMORY_POOL_LEFT);
|
||||
}
|
||||
|
||||
extern "C"
|
||||
void exec_display_list(SPTask *spTask) {
|
||||
if(gDisplayListHead == nullptr){
|
||||
return;
|
||||
}
|
||||
GameEngine_RunCommands((Gfx*) spTask->task.t.data_ptr);
|
||||
}
|
||||
GameEngine::Instance->RunCommands((Gfx*) spTask->task.t.data_ptr);
|
||||
}
|
||||
|
||||
void push_frame(void) {
|
||||
GameEngine_StartFrame();
|
||||
GameEngine::Instance->StartFrame();
|
||||
thread5_iteration();
|
||||
|
||||
if(sAudioEnabled) {
|
||||
@@ -67,11 +40,11 @@ void push_frame(void) {
|
||||
}
|
||||
|
||||
int main(){
|
||||
GameEngine_Create();
|
||||
GameEngine::Create();
|
||||
alloc_pool();
|
||||
audio_init();
|
||||
sound_init();
|
||||
|
||||
thread5_game_loop(NULL);
|
||||
GameEngine_ProcessFrame(push_frame);
|
||||
GameEngine::Instance->ProcessFrame(push_frame);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#include <libultraship.h>
|
||||
|
||||
#include "sm64.h"
|
||||
#include <Fast3D/gfx_pc.h>
|
||||
|
||||
extern "C" {
|
||||
#include "game/main.h"
|
||||
#include "game/game_init.h"
|
||||
#include "segments.h"
|
||||
s8 D_8032C650 = 0;
|
||||
s8 gResetTimer = 0;
|
||||
u32 gNumVblanks = 0;
|
||||
s8 gNmiResetBarsTimer = 0;
|
||||
u64 osClockRate = 62500000;
|
||||
|
||||
s8 gShowProfiler = FALSE;
|
||||
s8 gShowDebugText = FALSE;
|
||||
s8 gDebugLevelSelect = TRUE;
|
||||
|
||||
OSIoMesg gDmaIoMesg;
|
||||
OSMesg gMainReceivedMesg;
|
||||
OSMesgQueue gDmaMesgQueue;
|
||||
OSMesgQueue gSIEventMesgQueue;
|
||||
}
|
||||
Reference in New Issue
Block a user