Cleaned Game.cpp

This commit is contained in:
KiritoDv
2023-08-16 13:28:39 -06:00
parent 7562f73351
commit 5332ba2746
9 changed files with 50 additions and 59 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ build/*
build-cmake/*
cmake-build-*/*
.idea/*
sm64.json
ghostship.cfg.json
imgui.ini
.DS_Store
logs/
+1 -1
View File
@@ -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)
-2
View File
@@ -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);
-2
View File
@@ -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
-4
View File
@@ -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();
}
}
+7 -8
View File
@@ -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) {
+9 -6
View File
@@ -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
View File
@@ -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);
}
+24
View File
@@ -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;
}