summaryrefslogtreecommitdiff
path: root/macosx/Source
diff options
context:
space:
mode:
authoriCatButler <i.am.catbutler@gmail.com>2018-03-13 17:23:50 +0000
committerGitHub <noreply@github.com>2018-03-13 17:23:50 +0000
commit15fe3782c1375634b7a9bd9bbbadfd75e7b06fed (patch)
tree6660b9aeb3f4aedf384a0a1c76d3a849d4f43146 /macosx/Source
parent540dccfdbd162f247d2390ac35df4144b28aab44 (diff)
parent13c17e4b6ef1eee9ad60d3db2016ebb8e54bf337 (diff)
downloadpcsxr-15fe3782c1375634b7a9bd9bbbadfd75e7b06fed.tar.gz
Merge pull request #5 from MrLavender/master
Fix 64-bit dynarec integration and update OS X build
Diffstat (limited to 'macosx/Source')
-rw-r--r--macosx/Source/ConfigurationController.h4
-rw-r--r--macosx/Source/ConfigurationController.m28
-rw-r--r--macosx/Source/PcsxrController.m14
-rw-r--r--macosx/Source/PgxpController.h24
-rw-r--r--macosx/Source/PgxpController.m98
-rw-r--r--macosx/Source/hotkeys.m6
6 files changed, 171 insertions, 3 deletions
diff --git a/macosx/Source/ConfigurationController.h b/macosx/Source/ConfigurationController.h
index 90dde217..595b91f8 100644
--- a/macosx/Source/ConfigurationController.h
+++ b/macosx/Source/ConfigurationController.h
@@ -39,10 +39,14 @@ extern NSString *const memCardChangeNumberKey;
@property (weak) IBOutlet NSButtonCell *noFastBootCell;
@property (weak) IBOutlet NSButtonCell *enableNetPlayCell;
@property (weak) IBOutlet NSButtonCell *widescreen;
+@property (weak) IBOutlet NSButtonCell *cpuOverclocking;
+@property (weak) IBOutlet NSButtonCell *wipeoutMemHack;
+@property (weak) IBOutlet NSComboBox *cpuOverclockingValue;
- (IBAction)setCheckbox:(id)sender;
- (IBAction)setCheckboxInverse:(id)sender;
- (IBAction)setVideoType:(id)sender;
+- (IBAction)setOverclockValue:(NSComboBox *)sender;
+ (void)setMemoryCard:(NSInteger)theCard toPath:(NSString *)theFile;
+ (void)setMemoryCard:(NSInteger)theCard toURL:(NSURL *)theURL;
diff --git a/macosx/Source/ConfigurationController.m b/macosx/Source/ConfigurationController.m
index c7b63335..7485e067 100644
--- a/macosx/Source/ConfigurationController.m
+++ b/macosx/Source/ConfigurationController.m
@@ -41,6 +41,9 @@ NSString *const memCardChangeNumberKey = @"PcsxrMemoryCardThatChangedKey";
@synthesize memCardEdit;
@synthesize hkController;
@synthesize hkTab;
+@synthesize cpuOverclocking;
+@synthesize wipeoutMemHack;
+@synthesize cpuOverclockingValue;
+ (void)setMemoryCard:(NSInteger)theCard toURL:(NSURL *)theURL;
{
@@ -178,6 +181,26 @@ NSString *const memCardChangeNumberKey = @"PcsxrMemoryCardThatChangedKey";
}
}
+- (IBAction)setOverclockValue:(NSComboBox *)sender
+{
+ float value = sender.floatValue;
+ if (value < 0.5) value = 0.5;
+ if (value > 5.0) value = 5.0;
+
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ [defaults setFloat:value forKey:@"CpuOverclockingValue"];
+ [PcsxrController setConfigFromDefaults];
+
+ [self setOverclockValueText];
+}
+
+- (void)setOverclockValueText
+{
+ NSString *value = [NSString stringWithFormat:@"%.2f", Config.PsxClock];
+ [cpuOverclockingValue setStringValue:value];
+ [cpuOverclockingValue selectItemWithObjectValue:value];
+}
+
- (void)awakeFromNib
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
@@ -218,6 +241,10 @@ NSString *const memCardChangeNumberKey = @"PcsxrMemoryCardThatChangedKey";
_checkBoxDefaults[@"NoFastBoot"] = noFastBootCell;
if (widescreen)
_checkBoxDefaults[@"Widescreen"] = widescreen;
+ if (cpuOverclocking)
+ _checkBoxDefaults[@"CpuOverclocking"] = cpuOverclocking;
+ if (wipeoutMemHack)
+ _checkBoxDefaults[@"WipeoutMemHack"] = wipeoutMemHack;
// make the visuals match the defaults
@@ -234,6 +261,7 @@ NSString *const memCardChangeNumberKey = @"PcsxrMemoryCardThatChangedKey";
[usesHleCell setEnabled:NO];
}
+ [self setOverclockValueText];
// setup labels
diff --git a/macosx/Source/PcsxrController.m b/macosx/Source/PcsxrController.m
index a9c61523..2a7285b1 100644
--- a/macosx/Source/PcsxrController.m
+++ b/macosx/Source/PcsxrController.m
@@ -1,6 +1,7 @@
#import <Cocoa/Cocoa.h>
#import "PcsxrController.h"
#import "ConfigurationController.h"
+#import "PgxpController.h"
#import "CheatController.h"
#import "EmuThread.h"
#import "PcsxrMemCardHandler.h"
@@ -690,6 +691,7 @@ otherblock();\
// special cases
//str = [[defaults stringForKey:@"PluginPAD"] fileSystemRepresentation];
//if (str != nil) strncpy(Config.Pad2, str, 255);
+ Config.PsxClock = [defaults floatForKey:@"CpuOverclockingValue"];
str = [[defaults stringForKey:@"Bios"] fileSystemRepresentation];
if (str) {
@@ -767,6 +769,9 @@ otherblock();\
else {
strcpy(Config.Net, "Disabled");
}
+
+ // PGXP settings
+ [PgxpController loadPgxpSettings];
}
+ (void)setDefaultFromConfig:(NSString *)defaultKey
@@ -819,7 +824,10 @@ otherblock();\
@"Widescreen": @NO,
@"NetPlay": @NO,
@"DidMoveMemoryObjects": @NO,
- @"NoFastBoot": @NO};
+ @"NoFastBoot": @NO,
+ @"CpuOverclocking": @NO,
+ @"CpuOverclockingValue": @1.5f,
+ @"WipeoutMemHack": @NO};
[defaults registerDefaults:appDefaults];
@@ -845,7 +853,9 @@ otherblock();\
@"RootCounterFix": [NSValue valueWithPointer:&Config.RCntFix],
@"VideoSyncWAFix": [NSValue valueWithPointer:&Config.VSyncWA],
@"Widescreen": [NSValue valueWithPointer:&Config.Widescreen],
- @"NoFastBoot": [NSValue valueWithPointer:&Config.SlowBoot]};
+ @"NoFastBoot": [NSValue valueWithPointer:&Config.SlowBoot],
+ @"CpuOverclocking": [NSValue valueWithPointer:&Config.OverClock],
+ @"WipeoutMemHack": [NSValue valueWithPointer:&Config.MemHack]};
// setup application support paths
NSFileManager *manager = [NSFileManager defaultManager];
diff --git a/macosx/Source/PgxpController.h b/macosx/Source/PgxpController.h
new file mode 100644
index 00000000..fee659ef
--- /dev/null
+++ b/macosx/Source/PgxpController.h
@@ -0,0 +1,24 @@
+//
+// PgxpController.h
+// Pcsxr
+//
+// Created by MrLavender on 29/06/2017.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface PgxpController : NSViewController
+
+@property (weak) IBOutlet NSButton *vertexCreation;
+@property (weak) IBOutlet NSButton *vertexCaching;
+@property (weak) IBOutlet NSButton *perspectiveCorrect;
+@property (weak) IBOutlet NSPopUpButton *pgxpModeButton;
+@property (weak) IBOutlet NSTextField *pgxpModeLabel;
+
+- (IBAction)onOptionChange:(NSButton*)sender;
+- (IBAction)onModeChange:(NSPopUpButton*)sender;
+
++ (void)loadPgxpSettings;
++ (void)savePgxpSettings;
+
+@end
diff --git a/macosx/Source/PgxpController.m b/macosx/Source/PgxpController.m
new file mode 100644
index 00000000..19c09b2a
--- /dev/null
+++ b/macosx/Source/PgxpController.m
@@ -0,0 +1,98 @@
+//
+// PgxpController.m
+// Pcsxr
+//
+// Created by MrLavender on 29/06/2017.
+//
+
+#import "PgxpController.h"
+#include "psxcommon.h"
+
+#define kPGXP_GTE 0
+#define kPGXP_Cache 1
+#define kPGXP_Texture 2
+
+NSString* kPGXP_GTE_Key = @"PGXP_GTE";
+NSString* kPGXP_Cache_Key = @"PGXP_Cache";
+NSString* kPGXP_Texture_Key = @"PGXP_Texture";
+NSString* kPGXP_Mode_Key = @"PGXP_Mode";
+
+NSString* infoText[] = {
+ @"Disabled\n\nPGXP is no longer mirroring any functions.",
+ @"Memory operations only\n\nPGXP is mirroring load, store and processor transfer operations of the CPU and GTE.",
+ @"Memory and CPU arithmetic operations\n\nPGXP is mirroring load, store and transfer operations of the CPU and GTE and arithmetic/logic functions of the PSX CPU.\n\n(WARNING: This mode is currently unfinished and may cause incorrect behaviour in some games)"
+};
+
+@interface PgxpController ()
+@end
+
+@implementation PgxpController
+
+- (void)awakeFromNib
+{
+ self.vertexCreation.state = Config.PGXP_GTE;
+ self.vertexCaching.state = Config.PGXP_Cache;
+ self.perspectiveCorrect.state = Config.PGXP_Texture;
+
+ [self.pgxpModeButton selectItemAtIndex:Config.PGXP_Mode];
+ [self setInfoTextForPgxpMode];
+}
+
+- (IBAction)onOptionChange:(NSButton*)sender
+{
+ switch (sender.tag) {
+ case kPGXP_GTE:
+ Config.PGXP_GTE = sender.state;
+ break;
+ case kPGXP_Cache:
+ Config.PGXP_Cache = sender.state;
+ break;
+ case kPGXP_Texture:
+ Config.PGXP_Texture = sender.state;
+ break;
+ default:
+ break;
+ }
+ [PgxpController savePgxpSettings];
+}
+
+- (IBAction)onModeChange:(NSPopUpButton*)sender
+{
+ Config.PGXP_Mode = (u32)sender.indexOfSelectedItem;
+ [self setInfoTextForPgxpMode];
+ [PgxpController savePgxpSettings];
+}
+
+- (void)setInfoTextForPgxpMode
+{
+ self.pgxpModeLabel.stringValue = infoText[Config.PGXP_Mode];
+}
+
++ (void)loadPgxpSettings
+{
+ NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
+
+ [userDefaults registerDefaults:@{
+ kPGXP_GTE_Key: @YES,
+ kPGXP_Cache_Key: @YES,
+ kPGXP_Texture_Key: @YES,
+ kPGXP_Mode_Key: @0
+ }];
+
+ Config.PGXP_GTE = [userDefaults boolForKey:kPGXP_GTE_Key];
+ Config.PGXP_Cache = [userDefaults boolForKey:kPGXP_Cache_Key];
+ Config.PGXP_Texture = [userDefaults boolForKey:kPGXP_Texture_Key];
+ Config.PGXP_Mode = (u32)[userDefaults integerForKey:kPGXP_Mode_Key];
+}
+
++ (void)savePgxpSettings
+{
+ NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
+
+ [userDefaults setBool:Config.PGXP_GTE forKey:kPGXP_GTE_Key];
+ [userDefaults setBool:Config.PGXP_Cache forKey:kPGXP_Cache_Key];
+ [userDefaults setBool:Config.PGXP_Texture forKey:kPGXP_Texture_Key];
+ [userDefaults setInteger:Config.PGXP_Mode forKey:kPGXP_Mode_Key];
+}
+
+@end
diff --git a/macosx/Source/hotkeys.m b/macosx/Source/hotkeys.m
index 96d89e8b..9945ea29 100644
--- a/macosx/Source/hotkeys.m
+++ b/macosx/Source/hotkeys.m
@@ -127,7 +127,11 @@ void attachHotkeys() {
// GPU key presses
NSEvent* (^gpuKeypress)(NSEvent*) = ^(NSEvent *event) {
if (event.modifierFlags & NSControlKeyMask) {
- GPU_keypressed([event keyCode]);
+ if ([event keyCode] == 0x67) { // F11
+ GPU_toggleDebug();
+ } else {
+ GPU_keypressed([event keyCode]);
+ }
return (NSEvent*)nil;
} else {
return event;