Improve starting of the game and reduce persistent memory usage

This commit is contained in:
Jaby 2023-04-17 20:21:32 +02:00 committed by Jaby
parent 888634a691
commit 3f4ba0506e
6 changed files with 25 additions and 23 deletions

View File

@ -1,6 +1,6 @@
#ifndef __JABYENGINE__HPP__
#define __JABYENGINE__HPP__
#include "../stdint.h"
#include "jabyengine_defines.h"
namespace JabyEngine {
typedef void (*MainRoutine)();

View File

@ -6,6 +6,7 @@
#define __used __attribute__((used))
#define __no_align __attribute__((packed))
#define __no_inline __attribute__((noinline))
#define __no_return __attribute__((noreturn))
#define __always_inline __attribute__((always_inline))
#define __section(name) __attribute__((section(name)))
#define __collect(...) __VA_ARGS__

View File

@ -3,7 +3,6 @@
#include <PSX/jabyengine.hpp>
namespace JabyEngine {
//boot namespace?
namespace boot {
namespace CD {
void setup();
@ -19,13 +18,11 @@ namespace JabyEngine {
void setup();
}
namespace Start {
void setup();
}
namespace Timer {
void setup();
}
}
void __no_return run();
}
#endif //!BOOT_LOADER_HPP

View File

@ -13,7 +13,7 @@ namespace JabyEngine {
DMA_IO::DPCR = DMA_IO::DPCR_t(DMA_IO::DPCR).set(DMA_IO::DPCR_t::SPUEnable).set(DMA_IO::DPCR_t::GPUEnable).set(DMA_IO::DPCR_t::CDROMEnable);
}
void setup() {
static void setup() {
enable_DMA();
SPU::stop_voices();
@ -34,4 +34,12 @@ namespace JabyEngine {
}
}
}
void start() {
printf("Starting Planschbecken\n");
boot::Start::setup();
printf("Running main...\n");
run();
}
}

12
src/Library/src/run.cpp Normal file
View File

@ -0,0 +1,12 @@
#include <stdio.h>
extern void main();
namespace JabyEngine {
// Executes the game
void __no_return run() {
main();
printf("Stop!!\n");
while(true);
}
}

View File

@ -1,16 +0,0 @@
#include "../internal-include/BootLoader/boot_loader.hpp"
#include <stdio.h>
extern void main();
namespace JabyEngine {
void start() {
printf("Starting Planschbecken\n");
boot::Start::setup();
printf("Running main...\n");
main();
printf("Stop!!\n");
while(true);
}
}