diff options
-rw-r--r-- | pcr/reicast-git/PKGBUILD | 15 | ||||
-rw-r--r-- | pcr/reicast-git/wait_if_two_frames_already_in_flight.patch | 51 | ||||
-rw-r--r-- | pcr/reicast-multilib-git/PKGBUILD | 53 | ||||
-rw-r--r-- | pcr/reicast-multilib-git/enable_multiplayer_support.patch | 37 |
4 files changed, 95 insertions, 61 deletions
diff --git a/pcr/reicast-git/PKGBUILD b/pcr/reicast-git/PKGBUILD index 758f0cf0a..3dd13fb68 100644 --- a/pcr/reicast-git/PKGBUILD +++ b/pcr/reicast-git/PKGBUILD @@ -4,18 +4,15 @@ pkgname=reicast-git pkgver=r1651.56f8ffa -pkgrel=1 +pkgrel=2 pkgdesc="A multiplatform Sega Dreamcast emulator" arch=('i686' 'x86_64') url="http://reicast.com/" license=('GPL2') provides=('reicast') conflicts=('reicast') -conflicts_x86_64+=('reicast-multilib' 'reicast-multilib-git') -replaces_x86_64=('reicast-multilib' 'reicast-multilib-git') makedepends=('git') depends=('libgl' 'alsa-plugins' 'libpulse' 'python-evdev' ) -optdepends=('xboxdrv: Userspace gamepad driver for Xbox and Xbox360 gamepads') source=(reicast::"git+https://github.com/reicast/reicast-emulator.git" 'enable_multiplayer_support.patch') sha256sums=('SKIP' @@ -46,13 +43,11 @@ prepare () { } build () { - make -C reicast/shell/linux + mkdir -vm 0755 "$srcdir"/pkgbuild-dir + make -C reicast/shell/linux PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install } package () { - cd reicast - - make -C shell/linux PREFIX=/usr DESTDIR=$pkgdir install - - install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE + cp -va "$srcdir"/pkgbuild-dir/* "$pkgdir" + install -Dm 644 reicast/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE } diff --git a/pcr/reicast-git/wait_if_two_frames_already_in_flight.patch b/pcr/reicast-git/wait_if_two_frames_already_in_flight.patch deleted file mode 100644 index 6b29b3d61..000000000 --- a/pcr/reicast-git/wait_if_two_frames_already_in_flight.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff -Nur a/core/hw/pvr/Renderer_if.cpp b/core/hw/pvr/Renderer_if.cpp ---- a/core/hw/pvr/Renderer_if.cpp 2015-08-27 12:17:34.719561251 -0300 -+++ b/core/hw/pvr/Renderer_if.cpp 2015-08-27 12:21:45.917501578 -0300 -@@ -187,6 +187,7 @@ - - bool rend_frame(TA_context* ctx, bool draw_osd) { - bool proc = renderer->Process(ctx); -+ FinishRender(_pvrrc); - #if !defined(TARGET_NO_THREADS) - re.Set(); - #endif -@@ -213,7 +214,7 @@ - bool do_swp = rend_frame(_pvrrc, true); - - //clear up & free data .. -- FinishRender(_pvrrc); -+ tactx_Recycle(_pvrrc); - _pvrrc=0; - - return do_swp; -@@ -267,6 +268,7 @@ - #endif - - bool pend_rend = false; -+extern TA_context* rqueue; - - void rend_resize(int width, int height) { - renderer->Resize(width, height); -@@ -275,6 +277,10 @@ - - void rend_start_render() - { -+ if (rqueue) { -+ rend_end_render(); -+ } -+ - pend_rend = false; - bool is_rtt=(FB_W_SOF1& 0x1000000)!=0; - TA_context* ctx = tactx_Pop(CORE_CURRENT_CTX); -diff -Nur a/core/hw/pvr/ta_ctx.cpp b/core/hw/pvr/ta_ctx.cpp ---- a/core/hw/pvr/ta_ctx.cpp 2015-08-27 12:17:34.720561259 -0300 -+++ b/core/hw/pvr/ta_ctx.cpp 2015-08-27 12:23:24.614248467 -0300 -@@ -153,8 +153,6 @@ - mtx_rqueue.Lock(); - rqueue = 0; - mtx_rqueue.Unlock(); -- -- tactx_Recycle(ctx); - frame_finished.Set(); - } - diff --git a/pcr/reicast-multilib-git/PKGBUILD b/pcr/reicast-multilib-git/PKGBUILD new file mode 100644 index 000000000..e2663fdb3 --- /dev/null +++ b/pcr/reicast-multilib-git/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer (Arch): carstene1ns <arch carsten-teibes de> - http://git.io/ctPKG +# Maintainer: André Silva <emulatorman@parabola.nu> +# Maintainer: Márcio Silva <coadde@parabola.nu> + +pkgname=reicast-multilib-git +pkgver=r1651.56f8ffa +pkgrel=2 +pkgdesc="A multiplatform Sega Dreamcast emulator" +arch=('x86_64') +url="http://reicast.com/" +license=('GPL2') +provides=('reicast') +conflicts=('reicast') +makedepends=('git' 'gcc-multilib') +depends=('lib32-libgl' 'lib32-alsa-plugins' 'lib32-libpulse' 'python-evdev' ) +source=(reicast::"git+https://github.com/reicast/reicast-emulator.git" + 'enable_multiplayer_support.patch') +sha256sums=('SKIP' + '12bfc58e12b3ee79b0c82159cdc70c76a4b6804f5c6986853156602bb0e6beb0') + +pkgver() { + cd reicast + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare () { + cd reicast + + # Remove nonfree fp.h header + rm -v core/deps/libpng/fp.h + + # Add Multiplayer support + patch -Np1 -i "$srcdir"/enable_multiplayer_support.patch + + # Add experimental shadow support: http://github.com/reicast-emulator/issues/94 + sed -i 's|//DrawModVols|DrawModVols|' core/rend/gles/gldraw.cpp + + # Fix Xbox Input Axis + sed -i 's|DC_AXIS_LT, 0, 0, DC_AXIS_RT|0, 0, DC_AXIS_RT, DC_AXIS_LT|' core/linux-dist/joystick.cpp + + # Enable Pulseaudio + sed -i 's|#USE_PULSEAUDIO|USE_PULSEAUDIO|' shell/linux/Makefile +} + +build () { + mkdir -vm 0755 "$srcdir"/pkgbuild-dir + linux32 make -C reicast/shell/linux PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install +} + +package () { + cp -va "$srcdir"/pkgbuild-dir/* "$pkgdir" + install -Dm 644 reicast/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} diff --git a/pcr/reicast-multilib-git/enable_multiplayer_support.patch b/pcr/reicast-multilib-git/enable_multiplayer_support.patch new file mode 100644 index 000000000..57794d1eb --- /dev/null +++ b/pcr/reicast-multilib-git/enable_multiplayer_support.patch @@ -0,0 +1,37 @@ +diff -Nur a/core/hw/maple/maple_cfg.cpp b/core/hw/maple/maple_cfg.cpp +--- a/core/hw/maple/maple_cfg.cpp 2015-08-27 12:17:34.718561243 -0300 ++++ b/core/hw/maple/maple_cfg.cpp 2015-08-27 15:57:10.233166402 -0300 +@@ -22,10 +22,12 @@ + */ + void UpdateInputState(u32 port); + +-extern u16 kcode[4]; +-extern u32 vks[4]; +-extern s8 joyx[4],joyy[4]; +-extern u8 rt[4],lt[4]; ++#define NUM_PORTS 4 ++ ++extern u16 kcode[NUM_PORTS]; ++extern u32 vks[NUM_PORTS]; ++extern s8 joyx[NUM_PORTS],joyy[NUM_PORTS]; ++extern u8 rt[NUM_PORTS],lt[NUM_PORTS]; + + u8 GetBtFromSgn(s8 val) + { +@@ -69,10 +71,13 @@ + void mcfg_CreateDevices() + { + #if DC_PLATFORM == DC_PLATFORM_DREAMCAST +- mcfg_Create(MDT_SegaController,0,5); ++ for (int i = 0; i < NUM_PORTS; i++) ++ { ++ mcfg_Create(MDT_SegaController,i,5); + +- mcfg_Create(MDT_SegaVMU,0,0); +- mcfg_Create(MDT_SegaVMU,0,1); ++ mcfg_Create(MDT_SegaVMU,i,0); ++ mcfg_Create(MDT_SegaVMU,i,1); ++ } + #else + mcfg_Create(MDT_NaomiJamma, 0, 5); + #endif |