mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-05 00:36:57 +00:00
Made MorphOS port use master makefile, few compilation fixes
svn-id: r4800
This commit is contained in:
parent
e0cfd49ef7
commit
31f6833f87
@ -1,5 +1,11 @@
|
|||||||
CC = g++
|
CXX = g++
|
||||||
CFLAGS = -Wno-multichar -fstrength-reduce -fno-rtti -O2
|
CFLAGS = -Wno-multichar -fstrength-reduce -fno-rtti -O2
|
||||||
DEFINES = -DNO_PPCINLINE_STDARG -DNO_PPCINLINE_VARARGS
|
DEFINES = -DNO_PPCINLINE_STDARG -DNO_PPCINLINE_VARARGS
|
||||||
LDFLAGS = -noixemul -s
|
LDFLAGS = -noixemul -s
|
||||||
LIBS = -lamiga -lamigastubs -lcdda
|
LIBS = -lamiga -lamigastubs -lcdda
|
||||||
|
INCLUDES += -Ibackends/morphos
|
||||||
|
MODULES += backends/morphos
|
||||||
|
OBJS += backends/morphos/morphos.o backends/morphos/morphos_scaler.o \
|
||||||
|
backends/morphos/morphos_sound.o backends/morphos/morphos_start.o \
|
||||||
|
backends/morphos/morphos_timer.o
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ bool init_morphos_music(ULONG MidiUnit)
|
|||||||
if (ScummMidiRequest)
|
if (ScummMidiRequest)
|
||||||
{
|
{
|
||||||
ScummMidiRequest->amr_Version = 2;
|
ScummMidiRequest->amr_Version = 2;
|
||||||
if (OpenDevice("amidi.device", MidiUnit, (IORequest *) ScummMidiRequest, AMIDIF_MIDISERVER))
|
if (OpenDevice("amidi.device", MidiUnit, (IORequest *) ScummMidiRequest, 0))
|
||||||
{
|
{
|
||||||
DeleteIORequest((IORequest *) ScummMidiRequest);
|
DeleteIORequest((IORequest *) ScummMidiRequest);
|
||||||
DeleteMsgPort(ScummMidiPort);
|
DeleteMsgPort(ScummMidiPort);
|
||||||
|
@ -50,6 +50,7 @@ Timer::Timer(Scumm * system)
|
|||||||
ThreadEmulFunc.StackSize = 16000;
|
ThreadEmulFunc.StackSize = 16000;
|
||||||
ThreadEmulFunc.Extension = 0;
|
ThreadEmulFunc.Extension = 0;
|
||||||
ThreadEmulFunc.Arg1 = (ULONG) this;
|
ThreadEmulFunc.Arg1 = (ULONG) this;
|
||||||
|
ThreadEmulFunc.Arg2 = (ULONG) system;
|
||||||
TimerServiceTags[0].ti_Data = (ULONG) &ThreadEmulFunc;
|
TimerServiceTags[0].ti_Data = (ULONG) &ThreadEmulFunc;
|
||||||
TimerServiceThread = CreateNewProc(TimerServiceTags);
|
TimerServiceThread = CreateNewProc(TimerServiceTags);
|
||||||
}
|
}
|
||||||
@ -73,17 +74,17 @@ void Timer::release()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Timer::installProcedure(int ((*procedure)(int)), int32 interval)
|
bool Timer::installProcedure(TimerProc procedure, int32 interval)
|
||||||
{
|
{
|
||||||
return SendMsg(TSM_MSGID_ADDTIMER, procedure, interval);
|
return SendMsg(TSM_MSGID_ADDTIMER, procedure, interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Timer::releaseProcedure(int ((*procedure)(int)))
|
void Timer::releaseProcedure(TimerProc procedure)
|
||||||
{
|
{
|
||||||
SendMsg(TSM_MSGID_REMTIMER, procedure, 0);
|
SendMsg(TSM_MSGID_REMTIMER, procedure, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Timer::SendMsg(ULONG msg_id, int ((*procedure)(int)), LONG interval)
|
bool Timer::SendMsg(ULONG msg_id, TimerProc procedure, LONG interval)
|
||||||
{
|
{
|
||||||
if (TimerServiceThread == NULL)
|
if (TimerServiceThread == NULL)
|
||||||
return false;
|
return false;
|
||||||
@ -115,7 +116,7 @@ bool Timer::SendMsg(ULONG msg_id, int ((*procedure)(int)), LONG interval)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Timer::TimerService(Timer *this_ptr)
|
void Timer::TimerService(Timer *this_ptr, Scumm *system)
|
||||||
{
|
{
|
||||||
MsgPort *port = &((Process *) FindTask(NULL))->pr_MsgPort;
|
MsgPort *port = &((Process *) FindTask(NULL))->pr_MsgPort;
|
||||||
ULONG port_bit = 1 << port->mp_SigBit;
|
ULONG port_bit = 1 << port->mp_SigBit;
|
||||||
@ -215,7 +216,7 @@ void Timer::TimerService(Timer *this_ptr)
|
|||||||
timerequest *req = timer_slots[t].ts_IORequest;
|
timerequest *req = timer_slots[t].ts_IORequest;
|
||||||
WaitIO((IORequest *) req);
|
WaitIO((IORequest *) req);
|
||||||
interval = timer_slots[t].ts_Interval;
|
interval = timer_slots[t].ts_Interval;
|
||||||
(*timer_slots[t].ts_Callback)(interval);
|
(*timer_slots[t].ts_Callback)(system);
|
||||||
GetSysTime(&end_callback);
|
GetSysTime(&end_callback);
|
||||||
SubTime(&end_callback, &start_callback);
|
SubTime(&end_callback, &start_callback);
|
||||||
interval -= end_callback.tv_sec*1000+end_callback.tv_micro/1000+40;
|
interval -= end_callback.tv_sec*1000+end_callback.tv_micro/1000+40;
|
||||||
|
@ -44,13 +44,13 @@
|
|||||||
class OSystem;
|
class OSystem;
|
||||||
|
|
||||||
#define TSM_MSGID_ADDTIMER 0
|
#define TSM_MSGID_ADDTIMER 0
|
||||||
#define TSM_MSGID_REMTIMER 1
|
#define TSM_MSGID_REMTIMER 1
|
||||||
|
|
||||||
struct TimerServiceMessage
|
struct TimerServiceMessage
|
||||||
{
|
{
|
||||||
Message tsm_Message;
|
Message tsm_Message;
|
||||||
ULONG tsm_MsgID;
|
ULONG tsm_MsgID;
|
||||||
int ((*tsm_Callback)(int));
|
TimerProc tsm_Callback;
|
||||||
LONG tsm_Interval;
|
LONG tsm_Interval;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -62,12 +62,12 @@ class Timer
|
|||||||
|
|
||||||
bool init();
|
bool init();
|
||||||
void release();
|
void release();
|
||||||
bool installProcedure(int ((*procedure)(int)), int32 interval);
|
bool installProcedure(TimerProc procedure, int32 interval);
|
||||||
void releaseProcedure(int ((*procedure)(int)));
|
void releaseProcedure(TimerProc procedure);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool SendMsg(ULONG MsgID, int ((*procedure)(int)), LONG interval);
|
bool SendMsg(ULONG MsgID, TimerProc procedure, LONG interval);
|
||||||
static void TimerService(Timer *);
|
static void TimerService(Timer *, Scumm *);
|
||||||
|
|
||||||
Process *TimerServiceThread;
|
Process *TimerServiceThread;
|
||||||
SignalSemaphore TimerServiceSemaphore;
|
SignalSemaphore TimerServiceSemaphore;
|
||||||
@ -77,7 +77,7 @@ class Timer
|
|||||||
MsgPort *ts_Port;
|
MsgPort *ts_Port;
|
||||||
timerequest *ts_IORequest;
|
timerequest *ts_IORequest;
|
||||||
ULONG ts_SignalBit;
|
ULONG ts_SignalBit;
|
||||||
int ((*ts_Callback)(int));
|
TimerProc ts_Callback;
|
||||||
LONG ts_Interval;
|
LONG ts_Interval;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "scummsys.h"
|
#include "scummsys.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
|
|
||||||
|
#ifndef __MORPHOS__
|
||||||
static Scumm * scumm;
|
static Scumm * scumm;
|
||||||
|
|
||||||
Timer::Timer(Scumm * parent) {
|
Timer::Timer(Scumm * parent) {
|
||||||
@ -153,5 +154,5 @@ void Timer::releaseProcedure (TimerProc procedure) {
|
|||||||
}
|
}
|
||||||
_timerRunning = true;
|
_timerRunning = true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
typedef void (*TimerProc)(Scumm *);
|
typedef void (*TimerProc)(Scumm *);
|
||||||
|
|
||||||
#ifdef __MORPHOS__
|
#ifdef __MORPHOS__
|
||||||
#include "morphos/morphos_timer.h"
|
#include "morphos_timer.h"
|
||||||
#else
|
#else
|
||||||
|
|
||||||
class OSystem;
|
class OSystem;
|
||||||
|
Loading…
Reference in New Issue
Block a user