SameBoy | Accurate GB/GBC emulator |
| download: https://git.y1.nz/archives/sameboy.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit e1fa28bd5417e5c2d180c3d12f6b4f1aa342cf2d parent 052e2429e097bab333619f9f1caa75d95e03e148 Author: Lior Halphon <LIJI32@gmail.com> Date: Mon, 31 Oct 2022 22:49:17 +0200 Adjust Joy-Con terminology Diffstat:
| M | Cocoa/GBJoyConManager.m | 46 | +++++++++++++++++++++++----------------------- |
| M | Cocoa/GBView.m | 4 | ++-- |
| R | Cocoa/JoyConCombinedTemplate.png -> Cocoa/JoyConDualTemplate.png | 0 | |
| R | Cocoa/JoyConCombinedTemplate@2x.png -> Cocoa/JoyConDualTemplate@2x.png | 0 | |
| M | Cocoa/Preferences.xib | 36 | ++++++++++++++++++------------------ |
| M | JoyKit/JOYController.h | 4 | ++-- |
| M | JoyKit/JOYController.m | 12 | ++++++------ |
7 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/Cocoa/GBJoyConManager.m b/Cocoa/GBJoyConManager.m @@ -7,7 +7,7 @@ GBTintedImageCell *_tintedImageCell; NSImageCell *_imageCell; NSMutableDictionary<NSString *, NSString *> *_pairings; - NSMutableDictionary<NSString *, NSNumber *> *_orientationSettings; + NSMutableDictionary<NSString *, NSNumber *> *_gripSettings; NSButton *_autoPairCheckbox; bool _unpairing; } @@ -50,7 +50,7 @@ _tintedImageCell.tint = [NSColor selectedMenuItemColor]; } _pairings = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"GBJoyConPairings"] ?: @{} mutableCopy]; - _orientationSettings = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"GBJoyConOrientations"] ?: @{} mutableCopy]; + _gripSettings = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"GBJoyConGrips"] ?: @{} mutableCopy]; // Sanity check the pairings for (NSString *key in _pairings) { @@ -85,11 +85,11 @@ case JOYJoyConTypeNone: return nil; case JOYJoyConTypeLeft: - return [NSImage imageNamed:[NSString stringWithFormat:@"%sJoyConLeftTemplate", controller.usesHorizontalJoyConMode? "Horizontal" :""]]; + return [NSImage imageNamed:[NSString stringWithFormat:@"%sJoyConLeftTemplate", controller.usesHorizontalJoyConGrip? "Horizontal" :""]]; case JOYJoyConTypeRight: - return [NSImage imageNamed:[NSString stringWithFormat:@"%sJoyConRightTemplate", controller.usesHorizontalJoyConMode? "Horizontal" :""]]; - case JOYJoyConTypeCombined: - return [NSImage imageNamed:@"JoyConCombinedTemplate"]; + return [NSImage imageNamed:[NSString stringWithFormat:@"%sJoyConRightTemplate", controller.usesHorizontalJoyConGrip? "Horizontal" :""]]; + case JOYJoyConTypeDual: + return [NSImage imageNamed:@"JoyConDualTemplate"]; } } case 1: { @@ -104,19 +104,19 @@ return ret; } case 2: - return @([(_orientationSettings[controller.uniqueID] ?: @(-1)) unsignedIntValue] + 1); + return @([(_gripSettings[controller.uniqueID] ?: @(-1)) unsignedIntValue] + 1); } return nil; } -- (void)updateOrientationForController:(JOYController *)controller +- (void)updateGripForController:(JOYController *)controller { - NSNumber *orientation = _orientationSettings[controller.uniqueID]; - if (!orientation) { - controller.usesHorizontalJoyConMode = [[NSUserDefaults standardUserDefaults] boolForKey:@"GBJoyConsDefaultsToHorizontal"]; + NSNumber *grip = _gripSettings[controller.uniqueID]; + if (!grip) { + controller.usesHorizontalJoyConGrip = [[NSUserDefaults standardUserDefaults] boolForKey:@"GBJoyConsDefaultsToHorizontal"]; return; } - controller.usesHorizontalJoyConMode = [orientation unsignedIntValue] == 1; + controller.usesHorizontalJoyConGrip = [grip unsignedIntValue] == 1; } - (void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row @@ -125,22 +125,22 @@ if (columnIndex != 2) return; if (row >= [self numberOfRowsInTableView:tableView]) return; JOYController *controller = self.joycons[row]; - if (controller.joyconType == JOYJoyConTypeCombined) { + if (controller.joyconType == JOYJoyConTypeDual) { return; } switch ([object unsignedIntValue]) { case 0: - [_orientationSettings removeObjectForKey:controller.uniqueID]; + [_gripSettings removeObjectForKey:controller.uniqueID]; break; case 1: - _orientationSettings[controller.uniqueID] = @(0); + _gripSettings[controller.uniqueID] = @(0); break; case 2: - _orientationSettings[controller.uniqueID] = @(1); + _gripSettings[controller.uniqueID] = @(1); break; } - [[NSUserDefaults standardUserDefaults] setObject:_orientationSettings forKey:@"GBJoyConOrientations"]; - [self updateOrientationForController:controller]; + [[NSUserDefaults standardUserDefaults] setObject:_gripSettings forKey:@"GBJoyConGrips"]; + [self updateGripForController:controller]; } - (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row @@ -150,7 +150,7 @@ unsigned columnIndex = [[tableView tableColumns] indexOfObject:tableColumn]; if (columnIndex == 2) { JOYCombinedController *controller = (JOYCombinedController *)self.joycons[row]; - if (controller.joyconType == JOYJoyConTypeCombined) { + if (controller.joyconType == JOYJoyConTypeDual) { NSButtonCell *cell = [[NSButtonCell alloc] initTextCell:@"Separate Joy-Cons"]; cell.bezelStyle = NSBezelStyleRounded; cell.action = @selector(invoke); @@ -185,7 +185,7 @@ - (void)controllerConnected:(JOYController *)controller { - [self updateOrientationForController:controller]; + [self updateGripForController:controller]; for (JOYController *partner in [JOYController allControllers]) { if ([partner.uniqueID isEqualToString:_pairings[controller.uniqueID]]) { [self pairJoyCon:controller withJoyCon:partner]; @@ -241,8 +241,8 @@ _pairings[first.uniqueID] = second.uniqueID; _pairings[second.uniqueID] = first.uniqueID; - first.usesHorizontalJoyConMode = false; - second.usesHorizontalJoyConMode = false; + first.usesHorizontalJoyConGrip = false; + second.usesHorizontalJoyConGrip = false; [[NSUserDefaults standardUserDefaults] setObject:_pairings forKey:@"GBJoyConPairings"]; return [[JOYCombinedController alloc] initWithChildren:@[first, second]]; } @@ -305,7 +305,7 @@ { [[NSUserDefaults standardUserDefaults] setBool:sender.state forKey:@"GBJoyConsDefaultsToHorizontal"]; for (JOYController *controller in self.joycons) { - [self updateOrientationForController:controller]; + [self updateGripForController:controller]; } if (_arrangementMode) { [self.tableView reloadData]; diff --git a/Cocoa/GBView.m b/Cocoa/GBView.m @@ -524,8 +524,8 @@ static const uint8_t workboy_vk_to_key[] = { if ([[NSUserDefaults standardUserDefaults] boolForKey:@"GBMBC7JoystickOverride"]) return; if (self.mouseControlsActive) return; if (controller != lastController) return; - // When using a combined two Joy-Cons, ignore motion data from the left Joy-Con - if (controller.joyconType == JOYJoyConTypeCombined) { + // When using Joy-Cons in dual-controller grip, ignore motion data from the left Joy-Con + if (controller.joyconType == JOYJoyConTypeDual) { for (JOYController *child in [(JOYCombinedController *)controller children]) { if (child.joyconType != JOYJoyConTypeRight && [child.axes3D containsObject:axes]) { return; diff --git a/Cocoa/JoyConCombinedTemplate.png b/Cocoa/JoyConDualTemplate.png Binary files differ. diff --git a/Cocoa/JoyConCombinedTemplate@2x.png b/Cocoa/JoyConDualTemplate@2x.png Binary files differ. diff --git a/Cocoa/Preferences.xib b/Cocoa/Preferences.xib @@ -1322,7 +1322,7 @@ <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xhI-kr-h3J"> <rect key="frame" x="18" y="287" width="485" height="18"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> - <buttonCell key="cell" type="check" title="Automatically pair together left and right Joy-Cons when they're connected" bezelStyle="regularSquare" imagePosition="left" state="on" focusRingType="none" inset="2" id="dPv-XO-6Fp"> + <buttonCell key="cell" type="check" title="Automatically pair together Joy-Cons to a dual-controller grip" bezelStyle="regularSquare" imagePosition="left" state="on" focusRingType="none" inset="2" id="dPv-XO-6Fp"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> <font key="font" metaFont="system"/> </buttonCell> @@ -1333,7 +1333,7 @@ <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DaV-H7-VVr"> <rect key="frame" x="18" y="266" width="485" height="18"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> - <buttonCell key="cell" type="check" title="Single Joy-Cons default to horizontal orientation" bezelStyle="regularSquare" imagePosition="left" state="on" focusRingType="none" inset="2" id="18L-S2-0wg"> + <buttonCell key="cell" type="check" title="Single Joy-Cons default to horizontal group" bezelStyle="regularSquare" imagePosition="left" state="on" focusRingType="none" inset="2" id="18L-S2-0wg"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> <font key="font" metaFont="system"/> </buttonCell> @@ -1341,10 +1341,21 @@ <action selector="toggleHorizontalDefault:" target="fMo-Ht-Dis" id="yhh-pY-XOq"/> </connections> </button> + <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6Tm-Sf-8w1"> + <rect key="frame" x="432" y="13" width="75" height="32"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> + <buttonCell key="cell" type="push" title="Close" bezelStyle="rounded" alignment="center" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="leb-Jp-RfR"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="closeJoyConsSheet:" target="QvC-M9-y7g" id="K2P-xu-B1o"/> + </connections> + </button> <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gmw-t5-3nG"> <rect key="frame" x="18" y="20" width="411" height="14"/> <autoresizingMask key="autoresizingMask" widthSizable="YES"/> - <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" focusRingType="none" title="Hold L and R on two Joy-Cons to pair them together" id="kRC-pE-5Pd"> + <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" focusRingType="none" title="Hold L and R on two Joy-Cons to pair them to a dual-controller grip" id="kRC-pE-5Pd"> <font key="font" metaFont="smallSystem"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -1394,14 +1405,14 @@ Test</string> <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </tableHeaderCell> - <popUpButtonCell key="dataCell" type="bevel" title="Horizontal Orientation" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="bezel" imageScaling="proportionallyDown" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="IJX-Qq-TaU" id="rif-6W-xsN"> + <popUpButtonCell key="dataCell" type="bevel" title="Horizontal Grip" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="bezel" imageScaling="proportionallyDown" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="IJX-Qq-TaU" id="rif-6W-xsN"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> <font key="font" metaFont="system"/> <menu key="menu" id="36b-lh-dDy"> <items> - <menuItem title="Default Orientation" id="8im-vm-Bj9"/> - <menuItem title="Vertical Orientation" id="bU8-po-vzF"/> - <menuItem title="Horizontal Orientation" state="on" id="IJX-Qq-TaU"/> + <menuItem title="Default Grip" id="8im-vm-Bj9"/> + <menuItem title="Vertical Grip" id="bU8-po-vzF"/> + <menuItem title="Horizontal Grip" state="on" id="IJX-Qq-TaU"/> </items> </menu> </popUpButtonCell> @@ -1424,17 +1435,6 @@ Test</string> <autoresizingMask key="autoresizingMask"/> </scroller> </scrollView> - <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6Tm-Sf-8w1"> - <rect key="frame" x="432" y="13" width="75" height="32"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> - <buttonCell key="cell" type="push" title="Close" bezelStyle="rounded" alignment="center" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="leb-Jp-RfR"> - <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="system"/> - </buttonCell> - <connections> - <action selector="closeJoyConsSheet:" target="QvC-M9-y7g" id="K2P-xu-B1o"/> - </connections> - </button> </subviews> </view> <point key="canvasLocation" x="-1062.5" y="-96"/> diff --git a/JoyKit/JOYController.h b/JoyKit/JOYController.h @@ -33,7 +33,7 @@ typedef enum { JOYJoyConTypeNone, JOYJoyConTypeLeft, JOYJoyConTypeRight, - JOYJoyConTypeCombined, + JOYJoyConTypeDual, } JOYJoyConType; @interface JOYController : NSObject @@ -55,7 +55,7 @@ typedef enum { @property (readonly) JOYJoyConType joyconType; @property (readonly) NSString *deviceName; @property (readonly) NSString *uniqueID; -@property (nonatomic) bool usesHorizontalJoyConMode; +@property (nonatomic) bool usesHorizontalJoyConGrip; @end @interface JOYCombinedController : JOYController diff --git a/JoyKit/JOYController.m b/JoyKit/JOYController.m @@ -1111,15 +1111,15 @@ typedef union { return ret; } -- (void)setUsesHorizontalJoyConMode:(bool)usesHorizontalJoyConMode +- (void)setusesHorizontalJoyConGrip:(bool)usesHorizontalJoyConGrip { - if (usesHorizontalJoyConMode == _usesHorizontalJoyConMode) return; // Nothing to do - _usesHorizontalJoyConMode = usesHorizontalJoyConMode; + if (usesHorizontalJoyConGrip == _usesHorizontalJoyConGrip) return; // Nothing to do + _usesHorizontalJoyConGrip = usesHorizontalJoyConGrip; switch (self.joyconType) { case JOYJoyConTypeLeft: case JOYJoyConTypeRight: { NSArray <JOYButton *> *buttons = _buttons.allValues; // not self.buttons to skip emulated buttons - if (!usesHorizontalJoyConMode) { + if (!usesHorizontalJoyConGrip) { for (JOYAxes2D *axes in self.axes2D) { axes.rotation = 0; } @@ -1476,12 +1476,12 @@ typedef union { if (_children.count != 2) return JOYJoyConTypeNone; if (_children[0].joyconType == JOYJoyConTypeLeft && _children[1].joyconType == JOYJoyConTypeRight) { - return JOYJoyConTypeCombined; + return JOYJoyConTypeDual; } if (_children[1].joyconType == JOYJoyConTypeLeft && _children[0].joyconType == JOYJoyConTypeRight) { - return JOYJoyConTypeCombined; + return JOYJoyConTypeDual; } return JOYJoyConTypeNone; }
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.