Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Oct 2017 18:45:55 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org
Subject:   svn commit: r453022 - in branches/2017Q4/emulators: ppsspp ppsspp-devel ppsspp-devel/files ppsspp/files
Message-ID:  <201710271845.v9RIjt49006554@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Oct 27 18:45:55 2017
New Revision: 453022
URL: https://svnweb.freebsd.org/changeset/ports/453022

Log:
  MFH: r452123
  
  emulators/ppsspp: unbreak joystick mappings with OLDJOY=off (default)
  
  Changes:	https://github.com/hrydgard/ppsspp/commit/ac0052c6af92
  Approved by:	ports-secteam (swills)

Deleted:
  branches/2017Q4/emulators/ppsspp-devel/files/
Modified:
  branches/2017Q4/emulators/ppsspp-devel/Makefile
  branches/2017Q4/emulators/ppsspp/Makefile
  branches/2017Q4/emulators/ppsspp/distinfo
  branches/2017Q4/emulators/ppsspp/files/extra-patch-old-joy
Directory Properties:
  branches/2017Q4/   (props changed)

Modified: branches/2017Q4/emulators/ppsspp-devel/Makefile
==============================================================================
--- branches/2017Q4/emulators/ppsspp-devel/Makefile	Fri Oct 27 18:43:25 2017	(r453021)
+++ branches/2017Q4/emulators/ppsspp-devel/Makefile	Fri Oct 27 18:45:55 2017	(r453022)
@@ -14,6 +14,4 @@ GH_TUPLE=	hrydgard:glslang:136b1e2d:glslang/ext/glslan
 MASTERDIR=	${.CURDIR}/../ppsspp
 DISTINFO_FILE=	${.CURDIR}/distinfo
 
-OLDJOY_EXTRA_PATCHES=	${.CURDIR}/files/extra-patch-old-joy
-
 .include "${MASTERDIR}/Makefile"

Modified: branches/2017Q4/emulators/ppsspp/Makefile
==============================================================================
--- branches/2017Q4/emulators/ppsspp/Makefile	Fri Oct 27 18:43:25 2017	(r453021)
+++ branches/2017Q4/emulators/ppsspp/Makefile	Fri Oct 27 18:45:55 2017	(r453022)
@@ -3,7 +3,7 @@
 PORTNAME=	ppsspp
 DISTVERSIONPREFIX=	v
 DISTVERSION?=	1.4.2
-PORTREVISION?=	3
+PORTREVISION?=	4
 CATEGORIES=	emulators
 # XXX Get from Debian once #697821 lands
 MASTER_SITES=	https://bazaar.launchpad.net/~sergio-br2/${PORTNAME}/debian-sdl/download/5/${PORTNAME}.1-20140802045408-dd26dik367ztj5xg-8/:manpage
