summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrainpower2015-06-16 23:20:37 +0200
committerbrainpower2015-06-16 23:20:37 +0200
commitf21de6dad42954a5ebd062666259a00b701e33e0 (patch)
tree24a825ac6d3ebf677e23cb0555af363a99ddd4c3
downloadaur-f21de6dad42954a5ebd062666259a00b701e33e0.tar.gz
create dosbox-daum with version 20150103
-rw-r--r--.SRCINFO42
-rw-r--r--0001-fix_missing_stdlib_include.patch10
-rw-r--r--0002-fix_gcc_51_stumbling_over_lambda.patch41
-rw-r--r--0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch22
-rw-r--r--0004-fix-64bit-pointersize.patch242
-rw-r--r--0005-fix-MIN.patch17
-rw-r--r--PKGBUILD73
-rw-r--r--dosbox.pngbin0 -> 4691 bytes
8 files changed, 447 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..e3fd991cf8a2
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,42 @@
+pkgbase = dosbox-daum
+ pkgdesc = Emulator with builtin DOS for running DOS Games (Daum version)
+ pkgver = 20150103
+ pkgrel = 1
+ url = http://ykhwong.x-y.net/
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = dos2unix
+ makedepends = gendesk
+ makedepends = mesa
+ depends = sdl_net
+ depends = zlib
+ depends = sdl_sound
+ depends = libgl
+ depends = libpng
+ depends = alsa-lib
+ depends = gcc-libs
+ depends = glu
+ depends = intel-tbb
+ depends = sdl_sound-hg
+ depends = sdl-openglhq
+ depends = openglide-cvs
+ provides = dosbox=20150103
+ conflicts = dosbox
+ source = http://ykhwong.x-y.net/downloads/dosbox/patch/source.7z
+ source = 0001-fix_missing_stdlib_include.patch
+ source = 0002-fix_gcc_51_stumbling_over_lambda.patch
+ source = 0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch
+ source = 0004-fix-64bit-pointersize.patch
+ source = 0005-fix-MIN.patch
+ source = dosbox.png
+ sha256sums = 061336cd3971e37fa0d342c6644e19776a2ddfc20d8f197abca1f8ee27dabea6
+ sha256sums = cbe78dab758c5ece5616b2456178fe3ebe1429e9796b4088902c6c0856475bf6
+ sha256sums = 49670bccca020004af2fdbd77b98375bef7b9f469bea12c6e173ac6e9646f6e9
+ sha256sums = c42273cfe631b44a909ed5f444374244d801859a211d53ee842801336c1d4fb0
+ sha256sums = 8125c7fb2f1428e25f4d50a48df16bb5b692286216bfe5a8ef463d15cef25831
+ sha256sums = 224bb0b5b45941baae9ad02cb4da7eef5186d4a05ead4e4b70d4e6b371f73c85
+ sha256sums = 491c42d16fc5ef7ee2eca1b736f7801249d4ca8c0b236a001aec0d3e24504f3b
+
+pkgname = dosbox-daum
+
diff --git a/0001-fix_missing_stdlib_include.patch b/0001-fix_missing_stdlib_include.patch
new file mode 100644
index 000000000000..fb3bb76385c2
--- /dev/null
+++ b/0001-fix_missing_stdlib_include.patch
@@ -0,0 +1,10 @@
+--- db-src/include/bios_disk.h.origin 2015-01-25 08:51:15.000000000 +0100
++++ db-src/include/bios_disk.h 2015-06-15 23:22:23.522835748 +0200
+@@ -20,6 +20,7 @@
+ #define DOSBOX_BIOS_DISK_H
+
+ #include <stdio.h>
++#include <stdlib.h> /* abort() */
+ #ifndef DOSBOX_MEM_H
+ #include "mem.h"
+ #endif
diff --git a/0002-fix_gcc_51_stumbling_over_lambda.patch b/0002-fix_gcc_51_stumbling_over_lambda.patch
new file mode 100644
index 000000000000..aeaf94628817
--- /dev/null
+++ b/0002-fix_gcc_51_stumbling_over_lambda.patch
@@ -0,0 +1,41 @@
+--- src/gui/xBRZ/xbrz.cpp.origin 2015-06-16 01:06:32.349519739 +0200
++++ src/gui/xBRZ/xbrz.cpp 2015-06-16 01:10:00.872799237 +0200
+@@ -661,23 +661,22 @@
+ auto eq = [&](uint32_t pix1, uint32_t pix2) { return ColorDistance::dist(pix1, pix2, cfg.luminanceWeight_) < cfg.equalColorTolerance_; };
+ auto dist = [&](uint32_t pix1, uint32_t pix2) { return ColorDistance::dist(pix1, pix2, cfg.luminanceWeight_); };
+
+- const bool doLineBlend = [&]() -> bool
+- {
+- if (getBottomR(blend) >= BLEND_DOMINANT)
+- return true;
+-
+- //make sure there is no second blending in an adjacent rotation for this pixel: handles insular pixels, mario eyes
+- if (getTopR(blend) != BLEND_NONE && !eq(e, g)) //but support double-blending for 90?corners
+- return false;
+- if (getBottomL(blend) != BLEND_NONE && !eq(e, c))
+- return false;
+-
+- //no full blending for L-shapes; blend corner only (handles "mario mushroom eyes")
+- if (!eq(e, i) && eq(g, h) && eq(h , i) && eq(i, f) && eq(f, c))
+- return false;
++ bool doLineBlend;
+
+- return true;
+- }();
++ if (getBottomR(blend) >= BLEND_DOMINANT)
++ doLineBlend = true;
++
++ //make sure there is no second blending in an adjacent rotation for this pixel: handles insular pixels, mario eyes
++ else if (getTopR(blend) != BLEND_NONE && !eq(e, g)) //but support double-blending for 90?corners
++ doLineBlend = false;
++ else if (getBottomL(blend) != BLEND_NONE && !eq(e, c))
++ doLineBlend = false;
++
++ //no full blending for L-shapes; blend corner only (handles "mario mushroom eyes")
++ else if (!eq(e, i) && eq(g, h) && eq(h , i) && eq(i, f) && eq(f, c))
++ doLineBlend = false;
++ else
++ doLineBlend = true;
+
+ const uint32_t px = dist(e, f) <= dist(e, h) ? f : h; //choose most similar color
+
diff --git a/0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch b/0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch
new file mode 100644
index 000000000000..111251cec5de
--- /dev/null
+++ b/0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch
@@ -0,0 +1,22 @@
+--- configure.ac.origin 2015-06-16 00:12:39.664253351 +0200
++++ configure.ac 2015-06-16 02:26:08.926218940 +0200
+@@ -19,6 +19,11 @@
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
+
++dnl Add c++14 flag needed for intel-tbb
++CXXFLAGS="$CXXFLAGS -std=c++14"
++LDFLAGS="$LDFLAGS -std=c++14"
++LIBS="$LIBS -ltbb"
++
+ dnl Some needed libaries for OS2
+ dnl perharps join this with the other target depended checks. move them upwards
+ if test x$host = xi386-pc-os2-emx ; then
+@@ -593,6 +598,7 @@
+ AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
+ AC_SUBST(WINDRES)
+
++LIBS="$LIBS cpu/libcpu.a"
+
+ AC_CONFIG_FILES([
+ Makefile
diff --git a/0004-fix-64bit-pointersize.patch b/0004-fix-64bit-pointersize.patch
new file mode 100644
index 000000000000..13cc5b3cdbb8
--- /dev/null
+++ b/0004-fix-64bit-pointersize.patch
@@ -0,0 +1,242 @@
+--- src/hardware/memory.cpp.origin 2015-06-16 01:18:13.155376562 +0200
++++ src/hardware/memory.cpp 2015-06-16 01:34:39.819386299 +0200
+@@ -1109,28 +1109,28 @@
+ //save state support
+ extern void* VGA_PageHandler_Func[16];
+
+-Bit32u Memory_PageHandler_table[] =
++Bit64u Memory_PageHandler_table[] =
+ {
+- (Bit32u) NULL,
+- (Bit32u) &ram_page_handler,
+- (Bit32u) &rom_page_handler,
+-
+- (Bit32u) VGA_PageHandler_Func[0],
+- (Bit32u) VGA_PageHandler_Func[1],
+- (Bit32u) VGA_PageHandler_Func[2],
+- (Bit32u) VGA_PageHandler_Func[3],
+- (Bit32u) VGA_PageHandler_Func[4],
+- (Bit32u) VGA_PageHandler_Func[5],
+- (Bit32u) VGA_PageHandler_Func[6],
+- (Bit32u) VGA_PageHandler_Func[7],
+- (Bit32u) VGA_PageHandler_Func[8],
+- (Bit32u) VGA_PageHandler_Func[9],
+- (Bit32u) VGA_PageHandler_Func[10],
+- (Bit32u) VGA_PageHandler_Func[11],
+- (Bit32u) VGA_PageHandler_Func[12],
+- (Bit32u) VGA_PageHandler_Func[13],
+- (Bit32u) VGA_PageHandler_Func[14],
+- (Bit32u) VGA_PageHandler_Func[15],
++ (Bit64u) NULL,
++ (Bit64u) &ram_page_handler,
++ (Bit64u) &rom_page_handler,
++
++ (Bit64u) VGA_PageHandler_Func[0],
++ (Bit64u) VGA_PageHandler_Func[1],
++ (Bit64u) VGA_PageHandler_Func[2],
++ (Bit64u) VGA_PageHandler_Func[3],
++ (Bit64u) VGA_PageHandler_Func[4],
++ (Bit64u) VGA_PageHandler_Func[5],
++ (Bit64u) VGA_PageHandler_Func[6],
++ (Bit64u) VGA_PageHandler_Func[7],
++ (Bit64u) VGA_PageHandler_Func[8],
++ (Bit64u) VGA_PageHandler_Func[9],
++ (Bit64u) VGA_PageHandler_Func[10],
++ (Bit64u) VGA_PageHandler_Func[11],
++ (Bit64u) VGA_PageHandler_Func[12],
++ (Bit64u) VGA_PageHandler_Func[13],
++ (Bit64u) VGA_PageHandler_Func[14],
++ (Bit64u) VGA_PageHandler_Func[15],
+ };
+
+
+@@ -1150,12 +1150,12 @@
+
+
+ // assume 256MB max memory
+- size_table = sizeof(Memory_PageHandler_table) / sizeof(Bit32u);
++ size_table = sizeof(Memory_PageHandler_table) / sizeof(Bit64u);
+ for( int lcv=0; lcv<memory.pages; lcv++ ) {
+ pagehandler_idx[lcv] = 0xff;
+
+ for( int lcv2=0; lcv2<size_table; lcv2++ ) {
+- if( (Bit32u) memory.phandlers[lcv] == Memory_PageHandler_table[lcv2] ) {
++ if( (Bit64u) memory.phandlers[lcv] == Memory_PageHandler_table[lcv2] ) {
+ pagehandler_idx[lcv] = lcv2;
+ break;
+ }
+--- src/hardware/opl.cpp.origin 2015-06-16 01:40:49.911942900 +0200
++++ src/hardware/opl.cpp 2015-06-16 01:41:54.351809024 +0200
+@@ -1469,7 +1469,7 @@
+
+
+ for( int lcv=0; lcv<MAXOPERATORS; lcv++ ) {
+- cur_wform_idx[lcv] = ((Bit32u) (op[lcv].cur_wform)) - ((Bit32u) &wavtable);
++ cur_wform_idx[lcv] = ((Bit64u) (op[lcv].cur_wform)) - ((Bit64u) &wavtable);
+ }
+
+ //****************************************************
+@@ -1571,7 +1571,7 @@
+ //****************************************************
+
+ for( int lcv=0; lcv<MAXOPERATORS; lcv++ ) {
+- op[lcv].cur_wform = (Bit16s *) ((Bit32u) &wavtable + cur_wform_idx[lcv]);
++ op[lcv].cur_wform = (Bit16s *) ((Bit64u) &wavtable + cur_wform_idx[lcv]);
+ }
+ }
+
+--- src/hardware/dma.cpp.origin 2015-06-16 01:42:51.115024751 +0200
++++ src/hardware/dma.cpp 2015-06-16 01:44:04.361540100 +0200
+@@ -542,9 +542,9 @@
+ {
+ Bit8u size;
+
+- size = sizeof(dma_state_callback_table) / sizeof(Bit32u);
++ size = sizeof(dma_state_callback_table) / sizeof(Bit64u);
+ for( int lcv=0; lcv<size; lcv++ ) {
+- if( (Bit32u) dma_state_callback_table[lcv] == addr ) return lcv;
++ if( (Bit64u) dma_state_callback_table[lcv] == addr ) return lcv;
+ }
+
+
+@@ -553,9 +553,9 @@
+ }
+
+
+-Bit32u POD_State_Index_DMA_Callback( Bit8u index )
++Bit64u POD_State_Index_DMA_Callback( Bit8u index )
+ {
+- return (Bit32u) dma_state_callback_table[index];
++ return (Bit64u) dma_state_callback_table[index];
+ }
+
+
+@@ -564,7 +564,7 @@
+ Bit8u dma_callback;
+
+
+- dma_callback = POD_State_Find_DMA_Callback( (Bit32u) (callback) );
++ dma_callback = POD_State_Find_DMA_Callback( (Bit64u) (callback) );
+
+ //******************************************
+ //******************************************
+@@ -600,7 +600,7 @@
+ Bit8u dma_callback;
+
+
+- dma_callback = POD_State_Find_DMA_Callback( (Bit32u) (callback) );
++ dma_callback = POD_State_Find_DMA_Callback( (Bit64u) (callback) );
+
+ //******************************************
+ //******************************************
+--- src/hardware/pic.cpp.origin 2015-06-16 01:36:06.012537505 +0200
++++ src/hardware/pic.cpp 2015-06-16 01:46:00.634634227 +0200
+@@ -805,12 +805,12 @@
+
+
+
+-Bit16u PIC_State_FindEvent( Bit32u addr ) {
++Bit16u PIC_State_FindEvent( Bit64u addr ) {
+ int size;
+
+- size = sizeof(pic_state_event_table) / sizeof(Bit32u);
++ size = sizeof(pic_state_event_table) / sizeof(Bit64u);
+ for( int lcv=0; lcv<size; lcv++ ) {
+- if( addr == (Bit32u) (pic_state_event_table[lcv]) ) return lcv;
++ if( addr == (Bit64u) (pic_state_event_table[lcv]) ) return lcv;
+ }
+
+
+@@ -820,12 +820,12 @@
+ }
+
+
+-Bit16u PIC_State_FindTimer( Bit32u addr ) {
++Bit16u PIC_State_FindTimer( Bit64u addr ) {
+ int size;
+
+- size = sizeof(pic_state_timer_table) / sizeof(Bit32u);
++ size = sizeof(pic_state_timer_table) / sizeof(Bit64u);
+ for( int lcv=0; lcv<size; lcv++ ) {
+- if( addr == (Bit32u) (pic_state_timer_table[lcv]) ) return lcv;
++ if( addr == (Bit64u) (pic_state_timer_table[lcv]) ) return lcv;
+ }
+
+
+@@ -835,17 +835,17 @@
+ }
+
+
+-Bit32u PIC_State_IndexEvent( Bit16u index ) {
++Bit64u PIC_State_IndexEvent( Bit16u index ) {
+ if( index == 0xffff ) return 0;
+
+- return (Bit32u) (pic_state_event_table[index]);
++ return (Bit64u) (pic_state_event_table[index]);
+ }
+
+
+-Bit32u PIC_State_IndexTimer( Bit16u index ) {
++Bit64u PIC_State_IndexTimer( Bit16u index ) {
+ if( index == 0xffff ) return 0;
+
+- return (Bit32u) (pic_state_timer_table[index]);
++ return (Bit64u) (pic_state_timer_table[index]);
+ }
+
+
+@@ -870,13 +870,13 @@
+
+
+ for( int lcv=0; lcv<PIC_QUEUESIZE; lcv++ ) {
+- Bit32u pic_addr;
++ Bit64u pic_addr;
+
+- pic_addr = (Bit32u) pic_queue.entries[lcv].next;
++ pic_addr = (Bit64u) pic_queue.entries[lcv].next;
+ pic_next_ptr[lcv] = 0xffff;
+
+ for( int lcv2=0; lcv2<PIC_QUEUESIZE; lcv2++ ) {
+- if( pic_addr == (Bit32u) &pic_queue.entries[lcv2] ) {
++ if( pic_addr == (Bit64u) &pic_queue.entries[lcv2] ) {
+ pic_next_ptr[lcv] = lcv2;
+ break;
+ }
+@@ -919,7 +919,7 @@
+ stream.write(reinterpret_cast<const char*>(&pic_queue.entries[lcv].value), sizeof(pic_queue.entries[lcv].value) );
+
+ // - function ptr
+- event_idx = PIC_State_FindEvent( (Bit32u) (pic_queue.entries[lcv].pic_event) );
++ event_idx = PIC_State_FindEvent( (Bit64u) (pic_queue.entries[lcv].pic_event) );
+ stream.write(reinterpret_cast<const char*>(&event_idx), sizeof(event_idx) );
+
+ // - reloc ptr
+@@ -947,7 +947,7 @@
+ ticker_ptr = firstticker;
+ for( int lcv=0; lcv<ticker_size; lcv++ ) {
+ // - function ptr
+- ticker_handler_idx = PIC_State_FindTimer( (Bit32u) (ticker_ptr->handler) );
++ ticker_handler_idx = PIC_State_FindTimer( (Bit64u) (ticker_ptr->handler) );
+ stream.write(reinterpret_cast<const char*>(&ticker_handler_idx), sizeof(ticker_handler_idx) );
+
+ // - reloc new ptr (leave alone)
+--- src/hardware/dbopl.cpp.origin 2015-06-16 01:48:18.407685663 +0200
++++ src/hardware/dbopl.cpp 2015-06-16 01:49:18.980895573 +0200
+@@ -1538,7 +1538,7 @@
+ }
+ }
+
+- wavebase_idx[lcv1][lcv2] = (Bit32u) chip.chan[lcv1].op[lcv2].waveBase - (Bit32u) &WaveTable;
++ wavebase_idx[lcv1][lcv2] = (Bit64u) chip.chan[lcv1].op[lcv2].waveBase - (Bit64u) &WaveTable;
+ }
+
+
+@@ -1641,7 +1641,7 @@
+ for( int lcv2=0; lcv2<2; lcv2++ ) {
+ chip.chan[lcv1].op[lcv2].volHandler = VolumeHandlerTable[ volhandler_idx[lcv1][lcv2] ];
+
+- chip.chan[lcv1].op[lcv2].waveBase = (Bit16s *) ((Bit32u) wavebase_idx[lcv1][lcv2] + (Bit32u) &WaveTable);
++ chip.chan[lcv1].op[lcv2].waveBase = (Bit16s *) ((Bit64u) wavebase_idx[lcv1][lcv2] + (Bit64u) &WaveTable);
+ }
+
+
diff --git a/0005-fix-MIN.patch b/0005-fix-MIN.patch
new file mode 100644
index 000000000000..777e2124fd8a
--- /dev/null
+++ b/0005-fix-MIN.patch
@@ -0,0 +1,17 @@
+--- src/hardware/ide.cpp.origin 2015-06-16 02:04:57.201788266 +0200
++++ src/hardware/ide.cpp 2015-06-16 02:07:09.294635540 +0200
+@@ -22,11 +22,14 @@
+ #include "bios_disk.h"
+ #include "../src/dos/cdrom.h"
+
++/*
+ #ifdef _MSC_VER
+ # define MIN(a,b) ((a) < (b) ? (a) : (b))
+ #else
+ # define MIN(a,b) std::min(a,b)
+ #endif
++*/
++#define MIN(a,b) ((a) < (b) ? (a) : (b))
+
+ #define MAX_IDE_CONTROLLERS 8
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..c7b02a2c4583
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,73 @@
+# Maintainer: oi_wtf <brainpower at mailbox dot org>
+
+pkgname=dosbox-daum
+pkgver=20150103
+pkgrel=1
+pkgdesc="Emulator with builtin DOS for running DOS Games (Daum version)"
+arch=('i686' 'x86_64')
+url="http://ykhwong.x-y.net/"
+license=('GPL')
+depends=('sdl_net' 'zlib' 'sdl_sound' 'libgl' 'libpng' 'alsa-lib' 'gcc-libs'
+ 'glu' 'intel-tbb' 'sdl_sound-hg' 'sdl-openglhq' 'openglide-cvs')
+makedepends=('dos2unix' 'gendesk' 'mesa')
+
+provides=("dosbox=$pkgver")
+conflicts=("dosbox")
+
+source=('http://ykhwong.x-y.net/downloads/dosbox/patch/source.7z'
+ '0001-fix_missing_stdlib_include.patch'
+ '0002-fix_gcc_51_stumbling_over_lambda.patch'
+ '0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch'
+ '0004-fix-64bit-pointersize.patch'
+ '0005-fix-MIN.patch'
+ 'dosbox.png')
+sha256sums=('061336cd3971e37fa0d342c6644e19776a2ddfc20d8f197abca1f8ee27dabea6'
+ 'cbe78dab758c5ece5616b2456178fe3ebe1429e9796b4088902c6c0856475bf6'
+ '49670bccca020004af2fdbd77b98375bef7b9f469bea12c6e173ac6e9646f6e9'
+ 'c42273cfe631b44a909ed5f444374244d801859a211d53ee842801336c1d4fb0'
+ '8125c7fb2f1428e25f4d50a48df16bb5b692286216bfe5a8ef463d15cef25831'
+ '224bb0b5b45941baae9ad02cb4da7eef5186d4a05ead4e4b70d4e6b371f73c85'
+ '491c42d16fc5ef7ee2eca1b736f7801249d4ca8c0b236a001aec0d3e24504f3b')
+
+prepare(){
+ cd "${srcdir}"
+
+
+ dos2unix autogen.sh
+ dos2unix configure.ac
+ chmod +x autogen.sh
+
+ patch -p1 -i "$srcdir"/0001-fix_missing_stdlib_include.patch
+ patch -p0 -i "$srcdir"/0002-fix_gcc_51_stumbling_over_lambda.patch
+ patch -p0 -i "$srcdir"/0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch
+
+ if [[ $CARCH == "x86_64" ]]; then
+ patch -p0 -i "$srcdir"/0004-fix-64bit-pointersize.patch
+ fi
+
+ patch -p0 -i "$srcdir"/0005-fix-MIN.patch
+
+ gendesk --pkgname "dosbox" --pkgdesc "$pkgdesc"
+
+ mkdir include/GL
+ cp /usr/include/GL/gl.h include/GL/gl.h
+ sed -i 's/ifndef GL_ARB_multitexture/if 0/g' include/GL/gl.h
+}
+
+build(){
+ cd "${srcdir}"
+
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc/dosbox
+
+ make
+}
+
+package(){
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 "$srcdir/dosbox.png" \
+ "$pkgdir/usr/share/pixmaps/dosbox.png"
+ install -Dm644 "$srcdir/dosbox.desktop" \
+ "$pkgdir/usr/share/applications/dosbox.desktop"
+}
diff --git a/dosbox.png b/dosbox.png
new file mode 100644
index 000000000000..b8a9179864a8
--- /dev/null
+++ b/dosbox.png
Binary files differ