Initial commit

This commit is contained in:
2026-02-02 04:50:13 +01:00
commit 5b11698731
22592 changed files with 7677434 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#include "common/scummsys.h"
#if defined(__MORPHOS__)
#include "backends/fs/morphos/morphos-fs.h"
#include "backends/platform/sdl/morphos/morphos.h"
#include "backends/plugins/sdl/sdl-provider.h"
#include "base/main.h"
int main(int argc, char *argv[]) {
// Set a stack cookie to avoid crashes from a too low stack.
static const char *stack_cookie __attribute__((used)) = "$STACK: 4096000";
// Create our OSystem instance.
g_system = new OSystem_MorphOS();
assert(g_system);
// Pre-initialize the backend.
g_system->init();
#ifdef DYNAMIC_MODULES
PluginManager::instance().addPluginProvider(new SDLPluginProvider());
#endif
// Invoke the actual ScummVM main entry point.
int res = scummvm_main(argc, argv);
// Free OSystem.
g_system->destroy();
return res;
}
#endif

View File

@@ -0,0 +1,96 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#define FORBIDDEN_SYMBOL_EXCEPTION_printf
#include "common/scummsys.h"
#ifdef __MORPHOS__
#include "backends/platform/sdl/morphos/morphos.h"
#include "backends/fs/morphos/morphos-fs-factory.h"
#include "backends/dialogs/morphos/morphos-dialogs.h"
static bool cleanupDone = false;
static void cleanup() {
if (!cleanupDone)
g_system->destroy();
}
OSystem_MorphOS::~OSystem_MorphOS() {
cleanupDone = true;
}
void OSystem_MorphOS::init() {
// Register cleanup function to avoid unfreed signals
if (atexit(cleanup))
warning("Failed to register cleanup function via atexit()");
// Initialze File System Factory
_fsFactory = new MorphOSFilesystemFactory();
// Invoke parent implementation of this method
OSystem_SDL::init();
#if defined(USE_SYSDIALOGS)
_dialogManager = new MorphosDialogManager();
#endif
}
bool OSystem_MorphOS::hasFeature(Feature f) {
#if defined(USE_SYSDIALOGS)
if (f == kFeatureSystemBrowserDialog)
return true;
#endif
return OSystem_SDL::hasFeature(f);
}
void OSystem_MorphOS::initBackend() {
// First time user defaults
ConfMan.registerDefault("audio_buffer_size", "2048");
ConfMan.registerDefault("extrapath", Common::Path("PROGDIR:extras/"));
ConfMan.registerDefault("savepath", Common::Path("PROGDIR:saves/"));
ConfMan.registerDefault("themepath", Common::Path("PROGDIR:themes/"));
// First time .ini defaults
if (!ConfMan.hasKey("audio_buffer_size")) {
ConfMan.set("audio_buffer_size", "2048");
}
if (!ConfMan.hasKey("extrapath")) {
ConfMan.setPath("extrapath", "PROGDIR:extras/");
}
if (!ConfMan.hasKey("savepath")) {
ConfMan.setPath("savepath", "PROGDIR:saves/");
}
if (!ConfMan.hasKey("themepath")) {
ConfMan.setPath("themepath", "PROGDIR:themes/");
}
OSystem_SDL::initBackend();
}
void OSystem_MorphOS::logMessage(LogMessageType::Type type, const char * message) {
#ifdef DEBUG_BUILD
printf("%s\n", message);
#endif
}
#endif

View File

@@ -0,0 +1,41 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef PLATFORM_SDL_MORPHOS_H
#define PLATFORM_SDL_MORPHOS_H
#include "backends/platform/sdl/sdl.h"
#include "backends/base-backend.h"
class OSystem_MorphOS : public OSystem_SDL {
public:
OSystem_MorphOS() {}
virtual ~OSystem_MorphOS();
bool hasFeature(Feature f) override;
void init() override;
void initBackend() override;
void logMessage(LogMessageType::Type type, const char *message) override;
};
#endif

View File

@@ -0,0 +1,25 @@
# Special target to create an MorphOS snapshot installation.
# MorphOS shell doesn't like indented comments.
morphosdist: $(EXECUTABLE) $(PLUGINS)
mkdir -p $(MORPHOSPATH)extras
cp ${srcdir}/dists/amiga/scummvm.info $(MORPHOSPATH)/$(EXECUTABLE).info
ifdef DIST_FILES_DOCS
mkdir -p $(MORPHOSPATH)/doc
cp $(DIST_FILES_DOCS) $(MORPHOSPATH)doc/
$(foreach lang, $(DIST_FILES_DOCS_languages), makedir all $(MORPHOSPATH)/doc/$(lang); cp $(DIST_FILES_DOCS_$(lang)) $(MORPHOSPATH)/doc/$(lang);)
endif
ifdef DIST_FILES_ENGINEDATA
cp $(DIST_FILES_ENGINEDATA) $(MORPHOSPATH)extras/
endif
ifdef DIST_FILES_NETWORKING
cp $(DIST_FILES_NETWORKING) $(MORPHOSPATH)extras/
endif
ifdef DIST_FILES_VKEYBD
cp $(DIST_FILES_VKEYBD) $(MORPHOSPATH)extras/
endif
ifdef DIST_FILES_THEMES
mkdir -p $(MORPHOSPATH)themes
cp $(DIST_FILES_THEMES) $(MORPHOSPATH)themes/
endif
# Strip
$(STRIP) $(EXECUTABLE) -o $(MORPHOSPATH)$(EXECUTABLE)