@@ -13,6 +13,7 @@ EXTRACT_ONLY=	${DISTFILES:N*\:manpage:C/:.*//}
 .if !defined(PKGNAMESUFFIX) || ${PKGNAMESUFFIX:N*-devel}
 PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
 PATCHFILES=	e33acdc5e922.patch:-p1
+PATCHFILES+=	ac0052c6af92.patch:-p1
 .endif
 
 MAINTAINER=	jbeich@FreeBSD.org
@@ -58,7 +59,7 @@ OPTIONS_SLAVE?=	SDL
 OPTIONS_EXCLUDE:=	${OPTIONS_SINGLE_GUI}
 
 OLDJOY_DESC=	Old joystick support with fixed button mappings (deprecated)
-OLDJOY_EXTRA_PATCHES?=	${PATCHDIR}/extra-patch-old-joy
+OLDJOY_EXTRA_PATCHES=	${PATCHDIR}/extra-patch-old-joy
 QT5_USE=	QT5=qmake_build,buildtools_build,linguisttools_build,gui,opengl,widgets
 QT5_CMAKE_BOOL=	USING_QT_UI
 QT5_VARS=	EXENAME=PPSSPPQt

Modified: branches/2017Q4/emulators/ppsspp/distinfo
==============================================================================
--- branches/2017Q4/emulators/ppsspp/distinfo	Fri Oct 27 18:43:25 2017	(r453021)
+++ branches/2017Q4/emulators/ppsspp/distinfo	Fri Oct 27 18:45:55 2017	(r453022)
@@ -15,3 +15,5 @@ SHA256 (Kingcom-tinyformat-Release-2.0.1-7-gb7f5a22_GH
 SIZE (Kingcom-tinyformat-Release-2.0.1-7-gb7f5a22_GH0.tar.gz) = 22286
 SHA256 (e33acdc5e922.patch) = 26db4fe256c3947193b379ea7d17b0aae59e4339ae3822b53ef40fd6dca07004
 SIZE (e33acdc5e922.patch) = 1819
+SHA256 (ac0052c6af92.patch) = 91beb0f70965a433eddb15e1088ab3091beac99e921944fbf79cee16bbb7ee60
+SIZE (ac0052c6af92.patch) = 3078

Modified: branches/2017Q4/emulators/ppsspp/files/extra-patch-old-joy
==============================================================================
--- branches/2017Q4/emulators/ppsspp/files/extra-patch-old-joy	Fri Oct 27 18:43:25 2017	(r453021)
+++ branches/2017Q4/emulators/ppsspp/files/extra-patch-old-joy	Fri Oct 27 18:45:55 2017	(r453022)
@@ -7,10 +7,11 @@ https://github.com/hrydgard/ppsspp/commit/182b9e0fdae3
 https://github.com/hrydgard/ppsspp/commit/d6b81236626f
 https://github.com/hrydgard/ppsspp/commit/b058b987ad0f
 https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
+https://github.com/hrydgard/ppsspp/commit/ac0052c6af92
 
---- SDL/SDLJoystick.cpp.orig	2017-03-30 12:14:27 UTC
+--- SDL/SDLJoystick.cpp.orig	2017-10-04 19:26:40 UTC
 +++ SDL/SDLJoystick.cpp
-@@ -1,12 +1,7 @@
+@@ -1,13 +1,8 @@
  #include "SDL/SDLJoystick.h"
  #include "Core/Config.h"
 -#include "Common/FileUtil.h"
@@ -18,18 +19,20 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
  
  #include <iostream>
 -#include <string>
--
--using namespace std;
  
+-using namespace std;
+-
  static int SDLJoystickEventHandlerWrapper(void* userdata, SDL_Event* event)
  {
-@@ -17,65 +12,32 @@ static int SDLJoystickEventHandlerWrappe
+ 	static_cast<SDLJoystick *>(userdata)->ProcessInput(*event);
+@@ -17,79 +12,30 @@ static int SDLJoystickEventHandlerWrapper(void* userda
  SDLJoystick::SDLJoystick(bool init_SDL ) : registeredAsEventHandler(false) {
  	SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
  	if (init_SDL) {
 -		SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO | SDL_INIT_GAMECONTROLLER);
--	}
--
++		SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO);
+ 	}
+ 
 -	const char *dbPath = "gamecontrollerdb.txt";
 -	cout << "loading control pad mappings from " << dbPath << ": ";
 -
@@ -44,52 +47,63 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
 -		delete[] mappingData;
 -	} else {
 -		cout << "gamecontrollerdb.txt missing" << endl;
-+		SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO);
- 	}
+-	}
 -	cout << "SUCCESS!" << endl;
 -	setUpControllers();
 -}
