Move Dosbox to genode-world

Fixes #3099
This commit is contained in:
Norman Feske 2019-01-03 15:36:23 +01:00
parent 76e96e92cb
commit 48aed0ea46
10 changed files with 0 additions and 645 deletions

View File

@ -1 +0,0 @@
5f7beb80a901e849e8eb578d6b48b919db99b262

View File

@ -1,12 +0,0 @@
LICENSE := GPLv2
VERSION := svn
DOWNLOADS := dosbox.svn
URL(dosbox) := http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk
DIR(dosbox) := src/app/dosbox
REV(dosbox) := 3837
PATCHES := $(addprefix src/app/dosbox/patches/,\
$(notdir $(wildcard $(REP_DIR)/src/app/dosbox/patches/*.patch)))
PATCH_OPT := -p2 -d src/app/dosbox

View File

@ -1,142 +0,0 @@
#
# Build
#
set build_components {
core init
drivers/timer
drivers/audio
drivers/framebuffer drivers/input
app/dosbox
}
source ${genode_dir}/repos/base/run/platform_drv.inc
# override default platform driver policy
proc platform_drv_policy {} {
return {
<policy label_prefix="ps2_drv"> <device name="PS2"/> </policy>
<policy label_prefix="usb_drv"> <pci class="USB"/> </policy>
<policy label_prefix="fb_drv"> <pci class="VGA"/> </policy>
<policy label_prefix="audio_drv"> <pci class="AUDIO"/> <pci class="HDAUDIO"/> </policy>}
}
append_platform_drv_build_components
build $build_components
create_boot_directory
#
# Generate config
#
append config {
<config>
<parent-provides>
<service name="ROM"/>
<service name="IRQ"/>
<service name="IO_MEM"/>
<service name="IO_PORT"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>}
append_if [have_spec sdl] config {
<start name="fb_sdl" ld="no">
<resource name="RAM" quantum="4M"/>
<provides>
<service name="Input"/>
<service name="Framebuffer"/>
</provides>
<config width="640" height="480"/>
</start>}
append_platform_drv_config
append_if [have_spec vesa] config {
<start name="fb_drv" caps="200">
<resource name="RAM" quantum="4M"/>
<provides><service name="Framebuffer"/></provides>
<config buffered="yes"> </config>
</start>}
append_if [have_spec pl11x] config {
<start name="fb_drv">
<resource name="RAM" quantum="2M"/>
<provides><service name="Framebuffer"/></provides>
</start>}
append_if [have_spec ps2] config {
<start name="ps2_drv">
<resource name="RAM" quantum="1M"/>
<provides><service name="Input"/></provides>
</start>}
append config {
<start name="audio_drv">
<binary name="} [audio_drv_binary] {"/>
<resource name="RAM" quantum="6M"/>
<provides><service name="Audio_out"/></provides>
</start>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="dosbox" caps="200">
<resource name="RAM" quantum="128M"/>
<config>
<sdl_audio_volume value="100"/>
<libc stdout="/dev/log" stderr="/dev/log">
<vfs>
<tar name="dosbox.tar"/>
<dir name="dev"> <log/> </dir>
</vfs>
</libc>
</config>
</start>
</config>}
install_config $config
if {![file exists bin/dosbox.tar]} {
puts ""
puts "You need to provide 'bin/dosbox.tar' that contains the DOS game you want to"
puts "play. Mount the directory from within DosBox by entering 'mount C: <dir>',"
puts "change CWD to C: and play the game!"
puts ""
exit 1
}
#
# Boot modules
#
# generic modules
append boot_modules {
core init timer } [audio_drv_binary] {
ld.lib.so
libc.lib.so vfs.lib.so
libm.lib.so libpng.lib.so
stdcxx.lib.so sdl.lib.so sdl_net.lib.so zlib.lib.so
dosbox dosbox.tar
}
# platform-specific modules
lappend_if [have_spec linux] boot_modules fb_sdl
lappend_if [have_spec vesa] boot_modules fb_drv
lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec pl11x] boot_modules fb_drv
append_platform_drv_boot_modules
build_boot_image $boot_modules
append qemu_args " -soundhw es1370 "
run_genode_until forever

View File

@ -1,294 +0,0 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/*
* Copyright (C) 2002-2013 The DOSBox Team
*
* 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 Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Compiling on BSD */
/* Genode's libc is based on FreeBSD 8.2 */
#define BSD 1
/* Determines if the compilers supports always_inline attribute. */
/* #undef C_ATTRIBUTE_ALWAYS_INLINE */
/* Determines if the compilers supports fastcall attribute. */
/* #undef C_ATTRIBUTE_FASTCALL */
/* Define to 1 to use inlined memory functions in cpu core */
/* #undef C_CORE_INLINE */
/* Define to 1 to enable internal debugger, requires libcurses */
/* #undef C_DEBUG */
/* Define to 1 if you want serial passthrough support (Win32, Posix and OS/2).
*/
/* #undef C_DIRECTSERIAL */
/* Define to 1 to use x86 dynamic cpu core */
/* #undef C_DYNAMIC_X86 */
/* Define to 1 to use recompiling cpu core. Can not be used together with the
dynamic-x86 core */
#define C_DYNREC 1
/* Define to 1 to enable floating point emulation */
#define C_FPU 1
/* Define to 1 to use a x86 assembly fpu core */
/* #undef C_FPU_X86 */
/* Determines if the compilers supports attributes for structures. */
#define C_HAS_ATTRIBUTE 1
/* Determines if the compilers supports __builtin_expect for branch
prediction. */
#define C_HAS_BUILTIN_EXPECT 1
/* Define to 1 if you have the mprotect function */
#define C_HAVE_MPROTECT 1
/* Define to 1 to enable heavy debugging, also have to enable C_DEBUG */
/* #undef C_HEAVY_DEBUG */
/* Define to 1 to enable IPX over Internet networking, requires SDL_net */
#define C_IPX 1
/* Define to 1 to enable internal modem support, requires SDL_net */
#define C_MODEM 1
/* Define to 1 to use opengl display output support */
/* #undef C_OPENGL */
/* Define to 1 to enable SDL_sound support */
/* #undef C_SDL_SOUND */
/* Define to 1 if you have setpriority support */
#define C_SET_PRIORITY 1
/* Define to 1 to enable screenshots, requires libpng */
#define C_SSHOT 1
/* The type of cpu this target has */
/* we define it ourself */
/* #undef C_TARGETCPU */
/* Define to 1 to use a unaligned memory access */
#define C_UNALIGNED_MEMORY 1
/* define to 1 if you have XKBlib.h and X11 lib */
/* #undef C_X11_XKB */
/* libm doesn't include powf */
/* #undef DB_HAVE_NO_POWF */
/* struct dirent has d_type */
#define DIRENT_HAS_D_TYPE 1
/* environ can be included */
/* #undef ENVIRON_INCLUDED */
/* environ can be linked */
/* #undef ENVIRON_LINKED */
/* Define to 1 to use ALSA for MIDI */
/* #undef HAVE_ALSA */
/* Define to 1 if you have the <ddraw.h> header file. */
/* #undef HAVE_DDRAW_H */
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `asound' library (-lasound). */
/* #undef HAVE_LIBASOUND */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1
/* Define to 1 if you have the <pwd.h> header file. */
#define HAVE_PWD_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Compiling on GNU/Linux */
/* #undef LINUX */
/* Compiling on Mac OS X */
/* #undef MACOSX */
/* Compiling on OS/2 EMX */
/* #undef OS2 */
/* Name of package */
#define PACKAGE "dosbox"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME "dosbox"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "dosbox SVN"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "dosbox"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "SVN"
#include <size_defs.h>
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
/* #undef TM_IN_SYS_TIME */
/* Version number of package */
#define VERSION "SVN"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
/* Define to `int` if you don't have socklen_t */
/* #undef socklen_t */
#if C_ATTRIBUTE_ALWAYS_INLINE
#define INLINE inline __attribute__((always_inline))
#else
#define INLINE inline
#endif
#if C_ATTRIBUTE_FASTCALL
#define DB_FASTCALL __attribute__((fastcall))
#else
#define DB_FASTCALL
#endif
#if C_HAS_ATTRIBUTE
#define GCC_ATTRIBUTE(x) __attribute__ ((x))
#else
#define GCC_ATTRIBUTE(x) /* attribute not supported */
#endif
#if C_HAS_BUILTIN_EXPECT
#define GCC_UNLIKELY(x) __builtin_expect((x),0)
#define GCC_LIKELY(x) __builtin_expect((x),1)
#else
#define GCC_UNLIKELY(x) (x)
#define GCC_LIKELY(x) (x)
#endif
typedef double Real64;
#if SIZEOF_UNSIGNED_CHAR != 1
# error "sizeof (unsigned char) != 1"
#else
typedef unsigned char Bit8u;
typedef signed char Bit8s;
#endif
#if SIZEOF_UNSIGNED_SHORT != 2
# error "sizeof (unsigned short) != 2"
#else
typedef unsigned short Bit16u;
typedef signed short Bit16s;
#endif
#if SIZEOF_UNSIGNED_INT == 4
typedef unsigned int Bit32u;
typedef signed int Bit32s;
#elif SIZEOF_UNSIGNED_LONG == 4
typedef unsigned long Bit32u;
typedef signed long Bit32s;
#else
# error "can't find sizeof(type) of 4 bytes!"
#endif
#if SIZEOF_UNSIGNED_LONG == 8
typedef unsigned long Bit64u;
typedef signed long Bit64s;
#elif SIZEOF_UNSIGNED_LONG_LONG == 8
typedef unsigned long long Bit64u;
typedef signed long long Bit64s;
#else
# error "can't find data type of 8 bytes"
#endif
#if SIZEOF_INT_P == 4
typedef Bit32u Bitu;
typedef Bit32s Bits;
#else
typedef Bit64u Bitu;
typedef Bit64s Bits;
#endif

View File

@ -1,35 +0,0 @@
--- contrib/dosbox-svn-3837/src/ints/bios.cpp.orig 2013-10-21 21:45:59.350897646 +0200
+++ contrib/dosbox-svn-3837/src/ints/bios.cpp 2013-10-21 22:02:03.526912653 +0200
@@ -32,7 +32,7 @@
#include "setup.h"
#include "serialport.h"
#include <time.h>
-#include <sys/timeb.h>
+//#include <sys/timeb.h>
/* if mem_systems 0 then size_extended is reported as the real size else
@@ -490,11 +490,11 @@
static void BIOS_HostTimeSync() {
/* Setup time and date */
- struct timeb timebuffer;
- ftime(&timebuffer);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
struct tm *loctime;
- loctime = localtime (&timebuffer.time);
+ loctime = localtime (&tv.tv_sec);
/*
loctime->tm_hour = 23;
@@ -513,7 +513,7 @@
loctime->tm_hour*3600*1000+
loctime->tm_min*60*1000+
loctime->tm_sec*1000+
- timebuffer.millitm))*(((double)PIT_TICK_RATE/65536.0)/1000.0));
+ (tv.tv_usec * 1000)))*(((double)PIT_TICK_RATE/65536.0)/1000.0));
mem_writed(BIOS_TIMER,ticks);
}

View File

@ -1,11 +0,0 @@
--- contrib/dosbox-svn-3837/src/ints/int10_vesa.cpp.orig 2013-10-21 16:57:31.889803364 +0200
+++ contrib/dosbox-svn-3837/src/ints/int10_vesa.cpp 2013-10-21 16:57:36.777803442 +0200
@@ -45,7 +45,7 @@
static char string_oem[]="S3 Incorporated. Trio64";
static char string_vendorname[]="DOSBox Development Team";
static char string_productname[]="DOSBox - The DOS Emulator";
-static char string_productrev[]="DOSBox "VERSION;
+static char string_productrev[]="DOSBox " VERSION;
#ifdef _MSC_VER
#pragma pack (1)

View File

@ -1,20 +0,0 @@
--- contrib/dosbox-svn-3837/src/gui/sdl_mapper.cpp.orig 2013-10-30 13:57:07.000000000 +0100
+++ contrib/dosbox-svn-3837/src/gui/sdl_mapper.cpp 2013-10-30 15:35:50.563742200 +0100
@@ -416,7 +416,7 @@
}
#if !defined (WIN32) && !defined (MACOSX) && !defined(OS2)
/* Linux adds 8 to all scancodes */
- else key-=8;
+ //else key-=8;
#endif
#if defined (WIN32)
switch (key) {
@@ -2449,6 +2449,8 @@
}
}
#endif
+ /* Genode's input keycodes match these of evdev */
+ evdev_input = true;
if (evdev_input) {
sdlkey_map[0x67]=SDLK_UP;
sdlkey_map[0x6c]=SDLK_DOWN;

View File

@ -1,35 +0,0 @@
/*
* \brief Size definitions
* \author Josef Soentgen
* \date 2013-10-21
*/
/*
* Copyright (C) 2013-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#ifndef _APP__DOSBOX__SPEC__X86_32__SIZE_DEFS_H_
#define _APP__DOSBOX__SPEC__X86_32__SIZE_DEFS_H_
/* The size of `int *', as computed by sizeof. */
#define SIZEOF_INT_P 4
/* The size of `unsigned char', as computed by sizeof. */
#define SIZEOF_UNSIGNED_CHAR 1
/* The size of `unsigned int', as computed by sizeof. */
#define SIZEOF_UNSIGNED_INT 4
/* The size of `unsigned long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG 4
/* The size of `unsigned long long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG_LONG 8
/* The size of `unsigned short', as computed by sizeof. */
#define SIZEOF_UNSIGNED_SHORT 2
#endif /* _APP__DOSBOX__SPEC__X86_32__SIZE_DEFS_H_ */

View File

@ -1,35 +0,0 @@
/*
* \brief Size definitions
* \author Josef Soentgen
* \date 2013-10-21
*/
/*
* Copyright (C) 2013-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#ifndef _APP__DOSBOX__SPEC__X86_64__SIZE_DEFS_H_
#define _APP__DOSBOX__SPEC__X86_64__SIZE_DEFS_H_
/* The size of `int *', as computed by sizeof. */
#define SIZEOF_INT_P 8
/* The size of `unsigned char', as computed by sizeof. */
#define SIZEOF_UNSIGNED_CHAR 1
/* The size of `unsigned int', as computed by sizeof. */
#define SIZEOF_UNSIGNED_INT 4
/* The size of `unsigned long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG 8
/* The size of `unsigned long long', as computed by sizeof. */
#define SIZEOF_UNSIGNED_LONG_LONG 8
/* The size of `unsigned short', as computed by sizeof. */
#define SIZEOF_UNSIGNED_SHORT 2
#endif /* _APP__DOSBOX__SPEC__X86_64__SIZE_DEFS_H_ */

View File

@ -1,60 +0,0 @@
REQUIRES = x86
TARGET := dosbox
DOSBOX_DIR := $(call select_from_ports,dosbox)/src/app/dosbox
SRC_CC_cpu = $(notdir $(wildcard $(DOSBOX_DIR)/src/cpu/*.cpp))
SRC_CC_debug = $(notdir $(wildcard $(DOSBOX_DIR)/src/debug/*.cpp))
FILTER_OUT_dos = cdrom_aspi_win32.cpp cdrom_ioctl_linux.cpp cdrom_ioctl_os2.cpp \
cdrom_ioctl_win32.cpp
SRC_CC_dos = $(filter-out $(FILTER_OUT_dos),$(notdir $(wildcard $(DOSBOX_DIR)/src/dos/*.cpp)))
SRC_CC_fpu = $(notdir $(DOSBOX_DIR)/src/fpu/fpu.cpp)
SRC_CC_gui = $(notdir $(wildcard $(DOSBOX_DIR)/src/gui/*.cpp))
FILTER_OUT_hw = opl.cpp
SRC_CC_hw = $(filter-out $(FILTER_OUT_hw),$(notdir $(wildcard $(DOSBOX_DIR)/src/hardware/*.cpp)))
SRC_CC_hw_ser = $(notdir $(wildcard $(DOSBOX_DIR)/src/hardware/serialport/*.cpp))
SRC_CC_ints = $(notdir $(wildcard $(DOSBOX_DIR)/src/ints/*.cpp))
SRC_CC_misc = $(notdir $(wildcard $(DOSBOX_DIR)/src/misc/*.cpp))
SRC_CC_shell = $(notdir $(wildcard $(DOSBOX_DIR)/src/shell/*.cpp))
SRC_CC = $(notdir $(DOSBOX_DIR)/src/dosbox.cpp)
SRC_CC += $(SRC_CC_cpu) $(SRC_CC_debug) $(SRC_CC_dos) $(SRC_CC_fpu) $(SRC_CC_gui) \
$(SRC_CC_hw) $(SRC_CC_hw_ser) $(SRC_CC_ints) $(SRC_CC_ints) $(SRC_CC_misc) \
$(SRC_CC_shell)
vpath %.cpp $(DOSBOX_DIR)/src
vpath %.cpp $(DOSBOX_DIR)/src/cpu
vpath %.cpp $(DOSBOX_DIR)/src/debug
vpath %.cpp $(DOSBOX_DIR)/src/dos
vpath %.cpp $(DOSBOX_DIR)/src/fpu
vpath %.cpp $(DOSBOX_DIR)/src/gui
vpath %.cpp $(DOSBOX_DIR)/src/hardware
vpath %.cpp $(DOSBOX_DIR)/src/hardware/serialport
vpath %.cpp $(DOSBOX_DIR)/src/ints
vpath %.cpp $(DOSBOX_DIR)/src/misc
vpath %.cpp $(DOSBOX_DIR)/src/shell
INC_DIR += $(PRG_DIR)
INC_DIR += $(DOSBOX_DIR)/include
INC_DIR += $(addprefix $(DOSBOX_DIR)/src, cpu debug dos fpu gui hardware hardware/serialport \
ints misc shell)
CC_OPT = -DHAVE_CONFIG_H -D_GNU_SOURCE=1 -D_REENTRANT
ifeq ($(filter-out $(SPECS),x86_32),)
INC_DIR += $(PRG_DIR)/spec/x86_32
CC_OPT += -DC_TARGETCPU=X86
else ifeq ($(filter-out $(SPECS),x86_64),)
INC_DIR += $(PRG_DIR)/spec/x86_64
CC_OPT += -DC_TARGETCPU=X86_64
endif
CC_WARN = -Wall
CC_WARN += -Wno-unused-variable -Wno-unused-function -Wno-switch -Wno-unused-value \
-Wno-unused-but-set-variable -Wno-format -Wno-maybe-uninitialized \
-Wno-sign-compare -Wno-narrowing -Wno-missing-braces -Wno-array-bounds \
-Wno-parentheses
LIBS += libpng libc sdl sdlmain sdl_net stdcxx zlib
CC_CXX_WARN_STRICT =