summaryrefslogtreecommitdiff
path: root/pcr
diff options
context:
space:
mode:
authorcoadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu>2015-09-16 13:17:54 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-09-22 16:15:05 -0300
commitf3f5876239ae98af61562c09425373b9a2fdfb57 (patch)
treedb49712f3cd40e05983bc9599c9305ede5b7a0be /pcr
parent764522271778b59ebc16c7bc3087ffe5e17a432b (diff)
pcr/reicast-git: rebuild pkgbuild and add multilib pkg
Diffstat (limited to 'pcr')
-rw-r--r--pcr/reicast-git/PKGBUILD15
-rw-r--r--pcr/reicast-git/wait_if_two_frames_already_in_flight.patch51
-rw-r--r--pcr/reicast-multilib-git/PKGBUILD53
-rw-r--r--pcr/reicast-multilib-git/enable_multiplayer_support.patch37
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