64 bit Raspberry Pi builds working.
This commit is contained in:
parent
3021501a6e
commit
0914c760a1
5 changed files with 254 additions and 12 deletions
140
CHANGELOG
140
CHANGELOG
|
@ -84,3 +84,143 @@ Fixes
|
||||||
- Building Singe depended on a lot of undocumented software cobbled together
|
- Building Singe depended on a lot of undocumented software cobbled together
|
||||||
from other projects. This has been vastly improved and should be usable by
|
from other projects. This has been vastly improved and should be usable by
|
||||||
actual humans now. Humans running Linux anyway.
|
actual humans now. Humans running Linux anyway.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
SINGE 2.00
|
||||||
|
==========
|
||||||
|
|
||||||
|
Released October 25th, 2020
|
||||||
|
|
||||||
|
|
||||||
|
New Features
|
||||||
|
------------
|
||||||
|
|
||||||
|
- Complete rewrite! No more dependency on Daphne.
|
||||||
|
|
||||||
|
- Support for almost every (non-patent encumbered) video and audio format
|
||||||
|
that can be played by FFMPEG.
|
||||||
|
|
||||||
|
- High definition video.
|
||||||
|
|
||||||
|
- 32 bit color.
|
||||||
|
|
||||||
|
- Additional videos can be played on top the laserdisc video.
|
||||||
|
|
||||||
|
- Scaled sprites.
|
||||||
|
|
||||||
|
- Graphics overlay resolution no longer dependent on video resolution.
|
||||||
|
|
||||||
|
- Analog controllers.
|
||||||
|
|
||||||
|
- LuaSocket and LuaFileSystem added to runtime.
|
||||||
|
|
||||||
|
- Ability to chain scripts together for menus or launchers.
|
||||||
|
|
||||||
|
- Specify if you want gun games to display on-screen crosshairs or not.
|
||||||
|
|
||||||
|
- Menu for launching games included.
|
||||||
|
|
||||||
|
- Many updates to Framework.singe to support the new APIs.
|
||||||
|
|
||||||
|
- New APIs:
|
||||||
|
- controllerGetAxis
|
||||||
|
- discGetHeight
|
||||||
|
- discGetWidth
|
||||||
|
- fontUnload
|
||||||
|
- mouseGetPosition
|
||||||
|
- mouseSetCaptured
|
||||||
|
- overlayBox
|
||||||
|
- overlayCircle
|
||||||
|
- overlayEllipse
|
||||||
|
- overlayLine
|
||||||
|
- overlayPlot
|
||||||
|
- overlaySetResolution
|
||||||
|
- scriptExecute
|
||||||
|
- scriptPush
|
||||||
|
- singeWantsCrosshairs
|
||||||
|
- soundUnload
|
||||||
|
- spriteGetHeight
|
||||||
|
- spriteGetWidth
|
||||||
|
- spriteUnload
|
||||||
|
- videoDraw
|
||||||
|
- videoGetFrame
|
||||||
|
- videoGetFrameCount
|
||||||
|
- videoGetHeight
|
||||||
|
- videoGetVolume
|
||||||
|
- videoGetWidth
|
||||||
|
- videoIsPlaying
|
||||||
|
- videoLoad
|
||||||
|
- videoPause
|
||||||
|
- videoPlay
|
||||||
|
- videoSeek
|
||||||
|
- videoSetVolume
|
||||||
|
- videoUnload
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
SINGE 1.14 - 1.19
|
||||||
|
=================
|
||||||
|
|
||||||
|
Released ?
|
||||||
|
|
||||||
|
|
||||||
|
Notes
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Unofficial fan builds.
|
||||||
|
- Stand-alone releases.
|
||||||
|
|
||||||
|
|
||||||
|
New Features
|
||||||
|
------------
|
||||||
|
|
||||||
|
- New API functions:
|
||||||
|
- discPauseAtFrame
|
||||||
|
- mouseEnable
|
||||||
|
- mouseDisable
|
||||||
|
- mouseHowMany
|
||||||
|
- mouseSetMode
|
||||||
|
- singeDisablePauseKey
|
||||||
|
- singeEnablePauseKey
|
||||||
|
- singeGetScriptPath
|
||||||
|
- singeSetGameName
|
||||||
|
- soundFullStop
|
||||||
|
- soundGetVolume
|
||||||
|
- soundIsPlaying
|
||||||
|
- soundPause
|
||||||
|
- soundResume
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
SINGE 1.10 - 1.14
|
||||||
|
=================
|
||||||
|
|
||||||
|
Released ?
|
||||||
|
|
||||||
|
|
||||||
|
Notes
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Unofficial fan builds.
|
||||||
|
- DLL releases for Daphne.
|
||||||
|
|
||||||
|
|
||||||
|
New Features
|
||||||
|
------------
|
||||||
|
|
||||||
|
- New API functions:
|
||||||
|
- discGetState
|
||||||
|
- keyboardGetMode
|
||||||
|
- keyboardSetMode
|
||||||
|
- singeGetPauseFlag
|
||||||
|
- singeSetPauseFlag
|
||||||
|
- singeQuit
|
||||||
|
- singeVersion
|
||||||
|
- soundStop
|
||||||
|
|
BIN
assets/Manual.docx
(Stored with Git LFS)
BIN
assets/Manual.docx
(Stored with Git LFS)
Binary file not shown.
|
@ -157,12 +157,18 @@ Analog and Digital Input Device Support
|
||||||
Wide Support for Video and Audio Formats
|
Wide Support for Video and Audio Formats
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
For players, Singe allows many unemulated and new games to be enjoyed using
|
||||||
|
any desired front end or via the included menu system.
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Since the original release of Singe back in 2006, several revisions have
|
Since the original release of Singe back in 2006, several revisions have
|
||||||
been released, both officially and unofficially.
|
been released, both officially and unofficially.
|
||||||
In 2020, Singe 2.00 was released.
|
In 2020, Singe 2.00 was released.
|
||||||
This was a total rewrite from the ground up adding numerous features while
|
This was a total rewrite from the ground up adding numerous features while
|
||||||
staying compatible with existing 1.x games.
|
staying compatible with existing 1.xx games.
|
||||||
As of the writing of this manual, the latest release is 2.10.
|
As of the writing of this manual, the latest release is 2.10.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -170,6 +176,34 @@ Since the original release of Singe back in 2006, several revisions have
|
||||||
Installation and Upgrading
|
Installation and Upgrading
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Section
|
||||||
|
Installing Singe
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
To install Singe, simply download the appropriate binary for your system.
|
||||||
|
Place it in a new folder by itself and run it.
|
||||||
|
On the first run, Singe will create all the necessary directories and support
|
||||||
|
files needed.
|
||||||
|
You’re now ready to install some games!
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Section
|
||||||
|
Upgrading Singe
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
To upgrade Singe to a newer version, place the new binary in the installation
|
||||||
|
folder and rename (or delete) the existing <InstallDir>/Singe folder.
|
||||||
|
As with the initial installation, run the new binary with no command line
|
||||||
|
arguments to generate the new support files.
|
||||||
|
DO NOT run a new Singe binary with an out-of-date set of support files!
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Section
|
||||||
|
Things to Know
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Don't touch the Singe/ folder!
|
Don't touch the Singe/ folder!
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -182,10 +216,56 @@ Usage
|
||||||
Installing Games
|
Installing Games
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Games designed for Singe 2.x and later simply need to be unpacked and copied
|
||||||
|
into the same folder where you placed the Singe binary.
|
||||||
|
The included menu system will automatically detect them and add them to
|
||||||
|
the menu.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
Customizing the Controls
|
Customizing the Controls
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
By default, Singe maps controllers as if they were Xbox 360 gamepads.
|
||||||
|
If your controller is not recognized or you wish to change the default
|
||||||
|
mappings as they appear to Singe, you can use the free SDL2 Gamepad Tool
|
||||||
|
from http://generalarcade.com/gamepadtool/.
|
||||||
|
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
In addition to configuring your controller, you can remap all the input
|
||||||
|
options for Singe as a whole or for any individual game by using controls.cfg
|
||||||
|
files.
|
||||||
|
When determining how inputs are mapped, Singe begins with the default settings
|
||||||
|
and then applies changes specified in controls.cfg files in the following
|
||||||
|
order:
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Enumerate
|
||||||
|
1.
|
||||||
|
The main data directory
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Enumerate
|
||||||
|
2.
|
||||||
|
The per-game data directory
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Enumerate
|
||||||
|
3.
|
||||||
|
The game script directory
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
After installing Singe, you can find a sample input configuration file at
|
||||||
|
<InstallDir>/Singe/controls.cfg.example.
|
||||||
|
To see the available configuration options available to be used in this
|
||||||
|
file, read through <InstallDir>/Singe/Framework.singe.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Part
|
\begin_layout Part
|
||||||
Frequently Asked Questions
|
Frequently Asked Questions
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -313,6 +393,10 @@ You should have sound again.
|
||||||
Load up Singe, and your audio will be working and lag free!
|
Load up Singe, and your audio will be working and lag free!
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Part
|
||||||
|
History
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Part
|
\begin_layout Part
|
||||||
Game Development
|
Game Development
|
||||||
\end_layout
|
\end_layout
|
||||||
|
@ -1629,6 +1713,10 @@ GAMES = {
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Section
|
||||||
|
Included Libraries
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
API
|
API
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
31
build-all.sh
31
build-all.sh
|
@ -38,8 +38,7 @@ function buildAll() {
|
||||||
|
|
||||||
G_TARGET=${G_BUILDROOT}/${G_BUILDDIR}/${OS}/${ARCH}
|
G_TARGET=${G_BUILDROOT}/${G_BUILDDIR}/${OS}/${ARCH}
|
||||||
G_GENERATED=${G_TARGET}/generated
|
G_GENERATED=${G_TARGET}/generated
|
||||||
COMMON="-DCMAKE_INSTALL_PREFIX=${G_TARGET} -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE}"
|
COMMON="-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${G_TARGET} -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE}"
|
||||||
# Add CMAKE_BUILD_TYPE to COMMON
|
|
||||||
|
|
||||||
export LDFLAGS="-L${G_TARGET}/lib ${LDFLAGS}"
|
export LDFLAGS="-L${G_TARGET}/lib ${LDFLAGS}"
|
||||||
export CFLAGS="-I${G_TARGET}/include ${CFLAGS}"
|
export CFLAGS="-I${G_TARGET}/include ${CFLAGS}"
|
||||||
|
@ -49,7 +48,14 @@ function buildAll() {
|
||||||
|
|
||||||
mkdir -p ${G_GENERATED}
|
mkdir -p ${G_GENERATED}
|
||||||
|
|
||||||
if [[ 0 == 1 ]]; then
|
# Needed for Pi sysroot.
|
||||||
|
if [[ "${OS}" == "pi" ]]; then
|
||||||
|
export CFLAGS="--sysroot=${SYSROOT} ${CFLAGS}"
|
||||||
|
export CXXFLAGS="--sysroot=${SYSROOT} ${CXXFLAGS}"
|
||||||
|
sudo chroot ${SYSROOT} apt-get -y install libasound-dev libxi-dev libvdpau-dev
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ 1 == 1 ]]; then
|
||||||
pushd thirdparty/bzip2
|
pushd thirdparty/bzip2
|
||||||
clearAndEnterBuild
|
clearAndEnterBuild
|
||||||
cmake ${COMMON} \
|
cmake ${COMMON} \
|
||||||
|
@ -205,7 +211,13 @@ if [[ 0 == 1 ]]; then
|
||||||
else
|
else
|
||||||
OPT1=""
|
OPT1=""
|
||||||
fi
|
fi
|
||||||
# --cross-compile-prefix="${TRIPLE}-" \
|
if [[ "${OS}" == "pi" ]]; then
|
||||||
|
if [[ "${ARCH}" == "aarch64" ]]; then
|
||||||
|
OPT1="linux-aarch64"
|
||||||
|
else
|
||||||
|
OPT1="linux-arm4"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
../Configure ${OPT1} \
|
../Configure ${OPT1} \
|
||||||
--prefix="${G_TARGET}" \
|
--prefix="${G_TARGET}" \
|
||||||
--libdir=lib \
|
--libdir=lib \
|
||||||
|
@ -231,6 +243,11 @@ if [[ 0 == 1 ]]; then
|
||||||
thirdparty/luasocket/src/*.h \
|
thirdparty/luasocket/src/*.h \
|
||||||
"${G_TARGET}/include/luasocket/."
|
"${G_TARGET}/include/luasocket/."
|
||||||
|
|
||||||
|
if [[ "${OS}" == "pi" ]]; then
|
||||||
|
# Hack to make ffmpeg compile.
|
||||||
|
mkdir -p "${G_TARGET}/include/sys"
|
||||||
|
echo "/* File no longer used */" > "${G_TARGET}/include/sys/sysctl.h"
|
||||||
|
fi
|
||||||
pushd thirdparty/ffmpeg
|
pushd thirdparty/ffmpeg
|
||||||
clearAndEnterBuild
|
clearAndEnterBuild
|
||||||
# https://trac.ffmpeg.org/wiki/CompilationGuide/CrossCompilingForWindows
|
# https://trac.ffmpeg.org/wiki/CompilationGuide/CrossCompilingForWindows
|
||||||
|
@ -526,9 +543,9 @@ sudo apt-get install -y \
|
||||||
libvdpau-dev \
|
libvdpau-dev \
|
||||||
upx-ucl
|
upx-ucl
|
||||||
|
|
||||||
|
#buildAll linux x86_64 2>&1 | tee ${G_BUILDDIR}/linux-x86_64.log
|
||||||
buildAll linux x86_64 2>&1 | tee ${G_BUILDDIR}/linux-x86_64.log
|
buildAll windows x86_64 2>&1 | tee ${G_BUILDDIR}/windows-x86_64.log
|
||||||
#buildAll windows x86_64 2>&1 | tee ${G_BUILDDIR}/windows-x86_64.log
|
#buildAll pi aarch64 2>&1 | tee ${G_BUILDDIR}/pi-aarch64.log
|
||||||
|
|
||||||
#buildAll linux x86
|
#buildAll linux x86
|
||||||
#buildAll macos aarch64
|
#buildAll macos aarch64
|
||||||
|
|
|
@ -4744,7 +4744,7 @@ void singe(SDL_Window *window, SDL_Renderer *renderer, ConfigT *conf) {
|
||||||
lua_register(_global.luaContext, "fontQuality", apiFontQuality); // 1.xx
|
lua_register(_global.luaContext, "fontQuality", apiFontQuality); // 1.xx
|
||||||
lua_register(_global.luaContext, "fontSelect", apiFontSelect); // 1.xx
|
lua_register(_global.luaContext, "fontSelect", apiFontSelect); // 1.xx
|
||||||
lua_register(_global.luaContext, "fontToSprite", apiFontToSprite); // 1.xx
|
lua_register(_global.luaContext, "fontToSprite", apiFontToSprite); // 1.xx
|
||||||
lua_register(_global.luaContext, "fontUnload", apiFontUnload);
|
lua_register(_global.luaContext, "fontUnload", apiFontUnload); // 2.00
|
||||||
|
|
||||||
lua_register(_global.luaContext, "keyboardGetLastDown", apiKeyboardGetLastDown); // 2.10
|
lua_register(_global.luaContext, "keyboardGetLastDown", apiKeyboardGetLastDown); // 2.10
|
||||||
lua_register(_global.luaContext, "keyboardGetLastUp", apiKeyboardGetLastUp); // 2.10
|
lua_register(_global.luaContext, "keyboardGetLastUp", apiKeyboardGetLastUp); // 2.10
|
||||||
|
|
Loading…
Add table
Reference in a new issue