OPENDINGUX: Add support for Opendingux Beta

OD Beta is a mips linux OS based on buildroot, that runs on ingenic gaming handhelds
like the gcw0, rg350 and many more.

There was a previous GCW0 port, that was running on legacy opendingux, but that
OS is not maintained since 2014 and has an outdated kernel and toolchain.

Od Beta on the other hand, runs with linux 5.15, has a GCC 10 toolchain and
an active developpment community.

This adds support for 3 flavors :

gcw0 that runs on all jz4770 cpus
lepus that runs on all jz4760 cpus
rg99 which is a jz4725 device

Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com>
This commit is contained in:
Christophe Branchereau 2021-10-12 10:30:58 +02:00 committed by Eugene Sandulenko
parent 61e26243d9
commit 849d05b5e2
20 changed files with 746 additions and 4 deletions

View file

@ -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 \

View file

@ -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 \

View file

@ -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.

View file

@ -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.

View file

@ -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

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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

View file

@ -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

38
configure vendored
View file

@ -782,8 +782,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
@ -829,6 +829,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
@ -1575,7 +1576,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
@ -3504,6 +3505,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
@ -3700,6 +3725,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"
@ -3889,7 +3919,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

Binary file not shown.

111
dists/opendingux/make-opk.sh Executable file
View file

@ -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} <folder> {--opk|-o} <file> [{--help|-h}]
Switches:
--directory / -d Sets the folder that is to be used for the resulting opk
to <folder>. 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 <file>.
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

26
dists/opendingux/scummvm.sh Executable file
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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