# Maintainer (Arch): carstene1ns - http://git.io/ctPKG # Maintainer: André Silva # Maintainer: Márcio Silva # error: in fault_handler -> ../../core/linux/common.cpp : 99 # read: error-mem.txt pkgname=reicast-git pkgver=r1665.915d6b2 pkgrel=1 pkgdesc="A multiplatform Sega Dreamcast emulator" arch=('i686' 'x86_64' 'armv7h') url="http://reicast.com/" license=('GPL2') provides=('reicast') conflicts=('reicast') makedepends=('git') depends=('libgl' 'alsa-plugins' 'libpulse' 'python-evdev' ) source=(reicast::"git+https://github.com/reicast/reicast-emulator.git" 'enable_multiplayer_support.patch' 'fix-dyna-constprop.patch' 'futuristic-memops.patch' 'generalize-mappings.patch' 'loop-tracing.patch' 'loungekatt_rm-nonfree-fp.patch' 'multiplayer.patch' 'multiplayer-unstable.patch' 'refactor-rend-stuff.patch' 'sdl-opengl.patch' 'sh-block-graphs.patch' 'ta-hash-logs.patch') sha256sums=('SKIP' '12bfc58e12b3ee79b0c82159cdc70c76a4b6804f5c6986853156602bb0e6beb0' 'c14287cf2b2289b9de28cedeee06fcb89ca40da50e34607780dce55d7d8e5fd6' 'ce3fe9f10555c473cafbf4e85724ebe7a8535a1fa3bfae3c9bc0fe518024f71e' '4c0227db07dc9fa4713694bc438345261e401e0b10c89b25a3c1d20ac9acd9b9' 'af47982ca67babb18a96014643c2394b45316f474c3b07b4e38079f780606fce' '4a6025daded179e88174057affadbcfd539d919c35c36945aa3273fab0b0cb49' '09097f59200daaa919fee6f50473f4295a7de6702f40ad5e2648d12c9478a080' '7c0e2a158d7d37ddbf99a40d11a0a889e55c1e85f9c17a2602e5a2bc809ff4ac' 'aead8326ac6815b555be03030ffbdc8f6ced625c980e77eca89e570591c5eb34' 'cf386ebaeafce046a1fc971a5b140bb6a1245840ad2c2a341541327ed6f5606c' '94694d1b615facb39b5ee92ed90c6cefc77fab23fb97f2fcc82e0aa6e1cb14c5' 'ead1e44b82c5a58beca6550a7620fc426b7729f0b7e2ebe27583397fac2a574d') 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 extra patches patch -Np1 -i "$srcdir"/fix-dyna-constprop.patch patch -Np1 -i "$srcdir"/futuristic-memops.patch patch -Np1 -i "$srcdir"/generalize-mappings.patch # patch -Np1 -i "$srcdir"/loop-tracing.patch # failed build on i686 patch -Np1 -i "$srcdir"/loungekatt_rm-nonfree-fp.patch patch -Np1 -i "$srcdir"/refactor-rend-stuff.patch patch -Np1 -i "$srcdir"/sdl-opengl.patch patch -Np1 -i "$srcdir"/sh-block-graphs.patch patch -Np1 -i "$srcdir"/ta-hash-logs.patch # Add Multiplayer support (unstable) # core/linux-dist/main.cpp # evdev_controllers[port] = { -1, NULL }; # evdev_device_id[port] = -1; # maple_controller[port].enabled = true; # patch -Np1 -i "$srcdir"/multiplayer-unstable.patch # sed -i 's|kcode[[]port[]]|maple_controller[port].buttons|g # s|lt[[]port[]]|maple_controller[port].trigger_left|g # s|rt[[]port[]]|maple_controller[port].trigger_right|g # s|joyx[[]port[]]|maple_controller[port].stick_x|g # s|joyy[[]port[]]|maple_controller[port].stick_y|g # s|DC_DPAD_LEFT|DC_BTN_DPAD1_LEFT|g # s|DC_DPAD_RIGHT|DC_BTN_DPAD1_RIGHT|g # s|DC_DPAD_UP|DC_BTN_DPAD1_UP|g # s|DC_DPAD_DOWN|DC_BTN_DPAD1_DOWN|g # s|DC_DPAD2_LEFT|DC_BTN_DPAD2_LEFT|g # s|DC_DPAD2_RIGHT|DC_BTN_DPAD2_RIGHT|g # s|DC_DPAD2_UP|DC_BTN_DPAD2_UP|g # s|DC_DPAD2_DOWN|DC_BTN_DPAD2_DOWN|g # s|const u32 sdl_map_|const DreamcastControllerCodes sdl_map_| # s|const u32[*] sdl_map_|const DreamcastControllerCodes* sdl_map_| # \|extern u16|d # \|extern u32|d # \|extern u8 |d # \|extern s8 |d # \|#define DC_|d # \|u16 kcode|d # \|u8 rt|d # \|u8 lt|d # \|u32 vks|d # \|s8 joy|d # \|int port = 0; port| s|4|MAPLE_NUM_PORTS| # \|enum DreamcastController|,+32 d # s|#include ["]types[.]h["]|#include "types.h"\n#include "hw/maple/maple_controller.h"| # ' core/sdl/sdl.cpp \ # core/linux-dist/main.cpp \ # core/linux-dist/main.h \ # shell/apple/emulator-ios/emulator/EmulatorView.mm # sed -i 's|kcode[[]port[]]|maple_controller[port].buttons|g # s|lt[[]port[]]|maple_controller[port].trigger_left|g # s|rt[[]port[]]|maple_controller[port].trigger_right|g # s|joyx[[]port[]]|maple_controller[port].stick_x|g # s|joyy[[]port[]]|maple_controller[port].stick_y|g # s|DC_DPAD_LEFT|DC_BTN_DPAD1_LEFT|g # s|DC_DPAD_RIGHT|DC_BTN_DPAD1_RIGHT|g # s|DC_DPAD_UP|DC_BTN_DPAD1_UP|g # s|DC_DPAD_DOWN|DC_BTN_DPAD1_DOWN|g # s|DC_DPAD2_LEFT|DC_BTN_DPAD2_LEFT|g # s|DC_DPAD2_RIGHT|DC_BTN_DPAD2_RIGHT|g # s|DC_DPAD2_UP|DC_BTN_DPAD2_UP|g # s|DC_DPAD2_DOWN|DC_BTN_DPAD2_DOWN|g # \|extern u16|d # \|extern u8 |d # \|extern s8 |d # \|#define key_CONT_|d # s|#include ["]glshaders[.]h["]|#include "glshaders.h"\n#include "hw/maple/maple_controller.h"| # ' core/rend/gles/gles.cpp # sed -i 's|x11_keymap[[]53[]] = DC_BTN_X;|x11_keymap[53] = DC_BTN_X;\nx11_keymap[52] = DC_BTN_Y;| # ' core/linux-dist/x11.cpp # sed -i 's|DC_BTN_DPAD_|DC_BTN_DPAD1_| # ' core/hw/maple/maple_controller.h \ # core/windows/winmain.cpp \ # core/rend/gles/gles.cpp \ # shell/apple/emulator-osx/emulator-osx/osx-main.mm # 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 sed -i 's|DC_AXIS_LT, 0, 0, DC_AXIS_RT|0, 0, DC_AXIS_RT, DC_AXIS_LT|' core/sdl/sdl.cpp # with generalize-mappings.patch # Enable Pulseaudio sed -i 's|#USE_PULSEAUDIO|USE_PULSEAUDIO|' shell/linux/Makefile } build () { mkdir -vm 0755 "$srcdir"/pkgbuild-dir if [ $CARCH == x86_64 ]; then make -C reicast/shell/linux platform=x64 PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install # Error in platform=lincpp: # ../../core/linux-dist/evdev.cpp:287:65: required from here # /usr/include/c++/5.2.0/tuple:1172:70: error: use of deleted function 'EvdevControllerMapping::EvdevControllerMapping()' # second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...) # mkdir -vm 0755 "$srcdir"/pkgbuild-cpp-dir # make -C reicast/shell/linux platform=lincpp PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-cpp-dir install elif [ $CARCH == i686 ]; then make -C reicast/shell/linux platform=x86 PREFIX=/usr DESTDIR="$srcdir"/pkgbuild-dir install fi } package () { cp -va "$srcdir"/pkgbuild-dir/* "$pkgdir" if [ -d "$srcdir"/pkgbuild-cpp-dir ]; then cp -va "$srcdir"/pkgbuild-cpp-dir/usr/bin/reicast "$pkgdir"/usr/bin/reicast-c++ cp -va "$srcdir"/pkgbuild-cpp-dir/usr/share/applications/reicast.desktop "$pkgdir"/usr/share/applications/reicast-c++.desktop cp -va "$srcdir"/pkgbuild-cpp-dir/usr/share/man/man1/reicast "$pkgdir"/usr/share/man/man1/reicast-c++ sed -i '\|Name| s|reicast|reicast-c++| \|Exec| s|reicast|reicast-c++| ' "$pkgdir"/usr/share/applications/reicast-c++.desktop fi install -Dm 644 reicast/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE }