aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorRuediger Hanke2002-12-02 19:03:07 +0000
committerRuediger Hanke2002-12-02 19:03:07 +0000
commitc65be6ce08fa3dbf4347e4656f83f824db69e2f4 (patch)
tree770cf1de2bcd7d25c5508815f196065c9257a948 /backends
parent31dec80d39a0cd7965eed3b583d253ddfc574cf2 (diff)
downloadscummvm-rg350-c65be6ce08fa3dbf4347e4656f83f824db69e2f4.tar.gz
scummvm-rg350-c65be6ce08fa3dbf4347e4656f83f824db69e2f4.tar.bz2
scummvm-rg350-c65be6ce08fa3dbf4347e4656f83f824db69e2f4.zip
Latest MorphOS changes from my harddisk ...
svn-id: r5816
Diffstat (limited to 'backends')
-rw-r--r--backends/morphos/morphos.cpp50
-rw-r--r--backends/morphos/morphos_start.cpp14
2 files changed, 16 insertions, 48 deletions
diff --git a/backends/morphos/morphos.cpp b/backends/morphos/morphos.cpp
index bbc5d93f22..cf5986088f 100644
--- a/backends/morphos/morphos.cpp
+++ b/backends/morphos/morphos.cpp
@@ -47,8 +47,6 @@
#include <proto/cdda.h>
#include <proto/cybergraphics.h>
-#include <emul/emulinterface.h>
-
#include <time.h>
#include "morphos.h"
@@ -66,17 +64,6 @@ static TagItem PlayTags[] = { { CDPA_StartTrack, 1 },
{ TAG_DONE, 0 }
};
-TagItem musicProcTags[] = { { NP_Entry, 0 },
- { NP_Name, (ULONG)"ScummVM Music Thread" },
- { NP_Priority, 60 },
- { TAG_DONE, 0 }
- };
-TagItem soundProcTags[] = { { NP_Entry, 0 },
- { NP_Name, (ULONG)"ScummVM Sound Thread" },
- { NP_Priority, 0 },
- { TAG_DONE, 0 }
- };
-
#define BLOCKSIZE_X 32
#define BLOCKSIZE_Y 8
@@ -188,7 +175,7 @@ OSystem_MorphOS::~OSystem_MorphOS()
if (ScummMusicThread)
{
Signal((Task *) ScummMusicThread, SIGBREAKF_CTRL_C);
- ObtainSemaphore(&ScummMusicThreadRunning); /* Wait for thread to finish */
+ ObtainSemaphore(&ScummMusicThreadRunning); /* Wait for thread to finish */
ReleaseSemaphore(&ScummMusicThreadRunning);
}
@@ -270,10 +257,11 @@ uint32 OSystem_MorphOS::get_msecs()
void OSystem_MorphOS::delay_msecs(uint msecs)
{
- TimerIORequest->tr_node.io_Command = TR_ADDREQUEST;
+/* TimerIORequest->tr_node.io_Command = TR_ADDREQUEST;
TimerIORequest->tr_time.tv_secs = 0;
TimerIORequest->tr_time.tv_micro = msecs*1000;
- DoIO((IORequest *) TimerIORequest);
+ DoIO((IORequest *) TimerIORequest);*/
+ TimeDelay(UNIT_MICROHZ, 0, msecs*1000);
}
void OSystem_MorphOS::set_timer(int timer, int (*callback)(int))
@@ -283,15 +271,10 @@ void OSystem_MorphOS::set_timer(int timer, int (*callback)(int))
void *OSystem_MorphOS::create_thread(ThreadProc *proc, void *param)
{
- static EmulFunc ThreadEmulFunc;
-
- ThreadEmulFunc.Trap = TRAP_FUNC;
- ThreadEmulFunc.Address = (ULONG)proc;
- ThreadEmulFunc.StackSize = 16000;
- ThreadEmulFunc.Extension = 0;
- ThreadEmulFunc.Arg1 = (ULONG)param;
- musicProcTags[0].ti_Data = (ULONG)&ThreadEmulFunc;
- ScummMusicThread = CreateNewProc(musicProcTags);
+ ScummMusicThread = CreateNewProcTags(NP_Entry, (ULONG) proc, NP_CodeType, CODETYPE_PPC,
+ NP_Name, (ULONG) "ScummVM Music Thread",
+ NP_Priority, 80, NP_StackSize, 32000,
+ NP_PPC_Arg1, (ULONG) param, TAG_DONE);
return ScummMusicThread;
}
@@ -1300,24 +1283,17 @@ void OSystem_MorphOS::set_mouse_cursor(const byte *buf, uint w, uint h, int hots
bool OSystem_MorphOS::set_sound_proc(void *param, OSystem::SoundProc *proc, byte format)
{
- static EmulFunc MySoundEmulFunc;
-
SoundProc = proc;
SoundParam = param;
/*
* Create Sound Thread
*/
- MySoundEmulFunc.Trap = TRAP_FUNC;
- MySoundEmulFunc.Address = (ULONG)&morphos_sound_thread;
- MySoundEmulFunc.StackSize = 8192;
- MySoundEmulFunc.Extension = 0;
- MySoundEmulFunc.Arg1 = (ULONG)this;
- MySoundEmulFunc.Arg2 = AHIST_S16S;
-
- soundProcTags[0].ti_Data = (ULONG)&MySoundEmulFunc;
- ScummSoundThread = CreateNewProc(soundProcTags);
-
+ ScummSoundThread = CreateNewProcTags(NP_Entry, (ULONG) &morphos_sound_thread,
+ NP_CodeType, CODETYPE_PPC,
+ NP_Name, (ULONG) "ScummVM Sound Thread",
+ NP_PPC_Arg1, (ULONG) this,
+ NP_PPC_Arg2, AHIST_S16S, TAG_DONE);
if (!ScummSoundThread)
{
puts("Failed to create sound thread");
diff --git a/backends/morphos/morphos_start.cpp b/backends/morphos/morphos_start.cpp
index 8b6177039a..118a054452 100644
--- a/backends/morphos/morphos_start.cpp
+++ b/backends/morphos/morphos_start.cpp
@@ -31,7 +31,6 @@
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/cdda.h>
-#include <proto/cybergraphics.h>
#include <proto/icon.h>
#include "stdafx.h"
@@ -44,7 +43,7 @@
extern "C" WBStartup *_WBenchMsg;
// For command line parsing
-static STRPTR usageTemplate = "STORY/A,DATAPATH/K,WINDOW/S,SCALER/K,AMIGA/S,MIDIUNIT/K/N,MUSIC/K,MUSICVOL/K/N,SFXVOL/K/N,TEMPO/K/N,TALKSPEED/K/N,NOSUBTITLES=NST/S";
+static STRPTR usageTemplate = "STORY,DATAPATH/K,WINDOW/S,SCALER/K,AMIGA/S,MIDIUNIT/K/N,MUSIC/K,MUSICVOL/K/N,SFXVOL/K/N,TEMPO/K/N,TALKSPEED/K/N,NOSUBTITLES=NST/S";
typedef enum { USG_STORY = 0, USG_DATAPATH, USG_WINDOW, USG_SCALER, USG_AMIGA, USG_MIDIUNIT, USG_MUSIC, USG_MUSICVOL, USG_SFXVOL, USG_TEMPO, USG_TALKSPEED, USG_NOSUBTITLES } usageFields;
static LONG args[13] = { (ULONG) NULL, (ULONG) NULL, FALSE, (ULONG) NULL, false, (ULONG) NULL, (ULONG) NULL, (ULONG) NULL, (ULONG) NULL, (ULONG) NULL, (ULONG) NULL, false };
static RDArgs *ScummArgs = NULL;
@@ -64,7 +63,6 @@ static BPTR OrigDirLock = 0;
Library *CDDABase = NULL;
Library *TimerBase = NULL;
-struct Library* CyberGfxBase = NULL;
OSystem_MorphOS *TheSystem = NULL;
@@ -118,9 +116,6 @@ void close_resources()
if (CDDABase)
CloseLibrary(CDDABase);
-
- if (CyberGfxBase)
- CloseLibrary(CyberGfxBase);
}
static STRPTR FindMusicDriver(STRPTR argval)
@@ -254,10 +249,6 @@ int main()
char musicvol[6], sfxvol[6], talkspeed[12], tempo[12], scaler[14];
int argc = 0;
- CyberGfxBase = OpenLibrary("cybergraphics.library",50);
- if (CyberGfxBase == NULL)
- exit(1);
-
InitSemaphore(&ScummSoundThreadRunning);
InitSemaphore(&ScummMusicThreadRunning);
@@ -365,7 +356,8 @@ int main()
sprintf(talkspeed, "-y%d", ScummTalkSpeed);
argv[argc++] = talkspeed;
}
- argv[argc++] = ScummStory;
+ if (ScummStory)
+ argv[argc++] = ScummStory;
return morphos_main(argc, argv);
}