diff --git a/backends/module.mk b/backends/module.mk index 02082f30c79..49f9a30cc53 100644 --- a/backends/module.mk +++ b/backends/module.mk @@ -329,6 +329,15 @@ MODULE_OBJS += \ mixer/null/null-mixer.o endif +ifeq ($(BACKEND),opendingux) +MODULE_OBJS += \ + fs/posix/posix-fs.o \ + fs/posix/posix-fs-factory.o \ + fs/posix/posix-iostream.o \ + fs/posix-drives/posix-drives-fs.o \ + fs/posix-drives/posix-drives-fs-factory.o +endif + ifeq ($(BACKEND),openpandora) MODULE_OBJS += \ events/openpandora/op-events.o \ diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk index 18e8bd84578..277882afedd 100644 --- a/backends/platform/sdl/module.mk +++ b/backends/platform/sdl/module.mk @@ -46,6 +46,12 @@ MODULE_OBJS += \ morphos/morphos.o endif +ifdef OPENDINGUX +MODULE_OBJS += \ + opendingux/opendingux-main.o \ + opendingux/opendingux.o +endif + ifdef PLAYSTATION3 MODULE_OBJS += \ ps3/ps3-main.o \ diff --git a/backends/platform/sdl/opendingux/README.BUILD b/backends/platform/sdl/opendingux/README.BUILD new file mode 100644 index 00000000000..241803e394e --- /dev/null +++ b/backends/platform/sdl/opendingux/README.BUILD @@ -0,0 +1,40 @@ +Build instructions +================== +Running Linux on an x86/amd64 machine: + +1. Download and install the desired toolchain (http://od.abstraction.se/opendingux/toolchain/) in /opt/ + +2. git clone the ScummVM repository + +3. Run 'target=x backends/platform/sdl/opendingux/build_odbeta.sh' + where x=gcw0|lepus|rg99 + + Or if you want a dual opk with one launcher capable of starting games directly + for e.g. simplemenu integration : + 'target=x dualopk=yes backends/platform/sdl/opendingux/build_odbeta.s' + +4. Copy the resulting file scummvm_$(target).opk or scummvm_$(target)_dual.opk to your device + +Game Auto-Detection (dualopk only) +================================== +1) add a blank text file 'detect.svm' alongside your individual game folders, for example: + --------------- + | - roms/scummvm/ + | - detect.svm + | - Game Folder/ + | - game files + ------------------ +2) load ScummVM, navigate to and select 'detect.svm' + - the loading screen will show while the script runs + - this may take longer if you have many games + - .svm files will be generated for each of your games +3) load one of the .svm files to start your game directly + +Troubleshooting +=============== +In case you need to submit a bugreport, you may find the log file at the +following path: + + ~/.scummvm/scummvm.log + +The log file is being overwritten at every ScummVM run. diff --git a/backends/platform/sdl/opendingux/README.OPENDINGUX b/backends/platform/sdl/opendingux/README.OPENDINGUX new file mode 100644 index 00000000000..1706c539ef1 --- /dev/null +++ b/backends/platform/sdl/opendingux/README.OPENDINGUX @@ -0,0 +1,45 @@ +[ScummVM-Opendingux README] + +Controls +======== +Left Stick - Mouse +Left Stick+R - Slow Mouse +A - Left mouse click +B - Right mouse click +X - Escape +X+R - Return +Y - Period +Y+R - Space +L - Game Menu (F5) +R - Shift +Start - Global Menu +Select - Virtual Keyboard +Select+R - AGI predictive input dialog +D-pad - Keypad cursor keys +D-Pad+R - Diagonal cursor keys + +On devices that have no stick, d-pad is mouse, cursor keys are not binded + +Game Auto-Detection (dualopk only) +================================== +1) add a blank text file 'detect.svm' alongside your individual game folders, for example: + --------------- + | - roms/scummvm/ + | - detect.svm + | - Game Folder/ + | - game files + ------------------ +2) load ScummVM, navigate to and select 'detect.svm' + - the loading screen will show while the script runs + - this may take longer if you have many games + - .svm files will be generated for each of your games +3) load one of the .svm files to start your game directly + +Troubleshooting +=============== +In case you need to submit a bugreport, you may find the log file at the +following path: + + ~/.scummvm/scummvm.log + +The log file is being overwritten at every ScummVM run. diff --git a/backends/platform/sdl/opendingux/build_odbeta.sh b/backends/platform/sdl/opendingux/build_odbeta.sh new file mode 100755 index 00000000000..717eebace5e --- /dev/null +++ b/backends/platform/sdl/opendingux/build_odbeta.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +CONFIG="./configure --host=opendingux --enable-release --disable-detection-full" + +case $target in + + gcw0) + target2=$target + ;; + + lepus) + target2=$target + export DEFINES="-DLEPUS" + CONFIG+=" --disable-highres --disable-hq-scalers" + ;; + + rg99) + target2=rs90 + export DEFINES="-DRS90 -DDISABLE_FANCY_THEMES" + CONFIG+=" --disable-highres --disable-16bit --disable-scalers" + ;; + + *) + echo "please provide a valid target for the build: gcw0, lepus or rg99" + exit 0 + ;; +esac + +TOOLCHAIN=/opt/$target2-toolchain + +if [ $target == "gcw0" ]; then + SYSROOT=$TOOLCHAIN/mipsel-$target2-linux-uclibc +else + SYSROOT=$TOOLCHAIN/mipsel-$target2-linux-musl +fi + +export PATH=$TOOLCHAIN/usr/bin:$SYSROOT/usr/include:$TOOLCHAIN/bin:$PATH +export CXX=mipsel-linux-g++ +export CXXFLAGS="-funsigned-char" # workaround for a scummvm tolower() bug when adding games + +$CONFIG && make -j12 od-make-opk && ls -lh scummvm_$target*.opk diff --git a/backends/platform/sdl/opendingux/opendingux-main.cpp b/backends/platform/sdl/opendingux/opendingux-main.cpp new file mode 100644 index 00000000000..93216ca71bb --- /dev/null +++ b/backends/platform/sdl/opendingux/opendingux-main.cpp @@ -0,0 +1,45 @@ +/* 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "backends/platform/sdl/opendingux/opendingux.h" +#include "backends/plugins/sdl/sdl-provider.h" +#include "base/main.h" + +int main(int argc, char* argv[]) { + + g_system = new OSystem_SDL_Opendingux(); + assert(g_system); + + 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; +} diff --git a/backends/platform/sdl/opendingux/opendingux.cpp b/backends/platform/sdl/opendingux/opendingux.cpp new file mode 100644 index 00000000000..a3c84d244b0 --- /dev/null +++ b/backends/platform/sdl/opendingux/opendingux.cpp @@ -0,0 +1,194 @@ +/* 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#define FORBIDDEN_SYMBOL_EXCEPTION_system + +#include "common/scummsys.h" +#include "common/config-manager.h" +#include "common/translation.h" + +#include "backends/platform/sdl/opendingux/opendingux.h" + +#include "backends/fs/posix/posix-fs-factory.h" +#include "backends/fs/posix/posix-fs.h" +#include "backends/saves/default/default-saves.h" + +#include "backends/keymapper/action.h" +#include "backends/keymapper/keymapper-defaults.h" +#include "backends/keymapper/hardware-input.h" +#include "backends/keymapper/keymap.h" +#include "backends/keymapper/keymapper.h" + +#define SCUMM_DIR "~/.scummvm" +#define CONFIG_FILE "~/.scummvmrc" +#define SAVE_PATH "~/.scummvm/saves" +#define LOG_FILE "~/.scummvm/scummvm.log" +#define JOYSTICK_DIR "/sys/devices/platform/joystick" + +static const Common::KeyTableEntry odKeyboardButtons[] = { + { "JOY_A", Common::KEYCODE_LCTRL, _s("A") }, + { "JOY_B", Common::KEYCODE_LALT, _s("B") }, + { "JOY_X", Common::KEYCODE_SPACE, _s("X") }, + { "JOY_Y", Common::KEYCODE_LSHIFT, _s("Y") }, + { "JOY_BACK", Common::KEYCODE_ESCAPE, _s("Select") }, + { "JOY_START", Common::KEYCODE_RETURN, _s("Start") }, + { "JOY_LEFT_SHOULDER", Common::KEYCODE_TAB, _s("L") }, + { "JOY_RIGHT_SHOULDER", Common::KEYCODE_BACKSPACE, _s("R") }, + { "JOY_UP", Common::KEYCODE_UP, _s("D-pad Up") }, + { "JOY_DOWN", Common::KEYCODE_DOWN, _s("D-pad Down") }, + { "JOY_LEFT", Common::KEYCODE_LEFT, _s("D-pad Left") }, + { "JOY_RIGHT", Common::KEYCODE_RIGHT, _s("D-pad Right") }, + {0, Common::KEYCODE_INVALID, 0 } +}; + +static const Common::HardwareInputTableEntry odJoystickButtons[] = { + { "JOY_LEFT_TRIGGER", Common::JOYSTICK_BUTTON_LEFT_STICK, _s("L3") }, + { nullptr, 0, nullptr } +}; + +static const Common::AxisTableEntry odJoystickAxes[] = { + { "JOY_LEFT_STICK_X", Common::JOYSTICK_AXIS_LEFT_STICK_X, Common::kAxisTypeFull, _s("Left Stick X") }, + { "JOY_LEFT_STICK_Y", Common::JOYSTICK_AXIS_LEFT_STICK_Y, Common::kAxisTypeFull, _s("Left Stick Y") }, + { nullptr, 0, Common::kAxisTypeFull, nullptr } +}; + +Common::KeymapperDefaultBindings *OSystem_SDL_Opendingux::getKeymapperDefaultBindings() { + Common::KeymapperDefaultBindings *keymapperDefaultBindings = new Common::KeymapperDefaultBindings(); + + if (!Posix::assureDirectoryExists(JOYSTICK_DIR)) { + keymapperDefaultBindings->setDefaultBinding(Common::kGlobalKeymapName, "VMOUSEUP", "JOY_UP"); + keymapperDefaultBindings->setDefaultBinding(Common::kGlobalKeymapName, "VMOUSEDOWN", "JOY_DOWN"); + keymapperDefaultBindings->setDefaultBinding(Common::kGlobalKeymapName, "VMOUSELEFT", "JOY_LEFT"); + keymapperDefaultBindings->setDefaultBinding(Common::kGlobalKeymapName, "VMOUSERIGHT", "JOY_RIGHT"); + keymapperDefaultBindings->setDefaultBinding(Common::kGuiKeymapName, "UP", ""); + keymapperDefaultBindings->setDefaultBinding(Common::kGuiKeymapName, "DOWN", ""); + keymapperDefaultBindings->setDefaultBinding(Common::kGuiKeymapName, "LEFT", ""); + keymapperDefaultBindings->setDefaultBinding(Common::kGuiKeymapName, "RIGHT", ""); + keymapperDefaultBindings->setDefaultBinding("engine-default", "UP", ""); + keymapperDefaultBindings->setDefaultBinding("engine-default", "DOWN", ""); + keymapperDefaultBindings->setDefaultBinding("engine-default", "LEFT", ""); + keymapperDefaultBindings->setDefaultBinding("engine-default", "RIGHT", ""); + } + + return keymapperDefaultBindings; +} + +void OSystem_SDL_Opendingux::init() { + + _fsFactory = new POSIXFilesystemFactory(); + if (!Posix::assureDirectoryExists(SCUMM_DIR)) { + system("mkdir " SCUMM_DIR); + } + + // Invoke parent implementation of this method + OSystem_SDL::init(); +} + +void OSystem_SDL_Opendingux::initBackend() { + ConfMan.registerDefault("fullscreen", true); + ConfMan.registerDefault("aspect_ratio", true); + ConfMan.registerDefault("themepath", "./themes"); + ConfMan.registerDefault("extrapath", "./engine-data"); + ConfMan.registerDefault("gui_theme", "builtin"); + ConfMan.registerDefault("scale_factor", "1"); + + ConfMan.setBool("fullscreen", true); + ConfMan.setInt("joystick_num", 0); + + if (!ConfMan.hasKey("aspect_ratio")) { + ConfMan.setBool("aspect_ratio", true); + } + if (!ConfMan.hasKey("themepath")) { + ConfMan.set("themepath", "./themes"); + } + if (!ConfMan.hasKey("extrapath")) { + ConfMan.set("extrapath", "./engine-data"); + } + if (!ConfMan.hasKey("savepath")) { + ConfMan.set("savepath", SAVE_PATH); + } + if (!ConfMan.hasKey("gui_theme")) { + ConfMan.set("gui_theme", "builtin"); + } + if (!ConfMan.hasKey("scale_factor")) { + ConfMan.set("scale_factor", "1"); + } + if (!ConfMan.hasKey("opl_driver")) { + ConfMan.set("opl_driver", "db"); + } +#ifdef LEPUS + if (!ConfMan.hasKey("output_rate")) { + ConfMan.set("output_rate", "22050"); + } +#elif RS90 + if (!ConfMan.hasKey("output_rate")) { + ConfMan.set("output_rate", "11025"); + } +#endif + // Create the savefile manager + if (_savefileManager == 0) { + _savefileManager = new DefaultSaveFileManager(SAVE_PATH); + } + + OSystem_SDL::initBackend(); +} + +Common::String OSystem_SDL_Opendingux::getDefaultConfigFileName() { + return CONFIG_FILE; + +} + +Common::String OSystem_SDL_Opendingux::getDefaultLogFileName() { + return LOG_FILE; +} + +bool OSystem_SDL_Opendingux::hasFeature(Feature f) { + if (f == kFeatureFullscreenMode) + return false; + if (f == kFeatureAspectRatioCorrection) + return false; + + return OSystem_SDL::hasFeature(f); +} + +void OSystem_SDL_Opendingux::setFeatureState(Feature f, bool enable) { + OSystem_SDL::setFeatureState(f, enable); + } + +bool OSystem_SDL_Opendingux::getFeatureState(Feature f) { + return OSystem_SDL::getFeatureState(f); +} + +Common::HardwareInputSet *OSystem_SDL_Opendingux::getHardwareInputSet() { + using namespace Common; + + CompositeHardwareInputSet *inputSet = new CompositeHardwareInputSet(); + + // Users may use USB mice - keyboards currently not possible with SDL1 as it conflicts with gpios + inputSet->addHardwareInputSet(new MouseHardwareInputSet(defaultMouseButtons)); + //inputSet->addHardwareInputSet(new KeyboardHardwareInputSet(defaultKeys, defaultModifiers)); + inputSet->addHardwareInputSet(new KeyboardHardwareInputSet(odKeyboardButtons, defaultModifiers)); + inputSet->addHardwareInputSet(new JoystickHardwareInputSet(odJoystickButtons, odJoystickAxes)); + + return inputSet; +} + diff --git a/backends/platform/sdl/opendingux/opendingux.h b/backends/platform/sdl/opendingux/opendingux.h new file mode 100644 index 00000000000..5c76fec4ac0 --- /dev/null +++ b/backends/platform/sdl/opendingux/opendingux.h @@ -0,0 +1,43 @@ +/* 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef PLATFORM_SDL_OPENDINGUX_H +#define PLATFORM_SDL_OPENDINGUX_H + +#include "backends/platform/sdl/sdl.h" + +class OSystem_SDL_Opendingux : public OSystem_SDL { +public: + virtual void init() override; + virtual void initBackend() override; + virtual bool hasFeature(Feature f) override; + virtual void setFeatureState(Feature f, bool enable) override; + virtual bool getFeatureState(Feature f) override; + virtual Common::HardwareInputSet *getHardwareInputSet() override; + virtual Common::KeymapperDefaultBindings *getKeymapperDefaultBindings() override; + +protected: + virtual Common::String getDefaultConfigFileName() override; + virtual Common::String getDefaultLogFileName() override; +}; + +#endif diff --git a/backends/platform/sdl/opendingux/opendingux.mk b/backends/platform/sdl/opendingux/opendingux.mk new file mode 100644 index 00000000000..3a3f3ab6069 --- /dev/null +++ b/backends/platform/sdl/opendingux/opendingux.mk @@ -0,0 +1,56 @@ +OD_EXE_STRIPPED := scummvm_stripped$(EXEEXT) +bundle = od-opk + +all: $(OD_EXE_STRIPPED) + +$(OD_EXE_STRIPPED): $(EXECUTABLE) + $(STRIP) $< -o $@ + +$(bundle): all + $(MKDIR) $(bundle) + $(CP) $(DIST_FILES_DOCS) $(bundle)/ + +ifneq ($(target), rg99) + $(MKDIR) $(bundle)/themes + $(CP) $(DIST_FILES_THEMES) $(bundle)/themes/ +endif + +ifdef DIST_FILES_ENGINEDATA + $(MKDIR) $(bundle)/engine-data + $(CP) $(DIST_FILES_ENGINEDATA) $(bundle)/engine-data/ +ifeq ($(target), rg99) + $(CP) $(srcdir)/dists/opendingux/fonts_mini.dat $(bundle)/engine-data/fonts.dat +endif +endif +ifdef DIST_FILES_NETWORKING + $(CP) $(DIST_FILES_NETWORKING) $(bundle)/ +endif +ifdef DIST_FILES_VKEYBD + $(CP) $(DIST_FILES_VKEYBD) $(bundle)/ +endif +ifdef DYNAMIC_MODULES + $(MKDIR) $(bundle)/plugins + $(CP) $(PLUGINS) $(bundle)/plugins/ +endif + $(CP) $(EXECUTABLE) $(bundle)/scummvm + + $(CP) $(srcdir)/dists/opendingux/scummvm.png $(bundle)/ + $(CP) $(srcdir)/dists/opendingux/startUI.$(target).desktop $(bundle)/ +ifdef dualopk + $(CP) $(srcdir)/dists/opendingux/startGame.$(target).desktop $(bundle)/ + $(CP) $(srcdir)/dists/opendingux/scummvm.sh $(bundle)/ +endif + $(CP) $(srcdir)/backends/platform/sdl/opendingux/README.OPENDINGUX $(bundle)/README.man.txt + echo >> $(bundle)/README.man.txt + echo '[General README]' >> $(bundle)/README.man.txt + echo >> $(bundle)/README.man.txt + cat $(srcdir)/README.md | sed -e 's/\[/⟦/g' -e 's/\]/⟧/g' -e '/^1\.1)/,$$ s/^[0-9][0-9]*\.[0-9][0-9]*.*/\[&\]/' >> $(bundle)/README.man.txt + +od-make-opk: $(bundle) + $(STRIP) $(bundle)/scummvm + +ifdef dualopk + $(srcdir)/dists/opendingux/make-opk.sh -d $(bundle) -o scummvm_$(target)_dual +else + $(srcdir)/dists/opendingux/make-opk.sh -d $(bundle) -o scummvm_$(target) +endif diff --git a/configure b/configure index 0951e9abaae..45d1bb67112 100755 --- a/configure +++ b/configure @@ -784,8 +784,8 @@ Usage: $0 [OPTIONS]... Configuration: -h, --help display this help and exit --backend=BACKEND backend to build (3ds, android, dc, dingux, ds, gcw0, - gph, iphone, ios7, ios7-arm64, maemo, n64, null, openpandora, - psp, psp2, samsungtv, sdl, switch, wii) [sdl] + gph, iphone, ios7, ios7-arm64, maemo, n64, null, opendingux, + openpandora, psp, psp2, samsungtv, sdl, switch, wii) [sdl] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -831,6 +831,7 @@ Special configuration feature: ios7-arm64 for Apple iPhone / iPad (iOS >= 7, 64-bit) maemo for Nokia Maemo n64 for Nintendo 64 + opendingux for Opendingux Beta openpandora for OpenPandora ouya for OUYA ps3 for PlayStation 3 @@ -1584,7 +1585,7 @@ caanoo) _host_cpu=arm _host_alias=arm-none-linux-gnueabi ;; -dingux | gcw0) +dingux | gcw0 | opendingux) _host_os=linux _host_cpu=mipsel _host_alias=mipsel-linux @@ -3518,6 +3519,30 @@ if test -n "$_host"; then _build_hq_scalers=no _mt32emu=no ;; + opendingux) + _sysroot=`$CXX --print-sysroot` + _sdlpath=$_sysroot/usr/bin + append_var DEFINES "-DDINGUX -DOPENDINGUX -DREDUCE_MEMORY_USAGE" + append_var CXXFLAGS "-ffast-math -fdata-sections -ffunction-sections -mplt -mno-shared" + append_var LDFLAGS "-ffast-math -fdata-sections -ffunction-sections -mplt -mno-shared" + append_var LDFLAGS "-O3 -Wl,--as-needed,--gc-sections" + _vkeybd=yes + _alsa=no + _vorbis=no + _mt32emu=no + _timidity=no + _fluidsynth=no + _theoradec=no + _seq_midi=no + _nuked_opl=no + _curl=no + _cloud=no + _sdlnet=no + _optimization_level=-O3 + _backend="opendingux" + _port_mk="backends/platform/sdl/opendingux/opendingux.mk" + add_line_to_config_mk 'OPENDINGUX = 1' + ;; openpandora) # Use -O3 on the OpenPandora for optimized builds. if test "$_optimizations" = yes; then @@ -3714,6 +3739,11 @@ case $_backend in append_var DEFINES "-DUSE_NULL_DRIVER" _text_console=yes ;; + opendingux) + _sdlconfig=sdl-config + _sdl=auto + append_var MODULES "backends/platform/sdl" + ;; openpandora) append_var DEFINES "-DOPENPANDORA" append_var DEFINES "-DREDUCE_MEMORY_USAGE" @@ -3903,7 +3933,7 @@ fi # Enable 16bit support only for backends which support it # case $_backend in - 3ds | android | android3d | androidsdl | dingux | dc | ds | gph | iphone | ios7 | maemo | null | openpandora | psp | psp2 | samsungtv | sdl | switch | wii) + 3ds | android | android3d | androidsdl | dingux | dc | ds | gph | iphone | ios7 | maemo | null | opendingux | openpandora | psp | psp2 | samsungtv | sdl | switch | wii) if test "$_16bit" = auto ; then _16bit=yes else diff --git a/dists/opendingux/fonts_mini.dat b/dists/opendingux/fonts_mini.dat new file mode 100644 index 00000000000..c5c4efefb68 Binary files /dev/null and b/dists/opendingux/fonts_mini.dat differ diff --git a/dists/opendingux/make-opk.sh b/dists/opendingux/make-opk.sh new file mode 100755 index 00000000000..e4b5b507695 --- /dev/null +++ b/dists/opendingux/make-opk.sh @@ -0,0 +1,111 @@ +#!/bin/bash +# +# opk_make.sh +# +# This script is meant to ease generation of a opk file. Please consult the output +# when running --help for a list of available parameters and an explaination of +# those. +# +# Required tools when running the script: +# bash +# echo, cat, mv, rm, mksquashfs + +check_for_tool() +{ + which $1 &> /dev/null + if [ "$?" -ne "0" ]; + then + cecho "ERROR: Could not find the program '$1'. Please make sure +that it is available in your PATH since it is required to complete your request." $red + exit 1 + fi +} + +print_help() +{ + cat << EOSTREAM +opk_make.sh - A script to package "something" into a OPK. + +Usage: + $(basename ${0}) {--directory|-d} {--opk|-o} [{--help|-h}] + + +Switches: + --directory / -d Sets the folder that is to be used for the resulting opk + to . This option is mandatory for the script to + function correctly. + + --help / -h Displays this help text. + + --opkname / -o Sets the output filename of the resulting opk to . + This option is mandatory for the script to function + correctly. + +A version >=4.0 of squashfs is required to be available in your PATH. +EOSTREAM +} + + +# Parse command line parameters +while [ "${1}" != "" ]; do + if [ "${1}" = "--directory" ] || [ "${1}" = "-d" ]; + then + FOLDER=$2 + shift 2 + elif [ "${1}" = "--help" ] || [ "${1}" = "-h" ]; + then + print_help + exit 0 + elif [ "${1}" = "--opkname" ] || [ "${1}" = "-o" ]; + then + OPKNAME=$2 + shift 2 + else + echo "ERROR: '$1' is not a known argument. Printing --help and aborting." + print_help + exit 1 + fi +done + + +# Probe if required variables were set +echo "Checking if all required variables were set." +if [ ! $OPKNAME ] || [ ! $FOLDER ]; +then + echo "ERROR: Not all required options were set! Please see the --help information below." + print_help + exit 1 +else + echo "OPKNAME set to '$OPKNAME'." +fi +# Check if the selected folder actually exists +if [ ! -d $FOLDER ]; +then + echo "ERROR: '$FOLDER' doesn't exist or is not a folder." + exit 1 +else + echo "FOLDER set to '$FOLDER'." +fi + +# Make iso from folder +echo "Creating an iso file based on '$FOLDER'." + +check_for_tool mksquashfs +if [ $(/usr/bin/mksquashfs -version | awk 'BEGIN{r=0} $3>=4{r=1} END{print r}') -eq 0 ]; +then + echo "ERROR: Your squashfs version is older then version 4, please upgrade to 4.0 or later" + exit 1 +fi +/usr/bin/mksquashfs $FOLDER $OPKNAME.opk -noappend -no-exports -no-xattrs + +# Final message +if [ -f $OPKNAME.opk ]; +then + echo "Successfully finished creating the opk '$OPKNAME'." +else + echo "There seems to have been a problem and '$OPKNAME' was not created. Please check +the output above for any error messages. A possible cause for this is that there was +not enough space available." + exit 1 +fi + diff --git a/dists/opendingux/scummvm.png b/dists/opendingux/scummvm.png new file mode 100644 index 00000000000..1040b442ea2 Binary files /dev/null and b/dists/opendingux/scummvm.png differ diff --git a/dists/opendingux/scummvm.sh b/dists/opendingux/scummvm.sh new file mode 100755 index 00000000000..4eb9b34f835 --- /dev/null +++ b/dists/opendingux/scummvm.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +cd `dirname $0` + +if [ ! -f "$1" ]; then + exec ./scummvm 2>&1 >/var/tmp/scummvm.log +fi + +path=`dirname "$1"` +file=`basename "$1"` + +if [ "$file" == "detect.svm" ]; then + ./scummvm --path="$path" --add --recursive 2>&1 >/var/tmp/scummvm.log + ./scummvm --list-targets | + sed 's/\//-/g' | sed 's/://g' | + while IFS=' ' read id title; do + case $id in + Target) ;; + ---*) ;; + *) echo "$id" > "$path/$title.svm" ;; + esac + done +else + gameid=`cat "$1"` + exec ./scummvm $gameid 2>&1 >/var/tmp/scummvm.log +fi diff --git a/dists/opendingux/startGame.gcw0.desktop b/dists/opendingux/startGame.gcw0.desktop new file mode 100644 index 00000000000..90568e298a7 --- /dev/null +++ b/dists/opendingux/startGame.gcw0.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=ScummVM +Comment=Interpreter for several adventure games +Comment[pl]=Interpreter graficznych gier przygodowych +Comment[sv]=Tolk för flera äventyrsspel +Comment[he]=פרשן למספר משחקי הרפתקאות +Comment[de]=Interpreter für diverse Abenteuerspiele +Comment[es]=Intérprete para varias aventuras gráficas +Comment[ca]=Intèrpret per diverses aventures gràfiques +Exec=env SDL_VIDEO_KMSDRM_SCALING_MODE=1 ./scummvm.sh %f +Icon=scummvm +Terminal=false +Type=Application +Categories=games; +StartupNotify=false +X-OD-Manual=README.man.txt diff --git a/dists/opendingux/startGame.lepus.desktop b/dists/opendingux/startGame.lepus.desktop new file mode 100644 index 00000000000..90568e298a7 --- /dev/null +++ b/dists/opendingux/startGame.lepus.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=ScummVM +Comment=Interpreter for several adventure games +Comment[pl]=Interpreter graficznych gier przygodowych +Comment[sv]=Tolk för flera äventyrsspel +Comment[he]=פרשן למספר משחקי הרפתקאות +Comment[de]=Interpreter für diverse Abenteuerspiele +Comment[es]=Intérprete para varias aventuras gráficas +Comment[ca]=Intèrpret per diverses aventures gràfiques +Exec=env SDL_VIDEO_KMSDRM_SCALING_MODE=1 ./scummvm.sh %f +Icon=scummvm +Terminal=false +Type=Application +Categories=games; +StartupNotify=false +X-OD-Manual=README.man.txt diff --git a/dists/opendingux/startGame.rg99.desktop b/dists/opendingux/startGame.rg99.desktop new file mode 100644 index 00000000000..90568e298a7 --- /dev/null +++ b/dists/opendingux/startGame.rg99.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=ScummVM +Comment=Interpreter for several adventure games +Comment[pl]=Interpreter graficznych gier przygodowych +Comment[sv]=Tolk för flera äventyrsspel +Comment[he]=פרשן למספר משחקי הרפתקאות +Comment[de]=Interpreter für diverse Abenteuerspiele +Comment[es]=Intérprete para varias aventuras gráficas +Comment[ca]=Intèrpret per diverses aventures gràfiques +Exec=env SDL_VIDEO_KMSDRM_SCALING_MODE=1 ./scummvm.sh %f +Icon=scummvm +Terminal=false +Type=Application +Categories=games; +StartupNotify=false +X-OD-Manual=README.man.txt diff --git a/dists/opendingux/startUI.gcw0.desktop b/dists/opendingux/startUI.gcw0.desktop new file mode 100644 index 00000000000..9525a55f2e4 --- /dev/null +++ b/dists/opendingux/startUI.gcw0.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=ScummVM UI +Comment=Interpreter for several adventure games +Comment[pl]=Interpreter graficznych gier przygodowych +Comment[sv]=Tolk för flera äventyrsspel +Comment[he]=פרשן למספר משחקי הרפתקאות +Comment[de]=Interpreter für diverse Abenteuerspiele +Comment[es]=Intérprete para varias aventuras gráficas +Comment[ca]=Intèrpret per diverses aventures gràfiques +Exec=env SDL_VIDEO_KMSDRM_SCALING_MODE=1 ./scummvm +Icon=scummvm +Terminal=false +Type=Application +Categories=games; +StartupNotify=false +X-OD-Manual=README.man.txt diff --git a/dists/opendingux/startUI.lepus.desktop b/dists/opendingux/startUI.lepus.desktop new file mode 100644 index 00000000000..9525a55f2e4 --- /dev/null +++ b/dists/opendingux/startUI.lepus.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=ScummVM UI +Comment=Interpreter for several adventure games +Comment[pl]=Interpreter graficznych gier przygodowych +Comment[sv]=Tolk för flera äventyrsspel +Comment[he]=פרשן למספר משחקי הרפתקאות +Comment[de]=Interpreter für diverse Abenteuerspiele +Comment[es]=Intérprete para varias aventuras gráficas +Comment[ca]=Intèrpret per diverses aventures gràfiques +Exec=env SDL_VIDEO_KMSDRM_SCALING_MODE=1 ./scummvm +Icon=scummvm +Terminal=false +Type=Application +Categories=games; +StartupNotify=false +X-OD-Manual=README.man.txt diff --git a/dists/opendingux/startUI.rg99.desktop b/dists/opendingux/startUI.rg99.desktop new file mode 100644 index 00000000000..9525a55f2e4 --- /dev/null +++ b/dists/opendingux/startUI.rg99.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=ScummVM UI +Comment=Interpreter for several adventure games +Comment[pl]=Interpreter graficznych gier przygodowych +Comment[sv]=Tolk för flera äventyrsspel +Comment[he]=פרשן למספר משחקי הרפתקאות +Comment[de]=Interpreter für diverse Abenteuerspiele +Comment[es]=Intérprete para varias aventuras gráficas +Comment[ca]=Intèrpret per diverses aventures gràfiques +Exec=env SDL_VIDEO_KMSDRM_SCALING_MODE=1 ./scummvm +Icon=scummvm +Terminal=false +Type=Application +Categories=games; +StartupNotify=false +X-OD-Manual=README.man.txt