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:
parent
61e26243d9
commit
849d05b5e2
20 changed files with 746 additions and 4 deletions
|
@ -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 \
|
||||
|
|
|
@ -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 \
|
||||
|
|
40
backends/platform/sdl/opendingux/README.BUILD
Normal file
40
backends/platform/sdl/opendingux/README.BUILD
Normal 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.
|
45
backends/platform/sdl/opendingux/README.OPENDINGUX
Normal file
45
backends/platform/sdl/opendingux/README.OPENDINGUX
Normal 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.
|
41
backends/platform/sdl/opendingux/build_odbeta.sh
Executable file
41
backends/platform/sdl/opendingux/build_odbeta.sh
Executable 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
|
45
backends/platform/sdl/opendingux/opendingux-main.cpp
Normal file
45
backends/platform/sdl/opendingux/opendingux-main.cpp
Normal 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;
|
||||
}
|
194
backends/platform/sdl/opendingux/opendingux.cpp
Normal file
194
backends/platform/sdl/opendingux/opendingux.cpp
Normal 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;
|
||||
}
|
||||
|
43
backends/platform/sdl/opendingux/opendingux.h
Normal file
43
backends/platform/sdl/opendingux/opendingux.h
Normal 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
|
56
backends/platform/sdl/opendingux/opendingux.mk
Normal file
56
backends/platform/sdl/opendingux/opendingux.mk
Normal 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
38
configure
vendored
|
@ -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
|
||||
|
|
BIN
dists/opendingux/fonts_mini.dat
Normal file
BIN
dists/opendingux/fonts_mini.dat
Normal file
Binary file not shown.
111
dists/opendingux/make-opk.sh
Executable file
111
dists/opendingux/make-opk.sh
Executable 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
|
||||
|
BIN
dists/opendingux/scummvm.png
Normal file
BIN
dists/opendingux/scummvm.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
26
dists/opendingux/scummvm.sh
Executable file
26
dists/opendingux/scummvm.sh
Executable 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
|
16
dists/opendingux/startGame.gcw0.desktop
Normal file
16
dists/opendingux/startGame.gcw0.desktop
Normal 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
|
16
dists/opendingux/startGame.lepus.desktop
Normal file
16
dists/opendingux/startGame.lepus.desktop
Normal 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
|
16
dists/opendingux/startGame.rg99.desktop
Normal file
16
dists/opendingux/startGame.rg99.desktop
Normal 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
|
16
dists/opendingux/startUI.gcw0.desktop
Normal file
16
dists/opendingux/startUI.gcw0.desktop
Normal 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
|
16
dists/opendingux/startUI.lepus.desktop
Normal file
16
dists/opendingux/startUI.lepus.desktop
Normal 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
|
16
dists/opendingux/startUI.rg99.desktop
Normal file
16
dists/opendingux/startUI.rg99.desktop
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue