Skip to content

Commit e79940a

Browse files
committed
pce/pcecd/ra RA core fix didRelease calling didPress
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
1 parent b6b5a68 commit e79940a

File tree

4 files changed

+21
-25
lines changed

4 files changed

+21
-25
lines changed

CoresRetro/RetroArch/PVRetroArchCore/Core/PVRetroArchCore+Controls+PCE.m

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,26 +47,24 @@ - (void)didMovePCEJoystickDirection:(PVPCEButton)button withValue:(CGFloat)value
4747
[self handlePCEButton:button forPlayer:player pressed:(value != 0) value:value];
4848
}
4949
- (void)handlePCEButton:(PVPCEButton)button forPlayer:(NSInteger)player pressed:(BOOL)pressed value:(CGFloat)value {
50+
static float xAxis=0;
51+
static float yAxis=0;
5052

5153
switch (button) {
5254
case(PVPCEButtonUp):
53-
yAxis = pressed ? 1.0 :0;
54-
DLOG(@"Pressed %@ : %@", @"up", pressed ? @"Yes" : @"No");
55+
yAxis=pressed?(!xAxis?1.0:0.5):0;
5556
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
5657
break;
5758
case(PVPCEButtonDown):
58-
yAxis = pressed ? -1.0 :0;
59-
DLOG(@"Pressed %@ : %@", @"down", pressed ? @"Yes" : @"No");
59+
yAxis=pressed?(!xAxis?-1.0:-0.5):0;
6060
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
6161
break;
6262
case(PVPCEButtonLeft):
63-
xAxis = pressed ? -1.0 :0;
64-
DLOG(@"Pressed %@ : %@", @"left", pressed ? @"Yes" : @"No");
63+
xAxis=pressed?(!yAxis?-1.0:-0.5):0;
6564
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
6665
break;
6766
case(PVPCEButtonRight):
68-
xAxis = pressed ? 1.0 :0;
69-
DLOG(@"Pressed %@ : %@", @"right", pressed ? @"Yes" : @"No");
67+
xAxis=pressed?(!yAxis?1.0:0.5):0;
7068
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
7169
break;
7270
case(PVPCEButtonButton1):

CoresRetro/RetroArch/PVRetroArchCore/Core/PVRetroArchCore+Controls+PCECD.m

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,37 +36,35 @@ @interface PVRetroArchCoreBridge (PCEControls) <PVPCECDSystemResponderClient>
3636
@implementation PVRetroArchCoreBridge (PCEControls)
3737
#pragma mark - Control
3838
- (void)didPushPCECDButton:(PVPCECDButton)button forPlayer:(NSInteger)player {
39-
[self handlePCEButton:button forPlayer:player pressed:true value:1];
39+
[self handlePCECDButton:button forPlayer:player pressed:true value:1];
4040
}
4141

4242
- (void)didReleasePCECDButton:(PVPCECDButton)button forPlayer:(NSInteger)player {
43-
[self handlePCEButton:button forPlayer:player pressed:false value:0];
43+
[self handlePCECDButton:button forPlayer:player pressed:false value:0];
4444
}
4545

4646
- (void)didMovePCECDJoystickDirection:(PVPCECDButton)button withValue:(CGFloat)value forPlayer:(NSInteger)player {
47-
[self handlePCEButton:button forPlayer:player pressed:(value != 0) value:value];
47+
[self handlePCECDButton:button forPlayer:player pressed:(value != 0) value:value];
4848
}
49-
- (void)handlePCEButton:(PVPCECDButton)button forPlayer:(NSInteger)player pressed:(BOOL)pressed value:(CGFloat)value {
49+
- (void)handlePCECDButton:(PVPCECDButton)button forPlayer:(NSInteger)player pressed:(BOOL)pressed value:(CGFloat)value {
50+
static float xAxis=0;
51+
static float yAxis=0;
5052

5153
switch (button) {
5254
case(PVPCECDButtonUp):
53-
yAxis = pressed ? 1.0 :0;
54-
DLOG(@"Pressed %@ : %@", @"up", pressed ? @"Yes" : @"No");
55+
yAxis=pressed?(!xAxis?1.0:0.5):0;
5556
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
5657
break;
5758
case(PVPCECDButtonDown):
58-
yAxis = pressed ? -1.0 :0;
59-
DLOG(@"Pressed %@ : %@", @"down", pressed ? @"Yes" : @"No");
59+
yAxis=pressed?(!xAxis?-1.0:-0.5):0;
6060
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
6161
break;
6262
case(PVPCECDButtonLeft):
63-
xAxis = pressed ? -1.0 :0;
64-
DLOG(@"Pressed %@ : %@", @"left", pressed ? @"Yes" : @"No");
63+
xAxis=pressed?(!yAxis?-1.0:-0.5):0;
6564
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
6665
break;
6766
case(PVPCECDButtonRight):
68-
xAxis = pressed ? 1.0 :0;
69-
DLOG(@"Pressed %@ : %@", @"right", pressed ? @"Yes" : @"No");
67+
xAxis=pressed?(!yAxis?1.0:0.5):0;
7068
[touch_controller.extendedGamepad.dpad setValueForXAxis:xAxis yAxis:yAxis];
7169
break;
7270
case(PVPCECDButtonButton1):

CoresRetro/RetroArch/PVRetroArchCore/Swift/PVRetroArchCoreCore.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ extension PVRetroArchCoreCore: PVPCESystemResponderClient {
421421
}
422422

423423
public func didRelease(_ button: PVCoreBridge.PVPCEButton, forPlayer player: Int) {
424-
(_bridge as! PVPCESystemResponderClient).didPush(button, forPlayer: player)
424+
(_bridge as! PVPCESystemResponderClient).didRelease(button, forPlayer: player)
425425
}
426426
}
427427

@@ -432,7 +432,7 @@ extension PVRetroArchCoreCore: PVPCECDSystemResponderClient {
432432
}
433433

434434
public func didRelease(_ button: PVCoreBridge.PVPCECDButton, forPlayer player: Int) {
435-
(_bridge as! PVPCECDSystemResponderClient).didPush(button, forPlayer: player)
435+
(_bridge as! PVPCECDSystemResponderClient).didRelease(button, forPlayer: player)
436436
}
437437
}
438438

@@ -443,7 +443,7 @@ extension PVRetroArchCoreCore: PVPCFXSystemResponderClient {
443443
}
444444

445445
public func didRelease(_ button: PVCoreBridge.PVPCFXButton, forPlayer player: Int) {
446-
(_bridge as! PVPCFXSystemResponderClient).didPush(button, forPlayer: player)
446+
(_bridge as! PVPCFXSystemResponderClient).didRelease(button, forPlayer: player)
447447
}
448448
}
449449

PVUI/Sources/PVUIBase/SwiftUI/DeltaSkins/Models/DeltaSkinInputHandler.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,7 +1326,7 @@ public class DeltaSkinInputHandler: ObservableObject {
13261326
return true
13271327
} else {
13281328
ELOG("Core expcted to be `PVPCESystemResponderClient` but isn't.")
1329-
return false
1329+
//return false
13301330
}
13311331
case .PCECD:
13321332
if let r = core as? PVPCECDSystemResponderClient {
@@ -1339,7 +1339,7 @@ public class DeltaSkinInputHandler: ObservableObject {
13391339
return true
13401340
} else {
13411341
ELOG("Core expcted to be `PVPCECDSystemResponderClient` but isn't.")
1342-
return false
1342+
//return false
13431343
}
13441344
case .MasterSystem:
13451345
if let r = core as? PVMasterSystemSystemResponderClient {

0 commit comments

Comments
 (0)