- 
+-
 -void SDLJoystick::setUpControllers() {
  	int numjoys = SDL_NumJoysticks();
 +	SDL_JoystickEventState(SDL_ENABLE);
  	for (int i = 0; i < numjoys; i++) {
 -		setUpController(i);
--	}
--	if (controllers.size() > 0) {
--		cout << "pad 1 has been assigned to control pad: " << SDL_GameControllerName(controllers.front()) << endl;
 +		joys.push_back(SDL_JoystickOpen(i));
 +//		printf("Initialized joystick %d: %s",i,SDL_JoystickNameForIndex(i));
 +		if(strstr(SDL_JoystickNameForIndex(i),"PLAYSTATION(R)3 Controller"))
 +			g_Config.bPS3Controller = true;
  	}
+-	if (controllers.size() > 0) {
+-		cout << "pad 1 has been assigned to control pad: " << SDL_GameControllerName(controllers.front()) << endl;
+-	}
 -}
  
 -void SDLJoystick::setUpController(int deviceIndex) {
--	if (SDL_IsGameController(deviceIndex)) {
--		SDL_GameController *controller = SDL_GameControllerOpen(deviceIndex);
--		if (controller) {
--			if (SDL_GameControllerGetAttached(controller)) {
--				controllers.push_back(controller);
--				controllerDeviceMap[SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(controller))] = deviceIndex;
--				cout << "found control pad: " << SDL_GameControllerName(controller) << ", loading mapping: ";
--				auto mapping = SDL_GameControllerMapping(controller);
--				if (mapping == NULL) {
--					cout << "FAILED" << endl;
--				} else {
--					cout << "SUCCESS, mapping is:" << endl << mapping << endl;
--				}
+-	if (!SDL_IsGameController(deviceIndex)) {
+-		cout << "Control pad device " << deviceIndex << " not supported by SDL game controller database, attempting to create default mapping..." << endl;
+-		int cbGUID = 33;
+-		char pszGUID[cbGUID];
+-		SDL_Joystick* joystick = SDL_JoystickOpen(deviceIndex);
+-		SDL_JoystickGetGUIDString(SDL_JoystickGetGUID(joystick), pszGUID, cbGUID);
+-		// create default mapping - this is the PS3 dual shock mapping
+-		std::string mapping = string(pszGUID) + "," + string(SDL_JoystickName(joystick)) + ",x:b3,a:b0,b:b1,y:b2,back:b8,guide:b10,start:b9,dpleft:b15,dpdown:b14,dpright:b16,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b6,rightshoulder:b5,righttrigger:a5,leftstick:b7,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4";
+-		if (SDL_GameControllerAddMapping(mapping.c_str()) == 1){
+-			cout << "Added default mapping ok" << endl;
+-		} else {
+-			cout << "Failed to add default mapping" << endl;
+-		}
+-		SDL_JoystickClose(joystick);
+-	}
+-	SDL_GameController *controller = SDL_GameControllerOpen(deviceIndex);
+-	if (controller) {
+-		if (SDL_GameControllerGetAttached(controller)) {
+-			controllers.push_back(controller);
+-			controllerDeviceMap[SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(controller))] = deviceIndex;
+-			cout << "found control pad: " << SDL_GameControllerName(controller) << ", loading mapping: ";
+-			auto mapping = SDL_GameControllerMapping(controller);
+-			if (mapping == NULL) {
+-				//cout << "FAILED" << endl;
+-				cout << "Could not find mapping in SDL2 controller database" << endl;
 -			} else {
--				SDL_GameControllerClose(controller);
+-				cout << "SUCCESS, mapping is:" << endl << mapping << endl;
 -			}
+-		} else {
+-			SDL_GameControllerClose(controller);
 -		}
 -	}
 +        if (g_Config.bPS3Controller)
 +                fillMappingPS3();
 +        else
 +                fillMapping();
-+
-+
  }
  
  SDLJoystick::~SDLJoystick() {
@@ -103,7 +117,7 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
  	}
  }
  
-@@ -84,107 +46,124 @@ void SDLJoystick::registerEventHandler()
+@@ -98,107 +44,124 @@ void SDLJoystick::registerEventHandler() {
  	registeredAsEventHandler = true;
  }
  
@@ -281,7 +295,8 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
 +			joys[deviceIndex] = SDL_JoystickOpen(deviceIndex);
 +			SDL_JoystickEventState(SDL_ENABLE);
 +			break;
-+		}
+ 		}
+-		break;
 +
 +	case SDL_JOYDEVICEREMOVED:
 +		{
@@ -291,8 +306,7 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
 +				joys[deviceIndex] = 0;
 +			}
 +			break;
- 		}
--		break;
++		}
  	}
  }
  
@@ -310,7 +324,7 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
 -	return it->second;
 +	return -1;
  }
---- SDL/SDLJoystick.h.orig	2017-03-30 12:14:27 UTC
+--- SDL/SDLJoystick.h.orig	2017-10-04 19:26:40 UTC
 +++ SDL/SDLJoystick.h
 @@ -1,9 +1,11 @@
  #pragma once
@@ -324,7 +338,7 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
  #include "SDL_thread.h"
  #endif
  
-@@ -21,11 +23,119 @@ public:
+@@ -21,11 +23,119 @@ class SDLJoystick{ (public)
  	void ProcessInput(SDL_Event &event);
  
  private:
@@ -450,9 +464,9 @@ https://github.com/hrydgard/ppsspp/commit/1b699363ca4d
 +
 +	int getDeviceIndex(int instanceId);
  };
---- ext/native/base/PCMain.cpp.orig	2017-03-30 12:14:27 UTC
+--- ext/native/base/PCMain.cpp.orig	2017-10-04 19:26:40 UTC
 +++ ext/native/base/PCMain.cpp
-@@ -399,7 +399,7 @@ int main(int argc, char *argv[]) {
+@@ -428,7 +428,7 @@ int main(int argc, char *argv[]) {
  	NativeGetAppInfo(&app_name, &app_name_nice, &landscape, &version);
  
  	bool joystick_enabled = true;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710271845.v9RIjt49006554>