diff options
author | brainpower | 2015-06-16 23:20:37 +0200 |
---|---|---|
committer | brainpower | 2015-06-16 23:20:37 +0200 |
commit | f21de6dad42954a5ebd062666259a00b701e33e0 (patch) | |
tree | 24a825ac6d3ebf677e23cb0555af363a99ddd4c3 | |
download | aur-f21de6dad42954a5ebd062666259a00b701e33e0.tar.gz |
create dosbox-daum with version 20150103
-rw-r--r-- | .SRCINFO | 42 | ||||
-rw-r--r-- | 0001-fix_missing_stdlib_include.patch | 10 | ||||
-rw-r--r-- | 0002-fix_gcc_51_stumbling_over_lambda.patch | 41 | ||||
-rw-r--r-- | 0003-intel-tbb-needs-new-cpp-std-and-ld-lookup.patch | 22 | ||||
-rw-r--r-- | 0004-fix-64bit-pointersize.patch | 242 | ||||
-rw-r--r-- | 0005-fix-MIN.patch | 17 | ||||
-rw-r--r-- | PKGBUILD | 73 | ||||
-rw-r--r-- | dosbox.png | bin | 0 -> 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 Binary files differnew file mode 100644 index 000000000000..b8a9179864a8 --- /dev/null +++ b/dosbox.png |