blob: 19c09b2a230e55ba67af19f24943c11a92064e36 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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
|