aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/psp/osys_psp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/psp/osys_psp.cpp')
-rw-r--r--backends/platform/psp/osys_psp.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/backends/platform/psp/osys_psp.cpp b/backends/platform/psp/osys_psp.cpp
index ebda445019..42e066b543 100644
--- a/backends/platform/psp/osys_psp.cpp
+++ b/backends/platform/psp/osys_psp.cpp
@@ -30,6 +30,10 @@
#include "common/rect.h"
#include "osys_psp.h"
+#include "backends/saves/default/default-saves.h"
+#include "backends/timer/default/default-timer.h"
+#include "sound/mixer.h"
+
#include "common/config-manager.h"
#include <pspgu.h>
@@ -51,6 +55,12 @@ void putPixel(uint16 x, uint16 y, unsigned long colour) {
*(unsigned short *)(DrawBuffer + (y << 9) + x ) = colour;
}
+static int timer_handler(int t) {
+ DefaultTimerManager *tm = (DefaultTimerManager *)g_system->getTimerManager();
+ tm->handler();
+ return t;
+}
+
const OSystem::GraphicsMode OSystem_PSP::s_supportedGraphicsModes[] = {
{ "320x200 (centered)", "320x200 16-bit centered", CENTERED_320X200 },
{ "353x272 (best-fit, centered)", "353x272 16-bit centered", CENTERED_435X272 },
@@ -81,6 +91,18 @@ OSystem_PSP::~OSystem_PSP() {
if (_mouseBuf) free(_mouseBuf);
}
+
+void OSystem_PSP::initBackend() {
+ _savefile = new DefaultSaveFileManager();
+ _mixer = new Audio::Mixer();
+ _timer = new DefaultTimerManager();
+ setSoundCallback(Audio::Mixer::mixCallback, _mixer);
+ setTimerCallback(&timer_handler, 10);
+
+ OSystem::initBackend();
+}
+
+
bool OSystem_PSP::hasFeature(Feature f) {
return false;
}