diff options
| author | iCatButler <i.am.catbutler@gmail.com> | 2018-03-13 17:23:50 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-03-13 17:23:50 +0000 |
| commit | 15fe3782c1375634b7a9bd9bbbadfd75e7b06fed (patch) | |
| tree | 6660b9aeb3f4aedf384a0a1c76d3a849d4f43146 /macosx/Source | |
| parent | 540dccfdbd162f247d2390ac35df4144b28aab44 (diff) | |
| parent | 13c17e4b6ef1eee9ad60d3db2016ebb8e54bf337 (diff) | |
| download | pcsxr-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.h | 4 | ||||
| -rw-r--r-- | macosx/Source/ConfigurationController.m | 28 | ||||
| -rw-r--r-- | macosx/Source/PcsxrController.m | 14 | ||||
| -rw-r--r-- | macosx/Source/PgxpController.h | 24 | ||||
| -rw-r--r-- | macosx/Source/PgxpController.m | 98 | ||||
| -rw-r--r-- | macosx/Source/hotkeys.m | 6 |
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; |
