mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-05-09 03:41:10 +08:00
Add initial RISC OS support
This commit is contained in:
parent
2c8a415f4f
commit
5c103a49ac
2
!DosBox-X/!Boot,feb
Normal file
2
!DosBox-X/!Boot,feb
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Set DosBox-X$Dir <Obey$Dir>
|
||||||
|
IconSprites <DosBox-X$Dir>.!Sprites
|
9
!DosBox-X/!Run,feb
Normal file
9
!DosBox-X/!Run,feb
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Set DosBox-X$Dir <Obey$Dir>
|
||||||
|
|
||||||
|
RMEnsure SharedUnixLibrary 1.14 RMLoad System:Modules.SharedULib
|
||||||
|
RMEnsure SharedUnixLibrary 1.14 Error DOSBox-X requires SharedUnixLibrary 1.14 or later. This can be downloaded from https://www.riscos.info/packages/LibraryDetails.html#SharedUnixLibrary
|
||||||
|
|
||||||
|
RMEnsure DigitalRenderer 0.56 RMLoad System:Modules.DRenderer
|
||||||
|
RMEnsure DigitalRenderer 0.56 Error DOSBox-X requires DigitalRenderer 0.56 or later. This can be downloaded from https://www.riscos.info/packages/LibraryDetails.html#DRenderer
|
||||||
|
|
||||||
|
Run <DosBox-X$Dir>.dosbox-x 2><Obey$Dir>.stderr
|
BIN
!DosBox-X/!Sprites,ff9
Normal file
BIN
!DosBox-X/!Sprites,ff9
Normal file
Binary file not shown.
4
.gitignore
vendored
4
.gitignore
vendored
@ -325,6 +325,10 @@ windows-installer/DOSBox-X-standalone-*
|
|||||||
windows-installer/DOSBox-X-setup-*.exe
|
windows-installer/DOSBox-X-setup-*.exe
|
||||||
windows-installer/DOSBox-X-setup-*.zip
|
windows-installer/DOSBox-X-setup-*.zip
|
||||||
|
|
||||||
|
\!DosBox-X/*,ff8
|
||||||
|
\!DosBox-X/CHANGELOG,fff
|
||||||
|
\!DosBox-X/resources/*
|
||||||
|
|
||||||
*.o
|
*.o
|
||||||
*.a
|
*.a
|
||||||
*.la
|
*.la
|
||||||
|
20
build-riscos
Executable file
20
build-riscos
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# I'm sick and tired of all the churn the three versions of autoconf
|
||||||
|
# are causing in this repo. Stop committing the configure scripts
|
||||||
|
# and just autoregen.
|
||||||
|
./autogen.sh || exit 1
|
||||||
|
|
||||||
|
echo Compiling DOSBox-X
|
||||||
|
chmod +x configure
|
||||||
|
|
||||||
|
# for sdl-config
|
||||||
|
export PATH=$GCCSDK_INSTALL_ENV/bin:$PATH
|
||||||
|
export CPPFLAGS=-I$GCCSDK_INSTALL_ENV/include
|
||||||
|
export LDFLAGS="-L$GCCSDK_INSTALL_ENV/lib -static"
|
||||||
|
|
||||||
|
./configure --host=arm-unknown-riscos --enable-core-inline "$@"
|
||||||
|
make -j3 || exit 1
|
||||||
|
elf2aif src/dosbox-x !DosBox-X/dosbox-x,ff8
|
||||||
|
cp font/FREECG98.BMP !DosBox-X/resources/freecg98.bmp,69c
|
||||||
|
dos2unix -n CHANGELOG !DosBox-X/CHANGELOG,fff
|
@ -405,6 +405,11 @@ case "$host" in
|
|||||||
dnl FEATURE: Whether to support direct serial port passthrough
|
dnl FEATURE: Whether to support direct serial port passthrough
|
||||||
AC_DEFINE(C_DIRECTSERIAL, 1, [ Define to 1 if you want serial passthrough support (Win32, Posix and OS/2).])
|
AC_DEFINE(C_DIRECTSERIAL, 1, [ Define to 1 if you want serial passthrough support (Win32, Posix and OS/2).])
|
||||||
;;
|
;;
|
||||||
|
*-*-riscos*)
|
||||||
|
AC_DEFINE(RISCOS, 1, [Compiling on RISC OS])
|
||||||
|
dnl The following line is required in order to use std::to_string()
|
||||||
|
CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_C99=1"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# include <endian.h>
|
# include <endian.h>
|
||||||
|
|
||||||
/* MinGW implements some MSVC idioms, so always test for MinGW first. */
|
/* MinGW implements some MSVC idioms, so always test for MinGW first. */
|
||||||
# elif defined(__MINGW32__)
|
# elif defined(__MINGW32__) || defined(__riscos__)
|
||||||
|
|
||||||
# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
|
||||||
|
|
||||||
|
@ -55,6 +55,11 @@ bool Mouse_Vertical = false;
|
|||||||
#include "os2.h"
|
#include "os2.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(RISCOS)
|
||||||
|
#include <unixlib/local.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if C_DEBUG
|
#if C_DEBUG
|
||||||
Bitu DEBUG_EnableDebugger(void);
|
Bitu DEBUG_EnableDebugger(void);
|
||||||
#endif
|
#endif
|
||||||
@ -339,6 +344,17 @@ public:
|
|||||||
|
|
||||||
(void)failed;// MAY BE UNUSED
|
(void)failed;// MAY BE UNUSED
|
||||||
|
|
||||||
|
#if defined (RISCOS)
|
||||||
|
// If the user provided a RISC OS style path, convert it to a Unix style path
|
||||||
|
// TODO: Disable UnixLib's automatic path conversion and use RISC OS style paths internally?
|
||||||
|
if (temp_line.find('$',0) != std::string::npos) {
|
||||||
|
char fname[PATH_MAX];
|
||||||
|
is_physfs = false;
|
||||||
|
__unixify_std(temp_line.c_str(), fname, sizeof(fname), 0);
|
||||||
|
temp_line = fname;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined (WIN32) || defined(OS2)
|
#if defined (WIN32) || defined(OS2)
|
||||||
/* nothing */
|
/* nothing */
|
||||||
#else
|
#else
|
||||||
|
@ -4059,7 +4059,7 @@ void MAPPER_StartUp() {
|
|||||||
/* Note: table has to be tested/updated for various OSs */
|
/* Note: table has to be tested/updated for various OSs */
|
||||||
#if defined (MACOSX)
|
#if defined (MACOSX)
|
||||||
/* nothing */
|
/* nothing */
|
||||||
#elif defined(HAIKU)
|
#elif defined(HAIKU) || defined(RISCOS)
|
||||||
usescancodes = false;
|
usescancodes = false;
|
||||||
#elif defined(OS2)
|
#elif defined(OS2)
|
||||||
sdlkey_map[0x61]=SDLK_UP;
|
sdlkey_map[0x61]=SDLK_UP;
|
||||||
|
@ -66,6 +66,8 @@ static void W32_ConfDir(std::string& in,bool create) {
|
|||||||
void Cross::GetPlatformResDir(std::string& in) {
|
void Cross::GetPlatformResDir(std::string& in) {
|
||||||
#if defined(MACOSX)
|
#if defined(MACOSX)
|
||||||
in = MacOSXResPath;
|
in = MacOSXResPath;
|
||||||
|
#elif defined(RISCOS)
|
||||||
|
in = "/<DosBox-X$Dir>/resources";
|
||||||
#elif defined(RESDIR)
|
#elif defined(RESDIR)
|
||||||
in = RESDIR;
|
in = RESDIR;
|
||||||
#endif
|
#endif
|
||||||
@ -83,6 +85,8 @@ void Cross::GetPlatformConfigDir(std::string& in) {
|
|||||||
#elif defined(HAIKU)
|
#elif defined(HAIKU)
|
||||||
in = "~/config/settings/dosbox";
|
in = "~/config/settings/dosbox";
|
||||||
ResolveHomedir(in);
|
ResolveHomedir(in);
|
||||||
|
#elif defined(RISCOS)
|
||||||
|
in = "/<Choices$Write>/DosBox-X";
|
||||||
#elif !defined(HX_DOS)
|
#elif !defined(HX_DOS)
|
||||||
in = "~/.dosbox";
|
in = "~/.dosbox";
|
||||||
ResolveHomedir(in);
|
ResolveHomedir(in);
|
||||||
@ -114,6 +118,9 @@ void Cross::CreatePlatformConfigDir(std::string& in) {
|
|||||||
in = "~/config/settings/dosbox";
|
in = "~/config/settings/dosbox";
|
||||||
ResolveHomedir(in);
|
ResolveHomedir(in);
|
||||||
mkdir(in.c_str(),0700);
|
mkdir(in.c_str(),0700);
|
||||||
|
#elif defined(RISCOS)
|
||||||
|
in = "/<Choices$Write>/DosBox-X";
|
||||||
|
mkdir(in.c_str(),0700);
|
||||||
#elif !defined(HX_DOS)
|
#elif !defined(HX_DOS)
|
||||||
in = "~/.dosbox";
|
in = "~/.dosbox";
|
||||||
ResolveHomedir(in);
|
ResolveHomedir(in);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user