summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-06-09 11:34:52 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-06-09 11:34:52 +0000
commit10eac4b4928e7dd9f79de454641889f2a0b77250 (patch)
tree0f9c98f659552ed2406a6159bc123889ca46b919
parent568526e291e9743751d8632327b94e01e7181efc (diff)
downloadpcsxr-10eac4b4928e7dd9f79de454641889f2a0b77250.tar.gz
added prelimiary Mac OS X port (still not working)
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@23667 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--ChangeLog10
-rw-r--r--debian/changelog2
-rw-r--r--macosx/ConfigurationController.h36
-rw-r--r--macosx/ConfigurationController.m144
-rw-r--r--macosx/EmuThread.h37
-rw-r--r--macosx/EmuThread.m330
-rw-r--r--macosx/English.lproj/AddPluginSheet.nib/classes.nib14
-rw-r--r--macosx/English.lproj/AddPluginSheet.nib/info.nib16
-rw-r--r--macosx/English.lproj/AddPluginSheet.nib/keyedobjects.nibbin0 -> 5605 bytes
-rw-r--r--macosx/English.lproj/Configuration.nib/classes.nib41
-rw-r--r--macosx/English.lproj/Configuration.nib/info.nib18
-rw-r--r--macosx/English.lproj/Configuration.nib/objects.nibbin0 -> 13672 bytes
-rw-r--r--macosx/English.lproj/Credits.rtf28
-rw-r--r--macosx/English.lproj/InfoPlist.strings6
-rw-r--r--macosx/English.lproj/PCSX.nib/classes.nib25
-rw-r--r--macosx/English.lproj/PCSX.nib/info.nib21
-rw-r--r--macosx/English.lproj/PCSX.nib/objects.nibbin0 -> 4107 bytes
-rw-r--r--macosx/ExtendedKeys.h23
-rw-r--r--macosx/Info.plist107
-rw-r--r--macosx/Pcsx.xcodeproj/project.pbxproj698
-rw-r--r--macosx/PcsxController.h35
-rw-r--r--macosx/PcsxController.m387
-rw-r--r--macosx/PcsxPlugin.h41
-rw-r--r--macosx/PcsxPlugin.m303
-rw-r--r--macosx/PcsxPluginDocument.h20
-rw-r--r--macosx/PcsxPluginDocument.m95
-rw-r--r--macosx/Plugin.c287
-rw-r--r--macosx/PluginController.h22
-rw-r--r--macosx/PluginController.m80
-rw-r--r--macosx/PluginList.h36
-rw-r--r--macosx/PluginList.m324
-rw-r--r--macosx/config.h31
-rw-r--r--macosx/icons/PCSX.icnsbin0 -> 50301 bytes
-rw-r--r--macosx/icons/pcsxfreeze.icnsbin0 -> 49422 bytes
-rw-r--r--macosx/icons/pcsxmemcard.icnsbin0 -> 49442 bytes
-rw-r--r--macosx/icons/psxbios.icnsbin0 -> 47845 bytes
-rw-r--r--macosx/icons/psxplugin.icnsbin0 -> 38009 bytes
-rw-r--r--macosx/main.m250
-rwxr-xr-xpo/zh_CN.gmobin34156 -> 31742 bytes
-rw-r--r--po/zh_CN.po1010
-rwxr-xr-xpo/zh_TW.gmobin19621 -> 18229 bytes
-rw-r--r--po/zh_TW.po676
42 files changed, 4309 insertions, 844 deletions
diff --git a/ChangeLog b/ChangeLog
index b7f092ce..031f9532 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+June 9, 2009 Wei Mingzhi <weimingzhi@gmail.com>
+
+ * macosx/*: Added preliminary Mac OS X port. Code copied from PCSX Mac
+ Project (Still not working).
+
+June 4, 2009 Wei Mingzhi <weimingzhi@gmail.com>
+
+ * po/zh_CN.po, po/zh_TW.po: Don't use UTF-8.
+ * debian/changelog: Bumped version.
+
June 2, 2009 Wei Mingzhi <weimingzhi@gmail.com>
* plugins/peopsxgl/interface.c: Tweaked UI.
diff --git a/debian/changelog b/debian/changelog
index da91b975..1b69ba7b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-pcsxr (2:1.0~alpha2-1) unstable; urgency=low
+pcsxr (2:1.0~beta1-1) unstable; urgency=low
* Initial Release.
diff --git a/macosx/ConfigurationController.h b/macosx/ConfigurationController.h
new file mode 100644
index 00000000..a85c2579
--- /dev/null
+++ b/macosx/ConfigurationController.h
@@ -0,0 +1,36 @@
+/* ConfigurationController */
+
+#import <Cocoa/Cocoa.h>
+#import "PluginController.h"
+#import "PluginList.h"
+
+@interface ConfigurationController : NSWindowController
+{
+ IBOutlet PluginController *cdromPlugin;
+ IBOutlet PluginController *graphicsPlugin;
+ IBOutlet PluginController *padPlugin;
+ IBOutlet PluginController *soundPlugin;
+
+ IBOutlet id noXaAudioCell;
+ IBOutlet id sioIrqAlwaysCell;
+ IBOutlet id bwMdecCell;
+ IBOutlet id autoVTypeCell;
+ IBOutlet id vTypePALCell;
+ IBOutlet id noCDAudioCell;
+ IBOutlet id usesHleCell;
+ IBOutlet id usesDynarecCell;
+ IBOutlet id consoleOutputCell;
+ IBOutlet id spuIrqAlwaysCell;
+ IBOutlet id rCountFixCell;
+ IBOutlet id vSyncWAFixCell;
+ IBOutlet id noFastBootCell;
+
+ NSMutableDictionary *checkBoxDefaults;
+}
+- (IBAction)setCheckbox:(id)sender;
+- (IBAction)setCheckboxInverse:(id)sender;
+- (IBAction)setVideoType:(id)sender;
+
+- (NSString *)keyForSender:(id)sender;
+
+@end
diff --git a/macosx/ConfigurationController.m b/macosx/ConfigurationController.m
new file mode 100644
index 00000000..d5e4cd8d
--- /dev/null
+++ b/macosx/ConfigurationController.m
@@ -0,0 +1,144 @@
+#import "ConfigurationController.h"
+#import "PcsxController.h"
+#import "PluginList.h"
+#import "PcsxPlugin.h"
+#include "psxcommon.h"
+#include "plugins.h"
+
+@implementation ConfigurationController
+
+- (IBAction)setCheckbox:(id)sender
+{
+ if ([sender isKindOfClass:[NSMatrix class]]) {
+ sender = [sender selectedCell];
+ }
+
+ NSString *key = [self keyForSender:sender];
+ if (key) {
+ [[NSUserDefaults standardUserDefaults] setInteger:[sender intValue] forKey:key];
+ [PcsxController setConfigFromDefaults];
+ }
+}
+
+- (IBAction)setCheckboxInverse:(id)sender
+{
+ if ([sender isKindOfClass:[NSMatrix class]]) {
+ sender = [sender selectedCell];
+ }
+
+ NSString *key = [self keyForSender:sender];
+ if (key) {
+ [[NSUserDefaults standardUserDefaults] setInteger:![sender intValue] forKey:key];
+ [PcsxController setConfigFromDefaults];
+ }
+}
+
+- (IBAction)setVideoType:(id)sender
+{
+ int tag = [[sender selectedItem] tag];
+
+ if (3 == tag) {
+ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"AutoDetectVideoType"];
+ } else if (1 == tag || 2 == tag) {
+ [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"AutoDetectVideoType"];
+ [[NSUserDefaults standardUserDefaults] setBool:tag==2 forKey:@"VideoTypePAL"];
+ } else {
+ return;
+ }
+ [PcsxController setConfigFromDefaults];
+
+ if ([sender pullsDown]) {
+ NSArray *items = [sender itemArray];
+ int i;
+
+ for (i=0; i<[items count]; i++)
+ [[items objectAtIndex:i] setState:NSOffState];
+
+ [[sender selectedItem] setState:NSOnState];
+ }
+}
+
+- (void)awakeFromNib
+{
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+ [[self window] center];
+
+ // setup checkboxes
+ checkBoxDefaults = [[NSMutableDictionary alloc] init];
+
+ // check that the outlets are active before adding them
+ if (noXaAudioCell) [checkBoxDefaults setObject:noXaAudioCell forKey:@"NoXaAudio"];
+ if (sioIrqAlwaysCell) [checkBoxDefaults setObject:sioIrqAlwaysCell forKey:@"SioIrqAlways"];
+ if (bwMdecCell) [checkBoxDefaults setObject:bwMdecCell forKey:@"BlackAndWhiteMDECVideo"];
+ if (autoVTypeCell) [checkBoxDefaults setObject:autoVTypeCell forKey:@"AutoDetectVideoType"];
+ if (vTypePALCell) [checkBoxDefaults setObject:vTypePALCell forKey:@"VideoTypePAL"];
+ if (noCDAudioCell) [checkBoxDefaults setObject:noCDAudioCell forKey:@"NoCDAudio"];
+ if (usesHleCell) [checkBoxDefaults setObject:usesHleCell forKey:@"UseHLE"];
+ if (usesDynarecCell) [checkBoxDefaults setObject:usesDynarecCell forKey:@"NoDynarec"];
+ if (consoleOutputCell) [checkBoxDefaults setObject:consoleOutputCell forKey:@"ConsoleOutput"];
+ if (spuIrqAlwaysCell) [checkBoxDefaults setObject:spuIrqAlwaysCell forKey:@"SpuIrqAlways"];
+ if (rCountFixCell) [checkBoxDefaults setObject:rCountFixCell forKey:@"RootCounterFix"];
+ if (vSyncWAFixCell) [checkBoxDefaults setObject:vSyncWAFixCell forKey:@"VideoSyncWAFix"];
+ if (noFastBootCell) [checkBoxDefaults setObject:noFastBootCell forKey:@"NoFastBoot"];
+
+ // make the visuals match the defaults
+ NSEnumerator *enumerator= [checkBoxDefaults keyEnumerator];
+ id key;
+ while ((key = [enumerator nextObject])) {
+ if ([defaults integerForKey:key]) {
+ [[checkBoxDefaults objectForKey:key] setNextState];
+ }
+ }
+
+ // special cases
+ if (![PcsxController biosAvailable]) {
+ // no bios means always use HLE
+ [usesHleCell setState:NSOnState];
+ [usesHleCell setEnabled:NO];
+ }
+
+ int tag = [defaults integerForKey:@"AutoDetectVideoType"];
+ if (tag)
+ tag = 3;
+ else {
+ tag = [defaults integerForKey:@"VideoTypePAL"]+1;
+ }
+ [vTypePALCell setAutoenablesItems:NO];
+ if ([vTypePALCell pullsDown]) {
+ [[vTypePALCell itemAtIndex:[vTypePALCell indexOfItemWithTag:tag]] setState:NSOnState];
+ } else {
+ [vTypePALCell selectItemAtIndex:[vTypePALCell indexOfItemWithTag:tag]];
+ }
+
+ // setup plugin lists
+ PluginList *list = [PluginList list];
+
+ [list refreshPlugins];
+ [graphicsPlugin setPluginsTo:[list pluginsForType:PSE_LT_GPU] withType: PSE_LT_GPU];
+ [soundPlugin setPluginsTo:[list pluginsForType:PSE_LT_SPU] withType: PSE_LT_SPU];
+ [padPlugin setPluginsTo:[list pluginsForType:PSE_LT_PAD] withType: PSE_LT_PAD];
+ [cdromPlugin setPluginsTo:[list pluginsForType:PSE_LT_CDR] withType: PSE_LT_CDR];
+}
+
+- (void)dealloc
+{
+ [checkBoxDefaults release];
+
+ [super dealloc];
+}
+
+- (NSString *)keyForSender:(id)sender
+{
+ NSEnumerator *enumerator= [checkBoxDefaults keyEnumerator];
+ id key;
+ while ((key = [enumerator nextObject])) {
+ id object = [checkBoxDefaults objectForKey:key];
+ if ([object isEqual:sender])
+ return key;
+ }
+
+ return nil;
+}
+
+@end
diff --git a/macosx/EmuThread.h b/macosx/EmuThread.h
new file mode 100644
index 00000000..7a88c444
--- /dev/null
+++ b/macosx/EmuThread.h
@@ -0,0 +1,37 @@
+//
+// EmuThread.h
+// Pcsx
+//
+// Created by Gil Pedersen on Sun Sep 21 2003.
+// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#include <setjmp.h>
+
+@interface EmuThread : NSObject {
+ NSAutoreleasePool *pool;
+ jmp_buf restartJmp;
+ BOOL wasPaused;
+}
+
+- (void)EmuThreadRun:(id)anObject;
+- (void)handleEvents;
+
++ (void)run;
++ (void)stop;
++ (BOOL)pause;
++ (BOOL)pauseSafe;
++ (void)resume;
++ (void)resetNow;
++ (void)reset;
+
++ (BOOL)isPaused;
++ (BOOL)active;
+
++ (void)freezeAt:(NSString *)path which:(int)num;
++ (BOOL)defrostAt:(NSString *)path;
+
+@end
+
+extern EmuThread *emuThread;
diff --git a/macosx/EmuThread.m b/macosx/EmuThread.m
new file mode 100644
index 00000000..dbe33864
--- /dev/null
+++ b/macosx/EmuThread.m
@@ -0,0 +1,330 @@
+//
+// EmuThread.m
+// Pcsx
+//
+// Created by Gil Pedersen on Sun Sep 21 2003.
+// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
+//
+
+#import <ExceptionHandling/NSExceptionHandler.h>
+#import <AppKit/NSApplication.h>
+#include <pthread.h>
+#include <setjmp.h>
+#import "EmuThread.h"
+#include "psxcommon.h"
+#include "plugins.h"
+#include "misc.h"
+
+EmuThread *emuThread;
+NSString *defrostPath = nil;
+static int safeEvent;
+static int paused;
+
+static pthread_cond_t eventCond;
+static pthread_mutex_t eventMutex;
+
+#define EMUEVENT_NONE 0
+#define EMUEVENT_PAUSE (1<<0)
+#define EMUEVENT_RESET (1<<1)
+#define EMUEVENT_STOP (1<<2)
+
+@implementation EmuThread
+
+- (void)EmuThreadRun:(id)anObject
+{
+ pool = [[NSAutoreleasePool alloc] init];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(emuWindowDidClose:)
+ name:@"emuWindowDidClose" object:nil];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(emuWindowWantPause:)
+ name:@"emuWindowWantPause" object:nil];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(emuWindowWantResume:)
+ name:@"emuWindowWantResume" object:nil];
+
+ // we shouldn't change the priority, since we might depend on subthreads
+ //[NSThread setThreadPriority:1.0-((1.0-[NSThread threadPriority])/4.0)];
+
+ // Do processing here
+ if (OpenPlugins() == -1)
+ goto done;
+
+ if (setjmp(restartJmp) == 0) {
+ psxReset();
+ }
+
+ int res = CheckCdrom();
+ if (res == -1) {
+ ClosePlugins();
+ SysMessage(_("Could not load Cdrom\n"));
+ goto done;
+ }
+
+ if (LoadCdrom() == -1) {
+ ClosePlugins();
+ SysMessage(_("Could not load Cdrom\n"));
+ goto done;
+ }
+
+ if (defrostPath) {
+ LoadState([defrostPath fileSystemRepresentation]);
+ [defrostPath release]; defrostPath = nil;
+ }
+
+ psxCpu->Execute();
+
+done:
+ [pool release]; pool = nil;
+ emuThread = nil;
+
+ return;
+}
+
+- (void)dealloc
+{
+ // remove all registered observers
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:nil object:nil];
+
+ if (pool)
+ [pool release];
+
+ [super dealloc];
+}
+
+- (void)emuWindowDidClose:(NSNotification *)aNotification
+{
+ [EmuThread stop];
+}
+
+- (void)emuWindowWantPause:(NSNotification *)aNotification
+{
+ wasPaused = [EmuThread pause];
+}
+
+- (void)emuWindowWantResume:(NSNotification *)aNotification
+{
+ if (!wasPaused) {
+ [EmuThread resume];
+ }
+ wasPaused = NO;
+}
+
+/* called periodically from the emulation thread */
+- (void)handleEvents
+{
+ /* only do a trylock here, since we're not interested in blocking,
+ and we can just handle events next time round */
+ if (pthread_mutex_trylock(&eventMutex) == 0) {
+ while (safeEvent) {
+ if (safeEvent & EMUEVENT_STOP) {
+ /* signify that the emulation has stopped */
+ [emuThread autorelease];
+ emuThread = nil;
+ paused = NO;
+
+ /* better unlock the mutex before killing ourself */
+ pthread_mutex_unlock(&eventMutex);
+
+ ClosePlugins();
+ SysClose();
+
+ //[[NSThread currentThread] autorelease];
+ [NSThread exit];
+ return;
+ }
+
+ if (safeEvent & EMUEVENT_RESET) {
+#if 1
+ /* signify that the emulation has stopped */
+ [emuThread autorelease];
+ emuThread = nil;
+
+ /* better unlock the mutex before killing ourself */
+ pthread_mutex_unlock(&eventMutex);
+
+ ClosePlugins();
+
+ // start a new emulation thread
+ [EmuThread run];
+
+ //[[NSThread currentThread] autorelease];
+ [NSThread exit];
+ return;
+#else
+ safeEvent &= ~EMUEVENT_RESET;
+ pthread_mutex_unlock(&eventMutex);
+
+ psxCpu->Reset();
+
+ longjmp(restartJmp, 0);
+#endif
+ }
+
+ if (safeEvent & EMUEVENT_PAUSE) {
+ paused = 2;
+ /* wait until we're signalled */
+ pthread_cond_wait(&eventCond, &eventMutex);
+ }
+ }
+ pthread_mutex_unlock(&eventMutex);
+ }
+}
+
+
++ (void)run
+{
+ int err;
+
+ if (emuThread) {
+ [EmuThread resume];
+ return;
+ }
+
+ if (pthread_mutex_lock(&eventMutex) != 0) {
+ err = pthread_cond_init(&eventCond, NULL);
+ if (err) return;
+
+ err = pthread_mutex_init(&eventMutex, NULL);
+ if (err) return;
+
+ pthread_mutex_lock(&eventMutex);
+ }
+
+ safeEvent = EMUEVENT_NONE;
+ paused = NO;
+
+ if (SysInit() != 0) {
+ pthread_mutex_unlock(&eventMutex);
+ return;
+ }
+
+ emuThread = [[EmuThread alloc] init];
+
+ [NSThread detachNewThreadSelector:@selector(EmuThreadRun:)
+ toTarget:emuThread withObject:nil];
+
+ pthread_mutex_unlock(&eventMutex);
+}
+
++ (void)stop
+{
+ pthread_mutex_lock(&eventMutex);
+ safeEvent = EMUEVENT_STOP;
+ pthread_mutex_unlock(&eventMutex);
+
+ // wake it if it's sleeping
+ pthread_cond_broadcast(&eventCond);
+}
+
++ (BOOL)pause
+{
+ if (paused || ![EmuThread active])
+ return YES;
+
+ pthread_mutex_lock(&eventMutex);
+ safeEvent |= EMUEVENT_PAUSE;
+ paused = 1;
+ pthread_mutex_unlock(&eventMutex);
+
+ pthread_cond_broadcast(&eventCond);
+
+ return NO;
+}
+
++ (BOOL)pauseSafe
+{
+ if ((paused == 2) || ![EmuThread active])
+ return YES;
+
+ [EmuThread pause];
+ while ([EmuThread isPaused] != 2) [NSThread sleepUntilDate:[[NSDate date] addTimeInterval:0.05]];
+
+ return NO;
+}
+
++ (void)resume
+{
+ if (!paused || ![EmuThread active])
+ return;
+
+ pthread_mutex_lock(&eventMutex);
+
+ safeEvent &= ~EMUEVENT_PAUSE;
+ paused = NO;
+ pthread_mutex_unlock(&eventMutex);
+
+ pthread_cond_broadcast(&eventCond);
+}
+
++ (void)reset
+{
+ pthread_mutex_lock(&eventMutex);
+ safeEvent = EMUEVENT_RESET;
+ pthread_mutex_unlock(&eventMutex);
+
+ pthread_cond_broadcast(&eventCond);
+}
+
+// must only be called from within the emulation thread!!!
++ (void)resetNow
+{
+ /* signify that the emulation has stopped */
+ [emuThread autorelease];
+ emuThread = nil;
+
+ ClosePlugins();
+
+ // start a new emulation thread
+ [EmuThread run];
+
+ //[[NSThread currentThread] autorelease];
+ [NSThread exit];
+ return;
+}
+
++ (BOOL)isPaused
+{
+ return paused;
+}
+
++ (BOOL)active
+{
+ return emuThread ? YES : NO;
+}
+
++ (void)freezeAt:(NSString *)path which:(int)num
+{
+ BOOL emuWasPaused = [EmuThread pauseSafe];
+ char Text[256];
+
+ GPU_freeze(2, (GPUFreeze_t *)&num);
+ int ret = SaveState([path fileSystemRepresentation]);
+ if (ret == 0) sprintf (Text, _("*PCSX*: Saved State %d"), num+1);
+ else sprintf (Text, _("*PCSX*: Error Saving State %d"), num+1);
+ GPU_displayText(Text);
+
+ if (!emuWasPaused) {
+ [EmuThread resume];
+ }
+}
+
++ (BOOL)defrostAt:(NSString *)path
+{
+ const char *cPath = [path fileSystemRepresentation];
+ if (CheckState(cPath) != 0)
+ return NO;
+
+ defrostPath = [path retain];
+
+ [EmuThread reset];
+
+ GPU_displayText(_("*PCSX*: Loaded State"));
+
+ return YES;
+}
+
+@end
diff --git a/macosx/English.lproj/AddPluginSheet.nib/classes.nib b/macosx/English.lproj/AddPluginSheet.nib/classes.nib
new file mode 100644
index 00000000..ae53771c
--- /dev/null
+++ b/macosx/English.lproj/AddPluginSheet.nib/classes.nib
@@ -0,0 +1,14 @@
+{
+ IBClasses = (
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {
+ ACTIONS = {closeAddPluginSheet = id; };
+ CLASS = PcsxPluginDocument;
+ LANGUAGE = ObjC;
+ OUTLETS = {addPluginSheet = NSWindow; pluginName = NSTextField; };
+ SUPERCLASS = NSDocument;
+ },
+ {CLASS = "java.lang.Object"; LANGUAGE = Java; }
+ );
+ IBVersion = 1;
+} \ No newline at end of file
diff --git a/macosx/English.lproj/AddPluginSheet.nib/info.nib b/macosx/English.lproj/AddPluginSheet.nib/info.nib
new file mode 100644
index 00000000..3af05e0c
--- /dev/null
+++ b/macosx/English.lproj/AddPluginSheet.nib/info.nib
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>69 10 356 240 0 0 1024 746 </string>
+ <key>IBFramework Version</key>
+ <string>364.0</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>10</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>7H63</string>
+</dict>
+</plist>
diff --git a/macosx/English.lproj/AddPluginSheet.nib/keyedobjects.nib b/macosx/English.lproj/AddPluginSheet.nib/keyedobjects.nib
new file mode 100644
index 00000000..60ed72e0
--- /dev/null
+++ b/macosx/English.lproj/AddPluginSheet.nib/keyedobjects.nib
Binary files differ
diff --git a/macosx/English.lproj/Configuration.nib/classes.nib b/macosx/English.lproj/Configuration.nib/classes.nib
new file mode 100644
index 00000000..e7e543b4
--- /dev/null
+++ b/macosx/English.lproj/Configuration.nib/classes.nib
@@ -0,0 +1,41 @@
+{
+ IBClasses = (
+ {
+ ACTIONS = {setCheckbox = id; setCheckboxInverse = id; setVideoType = id; };
+ CLASS = ConfigurationController;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ autoVTypeCell = id;
+ bwMdecCell = id;
+ cdromPlugin = PluginController;
+ consoleOutputCell = id;
+ graphicsPlugin = PluginController;
+ noCDAudioCell = id;
+ noXaAudioCell = id;
+ padPlugin = PluginController;
+ rCountFixCell = id;
+ sioIrqAlwaysCell = id;
+ soundPlugin = PluginController;
+ spuIrqAlwaysCell = id;
+ usesDynarecCell = id;
+ usesHleCell = id;
+ vSyncWAFixCell = id;
+ vTypePALCell = id;
+ };
+ SUPERCLASS = NSWindowController;
+ },
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {
+ ACTIONS = {doAbout = id; doConfigure = id; selectPlugin = id; };
+ CLASS = PluginController;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ aboutButton = NSButton;
+ configureButton = NSButton;
+ pluginMenu = NSPopUpButton;
+ };
+ SUPERCLASS = NSObject;
+ }
+ );
+ IBVersion = 1;
+} \ No newline at end of file
diff --git a/macosx/English.lproj/Configuration.nib/info.nib b/macosx/English.lproj/Configuration.nib/info.nib
new file mode 100644
index 00000000..27b3f306
--- /dev/null
+++ b/macosx/English.lproj/Configuration.nib/info.nib
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>79 74 486 240 0 0 1024 746 </string>
+ <key>IBFramework Version</key>
+ <string>364.0</string>
+ <key>IBLockedObjects</key>
+ <array/>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>21</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>7S215</string>
+</dict>
+</plist>
diff --git a/macosx/English.lproj/Configuration.nib/objects.nib b/macosx/English.lproj/Configuration.nib/objects.nib
new file mode 100644
index 00000000..7d1aff12
--- /dev/null
+++ b/macosx/English.lproj/Configuration.nib/objects.nib
Binary files differ
diff --git a/macosx/English.lproj/Credits.rtf b/macosx/English.lproj/Credits.rtf
new file mode 100644
index 00000000..a7870f8a
--- /dev/null
+++ b/macosx/English.lproj/Credits.rtf
@@ -0,0 +1,28 @@
+{\rtf1\mac\ansicpg10000\cocoartf102
+{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\f0\b\fs24 \cf0 Macintosh Port:
+\f1\b0 \
+ Gil Pedersen\
+\
+
+\f0\b Icon Design:
+\f1\b0 \
+ Romain Lafourcade\
+\
+
+\f0\b Original Coders:
+\f1\b0 \
+ Linuzappz\
+ Shadow\
+ Pete Bernert\
+ NoComp\
+ Nik3d\
+\
+
+\f0\b Macintosh Testing:
+\f1\b0 \
+ Richard Banister\
+ Many others} \ No newline at end of file
diff --git a/macosx/English.lproj/InfoPlist.strings b/macosx/English.lproj/InfoPlist.strings
new file mode 100644
index 00000000..39649ac1
--- /dev/null
+++ b/macosx/English.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Localized versions of Info.plist keys */
+
+CFBundleName = "PCSX";
+CFBundleShortVersionString = "PCSX version 1.5 test 3";
+CFBundleGetInfoString = "PCSX Playstation Emulator version 1.5 test 3, Copyright © 2005 Gil Pedersen.";
+NSHumanReadableCopyright = "Copyright © 2005 Gil Pedersen.\nhttp://home.macvaerk.dtu.dk/~gil/pcsx/";
diff --git a/macosx/English.lproj/PCSX.nib/classes.nib b/macosx/English.lproj/PCSX.nib/classes.nib
new file mode 100644
index 00000000..62f942f4
--- /dev/null
+++ b/macosx/English.lproj/PCSX.nib/classes.nib
@@ -0,0 +1,25 @@
+{
+ IBClasses = (
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {
+ ACTIONS = {
+ defrost = id;
+ ejectCD = id;
+ freeze = id;
+ fullscreen = id;
+ memCardConfig = id;
+ pause = id;
+ preferences = id;
+ reset = id;
+ runBios = id;
+ runCD = id;
+ runExe = id;
+ };
+ CLASS = PcsxController;
+ LANGUAGE = ObjC;
+ OUTLETS = {memCardWindow = NSWindow; preferenceWindow = NSWindow; };
+ SUPERCLASS = NSObject;
+ }
+ );
+ IBVersion = 1;
+} \ No newline at end of file
diff --git a/macosx/English.lproj/PCSX.nib/info.nib b/macosx/English.lproj/PCSX.nib/info.nib
new file mode 100644
index 00000000..ff999e10
--- /dev/null
+++ b/macosx/English.lproj/PCSX.nib/info.nib
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>46 15 492 320 0 0 1024 746 </string>
+ <key>IBEditorPositions</key>
+ <dict>
+ <key>29</key>
+ <string>79 658 251 44 0 0 1024 746 </string>
+ </dict>
+ <key>IBFramework Version</key>
+ <string>364.0</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>29</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>7R28</string>
+</dict>
+</plist>
diff --git a/macosx/English.lproj/PCSX.nib/objects.nib b/macosx/English.lproj/PCSX.nib/objects.nib
new file mode 100644
index 00000000..4d6fa523
--- /dev/null
+++ b/macosx/English.lproj/PCSX.nib/objects.nib
Binary files differ
diff --git a/macosx/ExtendedKeys.h b/macosx/ExtendedKeys.h
new file mode 100644
index 00000000..1b6475b8
--- /dev/null
+++ b/macosx/ExtendedKeys.h
@@ -0,0 +1,23 @@
+
+#ifndef __EXTENDED_KEYS_H__
+#define __EXTENDED_KEYS_H__
+
+enum {
+ PSX_FREEZE_KEY = 0xFFBE/*XK_F1*/,
+ PSX_NEXT_FREEZE_SLOT_KEY = 0xFFBF/*XK_F2*/,
+ PSX_DEFROST_KEY = 0xFFC0/*XK_F3*/,
+ PSX_SHOW_FREEZE_PIC_KEY = 0xFFC1/*XK_F4*/,
+ PSX_SIO_ALWAYS_ON_KEY = 0xFFC2/*XK_F5*/,
+ PSX_BW_MDEC_KEY = 0xFFC3/*XK_F6*/,
+ PSX_XA_AUDIO_ON_KEY = 0xFFC4/*XK_F7*/,
+ PSX_SNAPSHOT_KEY = 0xFFC5/*XK_F8*/,
+ PSX_OPEN_SHELL_KEY = 0xFFC6/*XK_F9*/,
+ PSX_CLOSE_SHELL_KEY = 0xFFC7/*XK_F10*/,
+
+ PSX_STOP_KEY = 0xFF1B/*XK_Escape*/,
+
+ GPU_FULLSCREEN_KEY = 0x0100,
+ GPU_FPS_DISPLAY_KEY = 0xFFFF/*XK_Delete*/
+};
+
+#endif //__EXTENDED_KEYS_H__
diff --git a/macosx/Info.plist b/macosx/Info.plist
new file mode 100644
index 00000000..8ab880a5
--- /dev/null
+++ b/macosx/Info.plist
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>psxplugin</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>psxplugin.icns</string>
+ <key>CFBundleTypeName</key>
+ <string>Playstation Emulator Plug-in</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>PsxP</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSTypeIsPackage</key>
+ <true/>
+ <key>NSDocumentClass</key>
+ <string>PcsxPluginDocument</string>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>bin</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>psxbios.icns</string>
+ <key>CFBundleTypeName</key>
+ <string>Playstation BIOS Image</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>PsxB</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSTypeIsPackage</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>mcr</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>pcsxmemcard</string>
+ <key>CFBundleTypeName</key>
+ <string>PCSX Memory Card</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>Pmcr</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSTypeIsPackage</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>pcsxstate</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>pcsxfreeze</string>
+ <key>CFBundleTypeName</key>
+ <string>PCSX Freeze State</string>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>Pfrz</string>
+ </array>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSTypeIsPackage</key>
+ <false/>
+ </dict>
+ </array>
+ <key>CFBundleExecutable</key>
+ <string>PCSX</string>
+ <key>CFBundleIconFile</key>
+ <string>PCSX.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>net.pcsx.Pcsx</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>PCSX</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>PCSX 1.5 test 3</string>
+ <key>CFBundleSignature</key>
+ <string>Pcsx</string>
+ <key>CFBundleVersion</key>
+ <string>1.5.0 test 3</string>
+ <key>NSMainNibFile</key>
+ <string>PCSX.nib</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/macosx/Pcsx.xcodeproj/project.pbxproj b/macosx/Pcsx.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..478fa664
--- /dev/null
+++ b/macosx/Pcsx.xcodeproj/project.pbxproj
@@ -0,0 +1,698 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2B143D06078A2CBD00AF745A /* PCSX.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2B143D01078A2CBD00AF745A /* PCSX.icns */; };
+ 2B143D07078A2CBD00AF745A /* pcsxfreeze.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2B143D02078A2CBD00AF745A /* pcsxfreeze.icns */; };
+ 2B143D08078A2CBD00AF745A /* pcsxmemcard.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2B143D03078A2CBD00AF745A /* pcsxmemcard.icns */; };
+ 2B143D09078A2CBD00AF745A /* psxbios.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2B143D04078A2CBD00AF745A /* psxbios.icns */; };
+ 2B143D0A078A2CBD00AF745A /* psxplugin.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2B143D05078A2CBD00AF745A /* psxplugin.icns */; };
+ 2B3E356C06937D1C00763C7D /* PcsxPluginDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B3E356A06937D1C00763C7D /* PcsxPluginDocument.h */; };
+ 2B3E356D06937D1C00763C7D /* PcsxPluginDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3E356B06937D1C00763C7D /* PcsxPluginDocument.m */; };
+ 2B3E35BC069384D100763C7D /* AddPluginSheet.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2B3E35BA069384D100763C7D /* AddPluginSheet.nib */; };
+ 2B400D910789F58A00BA271E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B02C04304E145D000880C5B /* Carbon.framework */; };
+ 2B4DE99105FF9307003EFEF0 /* PluginController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B4DE98D05FF9307003EFEF0 /* PluginController.h */; };
+ 2B4DE99205FF9307003EFEF0 /* PluginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B4DE98E05FF9307003EFEF0 /* PluginController.m */; };
+ 2BB3D69D05427FE200831ACB /* PcsxController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B75FD3C051C56D200D12034 /* PcsxController.h */; };
+ 2BB3D69E05427FE200831ACB /* ConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B75FD4A051C8A7400D12034 /* ConfigurationController.h */; };
+ 2BB3D69F05427FE200831ACB /* PluginList.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BBB1126051DC00500B84448 /* PluginList.h */; };
+ 2BB3D6A005427FE200831ACB /* EmuThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BBB1791051E113B00B84448 /* EmuThread.h */; };
+ 2BB3D6A105427FE200831ACB /* PcsxPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BA44360052DB2EA00E21DDD /* PcsxPlugin.h */; };
+ 2BB3D6A305427FE200831ACB /* Configuration.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2BA178B00514CE260026D74D /* Configuration.nib */; };
+ 2BB3D6A405427FE200831ACB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2BA178B20514CE260026D74D /* InfoPlist.strings */; };
+ 2BB3D6A505427FE200831ACB /* PCSX.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2BA178B40514CE260026D74D /* PCSX.nib */; };
+ 2BB3D6A705427FE200831ACB /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2BBB1786051E0D9700B84448 /* Credits.rtf */; };
+ 2BB3D6BE05427FE200831ACB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BA178A505148D9D0026D74D /* main.m */; };
+ 2BB3D6BF05427FE200831ACB /* PcsxController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B75FD3D051C56D200D12034 /* PcsxController.m */; };
+ 2BB3D6C005427FE200831ACB /* ConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B75FD4B051C8A7400D12034 /* ConfigurationController.m */; };
+ 2BB3D6C105427FE200831ACB /* PluginList.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BBB1127051DC00500B84448 /* PluginList.m */; };
+ 2BB3D6C205427FE200831ACB /* EmuThread.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BBB1792051E113B00B84448 /* EmuThread.m */; };
+ 2BB3D6C305427FE200831ACB /* Plugin.c in Sources */ = {isa = PBXBuildFile; fileRef = 2BBB17DA051E4D0F00B84448 /* Plugin.c */; };
+ 2BB3D6C405427FE200831ACB /* PcsxPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BA44361052DB2EA00E21DDD /* PcsxPlugin.m */; };
+ 2BB3D6C605427FE200831ACB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BC4786204C7FD3600CAB520 /* Cocoa.framework */; };
+ 2BB3D6C705427FE200831ACB /* System.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B6E8AAE04C832040017A3B1 /* System.framework */; };
+ 2BB3D6C805427FE200831ACB /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B6E8AB404C8327C0017A3B1 /* IOKit.framework */; };
+ 7161C2820FDED6D000225F97 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 7161C2810FDED6D000225F97 /* config.h */; };
+ 7161C2980FDED75300225F97 /* ExtendedKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 7161C2970FDED75300225F97 /* ExtendedKeys.h */; };
+ 71F4C5890FDED12800529849 /* cdriso.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5600FDED12800529849 /* cdriso.c */; };
+ 71F4C58A0FDED12800529849 /* cdriso.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5610FDED12800529849 /* cdriso.h */; };
+ 71F4C58B0FDED12800529849 /* cdrom.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5620FDED12800529849 /* cdrom.c */; };
+ 71F4C58C0FDED12800529849 /* cdrom.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5630FDED12800529849 /* cdrom.h */; };
+ 71F4C58D0FDED12800529849 /* cheat.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5640FDED12800529849 /* cheat.c */; };
+ 71F4C58E0FDED12800529849 /* cheat.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5650FDED12800529849 /* cheat.h */; };
+ 71F4C58F0FDED12800529849 /* coff.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5660FDED12800529849 /* coff.h */; };
+ 71F4C5900FDED12800529849 /* debug.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5670FDED12800529849 /* debug.h */; };
+ 71F4C5910FDED12800529849 /* decode_xa.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5680FDED12800529849 /* decode_xa.c */; };
+ 71F4C5920FDED12800529849 /* decode_xa.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5690FDED12800529849 /* decode_xa.h */; };
+ 71F4C5930FDED12800529849 /* disr3000a.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C56A0FDED12800529849 /* disr3000a.c */; };
+ 71F4C5940FDED12800529849 /* gte.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C56B0FDED12800529849 /* gte.c */; };
+ 71F4C5950FDED12800529849 /* gte.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C56C0FDED12800529849 /* gte.h */; };
+ 71F4C5960FDED12800529849 /* mdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C56D0FDED12800529849 /* mdec.c */; };
+ 71F4C5970FDED12800529849 /* mdec.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C56E0FDED12800529849 /* mdec.h */; };
+ 71F4C5980FDED12800529849 /* misc.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C56F0FDED12800529849 /* misc.c */; };
+ 71F4C5990FDED12800529849 /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5700FDED12800529849 /* misc.h */; };
+ 71F4C59A0FDED12800529849 /* plugins.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5710FDED12800529849 /* plugins.c */; };
+ 71F4C59B0FDED12800529849 /* plugins.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5720FDED12800529849 /* plugins.h */; };
+ 71F4C59C0FDED12800529849 /* psemu_plugin_defs.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5730FDED12800529849 /* psemu_plugin_defs.h */; };
+ 71F4C59D0FDED12800529849 /* psxbios.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5740FDED12800529849 /* psxbios.c */; };
+ 71F4C59E0FDED12800529849 /* psxbios.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5750FDED12800529849 /* psxbios.h */; };
+ 71F4C59F0FDED12800529849 /* psxcommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5760FDED12800529849 /* psxcommon.h */; };
+ 71F4C5A00FDED12800529849 /* psxcounters.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5770FDED12800529849 /* psxcounters.c */; };
+ 71F4C5A10FDED12800529849 /* psxcounters.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5780FDED12800529849 /* psxcounters.h */; };
+ 71F4C5A20FDED12800529849 /* psxdma.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5790FDED12800529849 /* psxdma.c */; };
+ 71F4C5A30FDED12800529849 /* psxdma.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C57A0FDED12800529849 /* psxdma.h */; };
+ 71F4C5A40FDED12800529849 /* psxhle.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C57B0FDED12800529849 /* psxhle.c */; };
+ 71F4C5A50FDED12800529849 /* psxhle.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C57C0FDED12800529849 /* psxhle.h */; };
+ 71F4C5A60FDED12800529849 /* psxhw.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C57D0FDED12800529849 /* psxhw.c */; };
+ 71F4C5A70FDED12800529849 /* psxhw.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C57E0FDED12800529849 /* psxhw.h */; };
+ 71F4C5A80FDED12800529849 /* psxinterpreter.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C57F0FDED12800529849 /* psxinterpreter.c */; };
+ 71F4C5A90FDED12800529849 /* psxmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5800FDED12800529849 /* psxmem.c */; };
+ 71F4C5AA0FDED12800529849 /* psxmem.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5810FDED12800529849 /* psxmem.h */; };
+ 71F4C5AB0FDED12800529849 /* r3000a.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5820FDED12800529849 /* r3000a.c */; };
+ 71F4C5AC0FDED12800529849 /* r3000a.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5830FDED12800529849 /* r3000a.h */; };
+ 71F4C5AD0FDED12800529849 /* sio.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5840FDED12800529849 /* sio.c */; };
+ 71F4C5AE0FDED12800529849 /* sio.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5850FDED12800529849 /* sio.h */; };
+ 71F4C5AF0FDED12800529849 /* spu.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5860FDED12800529849 /* spu.c */; };
+ 71F4C5B00FDED12800529849 /* spu.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5870FDED12800529849 /* spu.h */; };
+ 71F4C5B10FDED12800529849 /* system.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5880FDED12800529849 /* system.h */; };
+ 71F4C5B80FDED16D00529849 /* iGte.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5B40FDED16D00529849 /* iGte.h */; };
+ 71F4C5B90FDED16D00529849 /* iR3000A.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5B50FDED16D00529849 /* iR3000A.c */; };
+ 71F4C5BA0FDED16D00529849 /* ix86.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F4C5B60FDED16D00529849 /* ix86.c */; };
+ 71F4C5BB0FDED16D00529849 /* ix86.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F4C5B70FDED16D00529849 /* ix86.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildRule section */
+ 2BB3D6D005427FE200831ACB /* PBXBuildRule */ = {
+ isa = PBXBuildRule;
+ compilerSpec = com.apple.compilers.gcc;
+ fileType = sourcecode.c;
+ isEditable = 1;
+ outputFiles = (
+ );
+ };
+ 2BD707B705559AE300CB5D9B /* PBXBuildRule */ = {
+ isa = PBXBuildRule;
+ compilerSpec = com.apple.compilers.gcc;
+ filePatterns = pasm.s;
+ fileType = sourcecode.asm;
+ isEditable = 1;
+ outputFiles = (
+ "$(DERIVED_FILES_DIR)/$(INPUT_FILE_BASE).o",
+ );
+ script = "as -o $(DERIVED_FILES_DIR)/$(INPUT_FILE_BASE).o $(INPUT_FILE_PATH)";
+ };
+/* End PBXBuildRule section */
+
+/* Begin PBXFileReference section */
+ 2B02C04304E145D000880C5B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ 2B143D01078A2CBD00AF745A /* PCSX.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = PCSX.icns; sourceTree = "<group>"; };
+ 2B143D02078A2CBD00AF745A /* pcsxfreeze.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = pcsxfreeze.icns; sourceTree = "<group>"; };
+ 2B143D03078A2CBD00AF745A /* pcsxmemcard.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = pcsxmemcard.icns; sourceTree = "<group>"; };
+ 2B143D04078A2CBD00AF745A /* psxbios.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = psxbios.icns; sourceTree = "<group>"; };
+ 2B143D05078A2CBD00AF745A /* psxplugin.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = psxplugin.icns; sourceTree = "<group>"; };
+ 2B2189D204D96C7A00179945 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
+ 2B3E356A06937D1C00763C7D /* PcsxPluginDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PcsxPluginDocument.h; sourceTree = "<group>"; };
+ 2B3E356B06937D1C00763C7D /* PcsxPluginDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PcsxPluginDocument.m; sourceTree = "<group>"; };
+ 2B3E35BB069384D100763C7D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = AddPluginSheet.nib; sourceTree = "<group>"; };
+ 2B4DE98D05FF9307003EFEF0 /* PluginController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PluginController.h; sourceTree = "<group>"; };
+ 2B4DE98E05FF9307003EFEF0 /* PluginController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PluginController.m; sourceTree = "<group>"; };
+ 2B690C760635C65C00CDA575 /* ExceptionHandling.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ExceptionHandling.framework; path = /System/Library/Frameworks/ExceptionHandling.framework; sourceTree = "<absolute>"; };
+ 2B6E8AAE04C832040017A3B1 /* System.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = System.framework; path = /System/Library/Frameworks/System.framework; sourceTree = "<absolute>"; };
+ 2B6E8AB404C8327C0017A3B1 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
+ 2B75FD3C051C56D200D12034 /* PcsxController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PcsxController.h; sourceTree = "<group>"; };
+ 2B75FD3D051C56D200D12034 /* PcsxController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PcsxController.m; sourceTree = "<group>"; };
+ 2B75FD4A051C8A7400D12034 /* ConfigurationController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConfigurationController.h; sourceTree = "<group>"; };
+ 2B75FD4B051C8A7400D12034 /* ConfigurationController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ConfigurationController.m; sourceTree = "<group>"; };
+ 2B976C00074C14B4007C050A /* Kernel.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kernel.framework; path = /System/Library/Frameworks/Kernel.framework; sourceTree = "<absolute>"; };
+ 2BA178A505148D9D0026D74D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 2BA178B10514CE260026D74D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = Configuration.nib; sourceTree = "<group>"; };
+ 2BA178B30514CE260026D74D /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = "<group>"; };
+ 2BA178B50514CE260026D74D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = PCSX.nib; sourceTree = "<group>"; };
+ 2BA44360052DB2EA00E21DDD /* PcsxPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PcsxPlugin.h; sourceTree = "<group>"; };
+ 2BA44361052DB2EA00E21DDD /* PcsxPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = PcsxPlugin.m; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; };
+ 2BB3D6CF05427FE200831ACB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
+ 2BB3D6D105427FE200831ACB /* PCSX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PCSX.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2BBB1126051DC00500B84448 /* PluginList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginList.h; sourceTree = "<group>"; };
+ 2BBB1127051DC00500B84448 /* PluginList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PluginList.m; sourceTree = "<group>"; };
+ 2BBB1787051E0D9700B84448 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = Credits.rtf; sourceTree = "<group>"; };
+ 2BBB1791051E113B00B84448 /* EmuThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmuThread.h; sourceTree = "<group>"; };
+ 2BBB1792051E113B00B84448 /* EmuThread.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EmuThread.m; sourceTree = "<group>"; };
+ 2BBB17DA051E4D0F00B84448 /* Plugin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = Plugin.c; sourceTree = SOURCE_ROOT; };
+ 2BC4786204C7FD3600CAB520 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 7161C2810FDED6D000225F97 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
+ 7161C2970FDED75300225F97 /* ExtendedKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExtendedKeys.h; sourceTree = "<group>"; };
+ 71F4C5600FDED12800529849 /* cdriso.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cdriso.c; path = ../libpcsxcore/cdriso.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5610FDED12800529849 /* cdriso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cdriso.h; path = ../libpcsxcore/cdriso.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5620FDED12800529849 /* cdrom.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cdrom.c; path = ../libpcsxcore/cdrom.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5630FDED12800529849 /* cdrom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cdrom.h; path = ../libpcsxcore/cdrom.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5640FDED12800529849 /* cheat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cheat.c; path = ../libpcsxcore/cheat.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5650FDED12800529849 /* cheat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cheat.h; path = ../libpcsxcore/cheat.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5660FDED12800529849 /* coff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = coff.h; path = ../libpcsxcore/coff.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5670FDED12800529849 /* debug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debug.h; path = ../libpcsxcore/debug.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5680FDED12800529849 /* decode_xa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = decode_xa.c; path = ../libpcsxcore/decode_xa.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5690FDED12800529849 /* decode_xa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = decode_xa.h; path = ../libpcsxcore/decode_xa.h; sourceTree = SOURCE_ROOT; };
+ 71F4C56A0FDED12800529849 /* disr3000a.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = disr3000a.c; path = ../libpcsxcore/disr3000a.c; sourceTree = SOURCE_ROOT; };
+ 71F4C56B0FDED12800529849 /* gte.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gte.c; path = ../libpcsxcore/gte.c; sourceTree = SOURCE_ROOT; };
+ 71F4C56C0FDED12800529849 /* gte.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gte.h; path = ../libpcsxcore/gte.h; sourceTree = SOURCE_ROOT; };
+ 71F4C56D0FDED12800529849 /* mdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdec.c; path = ../libpcsxcore/mdec.c; sourceTree = SOURCE_ROOT; };
+ 71F4C56E0FDED12800529849 /* mdec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdec.h; path = ../libpcsxcore/mdec.h; sourceTree = SOURCE_ROOT; };
+ 71F4C56F0FDED12800529849 /* misc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = misc.c; path = ../libpcsxcore/misc.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5700FDED12800529849 /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = misc.h; path = ../libpcsxcore/misc.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5710FDED12800529849 /* plugins.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = plugins.c; path = ../libpcsxcore/plugins.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5720FDED12800529849 /* plugins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = plugins.h; path = ../libpcsxcore/plugins.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5730FDED12800529849 /* psemu_plugin_defs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psemu_plugin_defs.h; path = ../libpcsxcore/psemu_plugin_defs.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5740FDED12800529849 /* psxbios.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxbios.c; path = ../libpcsxcore/psxbios.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5750FDED12800529849 /* psxbios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxbios.h; path = ../libpcsxcore/psxbios.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5760FDED12800529849 /* psxcommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxcommon.h; path = ../libpcsxcore/psxcommon.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5770FDED12800529849 /* psxcounters.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxcounters.c; path = ../libpcsxcore/psxcounters.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5780FDED12800529849 /* psxcounters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxcounters.h; path = ../libpcsxcore/psxcounters.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5790FDED12800529849 /* psxdma.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxdma.c; path = ../libpcsxcore/psxdma.c; sourceTree = SOURCE_ROOT; };
+ 71F4C57A0FDED12800529849 /* psxdma.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxdma.h; path = ../libpcsxcore/psxdma.h; sourceTree = SOURCE_ROOT; };
+ 71F4C57B0FDED12800529849 /* psxhle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxhle.c; path = ../libpcsxcore/psxhle.c; sourceTree = SOURCE_ROOT; };
+ 71F4C57C0FDED12800529849 /* psxhle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxhle.h; path = ../libpcsxcore/psxhle.h; sourceTree = SOURCE_ROOT; };
+ 71F4C57D0FDED12800529849 /* psxhw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxhw.c; path = ../libpcsxcore/psxhw.c; sourceTree = SOURCE_ROOT; };
+ 71F4C57E0FDED12800529849 /* psxhw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxhw.h; path = ../libpcsxcore/psxhw.h; sourceTree = SOURCE_ROOT; };
+ 71F4C57F0FDED12800529849 /* psxinterpreter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxinterpreter.c; path = ../libpcsxcore/psxinterpreter.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5800FDED12800529849 /* psxmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psxmem.c; path = ../libpcsxcore/psxmem.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5810FDED12800529849 /* psxmem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psxmem.h; path = ../libpcsxcore/psxmem.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5820FDED12800529849 /* r3000a.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = r3000a.c; path = ../libpcsxcore/r3000a.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5830FDED12800529849 /* r3000a.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = r3000a.h; path = ../libpcsxcore/r3000a.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5840FDED12800529849 /* sio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sio.c; path = ../libpcsxcore/sio.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5850FDED12800529849 /* sio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sio.h; path = ../libpcsxcore/sio.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5860FDED12800529849 /* spu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = spu.c; path = ../libpcsxcore/spu.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5870FDED12800529849 /* spu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spu.h; path = ../libpcsxcore/spu.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5880FDED12800529849 /* system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = system.h; path = ../libpcsxcore/system.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5B40FDED16D00529849 /* iGte.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = iGte.h; path = ../libpcsxcore/ix86/iGte.h; sourceTree = SOURCE_ROOT; };
+ 71F4C5B50FDED16D00529849 /* iR3000A.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = iR3000A.c; path = ../libpcsxcore/ix86/iR3000A.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5B60FDED16D00529849 /* ix86.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ix86.c; path = ../libpcsxcore/ix86/ix86.c; sourceTree = SOURCE_ROOT; };
+ 71F4C5B70FDED16D00529849 /* ix86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ix86.h; path = ../libpcsxcore/ix86/ix86.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 2BB3D6C505427FE200831ACB /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2BB3D6C605427FE200831ACB /* Cocoa.framework in Frameworks */,
+ 2BB3D6C705427FE200831ACB /* System.framework in Frameworks */,
+ 2BB3D6C805427FE200831ACB /* IOKit.framework in Frameworks */,
+ 2B400D910789F58A00BA271E /* Carbon.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 0249A662FF388D9811CA2CEA /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 2B976C00074C14B4007C050A /* Kernel.framework */,
+ 2B02C04304E145D000880C5B /* Carbon.framework */,
+ 2BC4786204C7FD3600CAB520 /* Cocoa.framework */,
+ 2B6E8AAE04C832040017A3B1 /* System.framework */,
+ 2B6E8AB404C8327C0017A3B1 /* IOKit.framework */,
+ 2B2189D204D96C7A00179945 /* CoreFoundation.framework */,
+ 2B690C760635C65C00CDA575 /* ExceptionHandling.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 08FB7794FE84155DC02AAC07 /* Pcsx */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB7795FE84155DC02AAC07 /* Source */,
+ 0249A662FF388D9811CA2CEA /* External Frameworks and Libraries */,
+ 1AB674ADFE9D54B511CA2CBB /* Products */,
+ 2BB3D6CF05427FE200831ACB /* Info.plist */,
+ );
+ name = Pcsx;
+ sourceTree = "<group>";
+ };
+ 08FB7795FE84155DC02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 2BCE23B204C6B52C007C2DA3 /* libpcsxcore */,
+ 2BC4787804C7FDBD00CAB520 /* MacOSX */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 1AB674ADFE9D54B511CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 2BBD6C1D04C893F500A83E33 /* Plugin */,
+ 2BB3D6D105427FE200831ACB /* PCSX.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 2B143D00078A2CBD00AF745A /* icons */ = {
+ isa = PBXGroup;
+ children = (
+ 2B143D01078A2CBD00AF745A /* PCSX.icns */,
+ 2B143D02078A2CBD00AF745A /* pcsxfreeze.icns */,
+ 2B143D03078A2CBD00AF745A /* pcsxmemcard.icns */,
+ 2B143D04078A2CBD00AF745A /* psxbios.icns */,
+ 2B143D05078A2CBD00AF745A /* psxplugin.icns */,
+ );
+ path = icons;
+ sourceTree = "<group>";
+ };
+ 2BA178AD0514CE260026D74D /* English.lproj */ = {
+ isa = PBXGroup;
+ children = (
+ 2BBB1786051E0D9700B84448 /* Credits.rtf */,
+ 2BA178B00514CE260026D74D /* Configuration.nib */,
+ 2BA178B20514CE260026D74D /* InfoPlist.strings */,
+ 2BA178B40514CE260026D74D /* PCSX.nib */,
+ 2B3E35BA069384D100763C7D /* AddPluginSheet.nib */,
+ );
+ path = English.lproj;
+ sourceTree = "<group>";
+ };
+ 2BBD6C1D04C893F500A83E33 /* Plugin */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Plugin;
+ sourceTree = "<group>";
+ };
+ 2BC4787804C7FDBD00CAB520 /* MacOSX */ = {
+ isa = PBXGroup;
+ children = (
+ 2BA178AD0514CE260026D74D /* English.lproj */,
+ 2B143D00078A2CBD00AF745A /* icons */,
+ 7161C2810FDED6D000225F97 /* config.h */,
+ 2BA178A505148D9D0026D74D /* main.m */,
+ 2BBB17DA051E4D0F00B84448 /* Plugin.c */,
+ 2B75FD3C051C56D200D12034 /* PcsxController.h */,
+ 2B75FD3D051C56D200D12034 /* PcsxController.m */,
+ 2B75FD4A051C8A7400D12034 /* ConfigurationController.h */,
+ 2B75FD4B051C8A7400D12034 /* ConfigurationController.m */,
+ 2B4DE98D05FF9307003EFEF0 /* PluginController.h */,
+ 2B4DE98E05FF9307003EFEF0 /* PluginController.m */,
+ 2BBB1791051E113B00B84448 /* EmuThread.h */,
+ 2BBB1792051E113B00B84448 /* EmuThread.m */,
+ 7161C2970FDED75300225F97 /* ExtendedKeys.h */,
+ 2BBB1126051DC00500B84448 /* PluginList.h */,
+ 2BBB1127051DC00500B84448 /* PluginList.m */,
+ 2BA44360052DB2EA00E21DDD /* PcsxPlugin.h */,
+ 2BA44361052DB2EA00E21DDD /* PcsxPlugin.m */,
+ 2B3E356A06937D1C00763C7D /* PcsxPluginDocument.h */,
+ 2B3E356B06937D1C00763C7D /* PcsxPluginDocument.m */,
+ );
+ name = MacOSX;
+ sourceTree = "<group>";
+ };
+ 2BCE23B204C6B52C007C2DA3 /* libpcsxcore */ = {
+ isa = PBXGroup;
+ children = (
+ 71F4C5B30FDED15800529849 /* ix86 */,
+ 71F4C5600FDED12800529849 /* cdriso.c */,
+ 71F4C5610FDED12800529849 /* cdriso.h */,
+ 71F4C5620FDED12800529849 /* cdrom.c */,
+ 71F4C5630FDED12800529849 /* cdrom.h */,
+ 71F4C5640FDED12800529849 /* cheat.c */,
+ 71F4C5650FDED12800529849 /* cheat.h */,
+ 71F4C5660FDED12800529849 /* coff.h */,
+ 71F4C5670FDED12800529849 /* debug.h */,
+ 71F4C5680FDED12800529849 /* decode_xa.c */,
+ 71F4C5690FDED12800529849 /* decode_xa.h */,
+ 71F4C56A0FDED12800529849 /* disr3000a.c */,
+ 71F4C56B0FDED12800529849 /* gte.c */,
+ 71F4C56C0FDED12800529849 /* gte.h */,
+ 71F4C56D0FDED12800529849 /* mdec.c */,
+ 71F4C56E0FDED12800529849 /* mdec.h */,
+ 71F4C56F0FDED12800529849 /* misc.c */,
+ 71F4C5700FDED12800529849 /* misc.h */,
+ 71F4C5710FDED12800529849 /* plugins.c */,
+ 71F4C5720FDED12800529849 /* plugins.h */,
+ 71F4C5730FDED12800529849 /* psemu_plugin_defs.h */,
+ 71F4C5740FDED12800529849 /* psxbios.c */,
+ 71F4C5750FDED12800529849 /* psxbios.h */,
+ 71F4C5760FDED12800529849 /* psxcommon.h */,
+ 71F4C5770FDED12800529849 /* psxcounters.c */,
+ 71F4C5780FDED12800529849 /* psxcounters.h */,
+ 71F4C5790FDED12800529849 /* psxdma.c */,
+ 71F4C57A0FDED12800529849 /* psxdma.h */,
+ 71F4C57B0FDED12800529849 /* psxhle.c */,
+ 71F4C57C0FDED12800529849 /* psxhle.h */,
+ 71F4C57D0FDED12800529849 /* psxhw.c */,
+ 71F4C57E0FDED12800529849 /* psxhw.h */,
+ 71F4C57F0FDED12800529849 /* psxinterpreter.c */,
+ 71F4C5800FDED12800529849 /* psxmem.c */,
+ 71F4C5810FDED12800529849 /* psxmem.h */,
+ 71F4C5820FDED12800529849 /* r3000a.c */,
+ 71F4C5830FDED12800529849 /* r3000a.h */,
+ 71F4C5840FDED12800529849 /* sio.c */,
+ 71F4C5850FDED12800529849 /* sio.h */,
+ 71F4C5860FDED12800529849 /* spu.c */,
+ 71F4C5870FDED12800529849 /* spu.h */,
+ 71F4C5880FDED12800529849 /* system.h */,
+ );
+ name = libpcsxcore;
+ sourceTree = "<group>";
+ };
+ 71F4C5B30FDED15800529849 /* ix86 */ = {
+ isa = PBXGroup;
+ children = (
+ 71F4C5B40FDED16D00529849 /* iGte.h */,
+ 71F4C5B50FDED16D00529849 /* iR3000A.c */,
+ 71F4C5B60FDED16D00529849 /* ix86.c */,
+ 71F4C5B70FDED16D00529849 /* ix86.h */,
+ );
+ name = ix86;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 2BB3D68305427FE200831ACB /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2BB3D69D05427FE200831ACB /* PcsxController.h in Headers */,
+ 2BB3D69E05427FE200831ACB /* ConfigurationController.h in Headers */,
+ 2BB3D69F05427FE200831ACB /* PluginList.h in Headers */,
+ 2BB3D6A005427FE200831ACB /* EmuThread.h in Headers */,
+ 2BB3D6A105427FE200831ACB /* PcsxPlugin.h in Headers */,
+ 2B4DE99105FF9307003EFEF0 /* PluginController.h in Headers */,
+ 2B3E356C06937D1C00763C7D /* PcsxPluginDocument.h in Headers */,
+ 71F4C58A0FDED12800529849 /* cdriso.h in Headers */,
+ 71F4C58C0FDED12800529849 /* cdrom.h in Headers */,
+ 71F4C58E0FDED12800529849 /* cheat.h in Headers */,
+ 71F4C58F0FDED12800529849 /* coff.h in Headers */,
+ 71F4C5900FDED12800529849 /* debug.h in Headers */,
+ 71F4C5920FDED12800529849 /* decode_xa.h in Headers */,
+ 71F4C5950FDED12800529849 /* gte.h in Headers */,
+ 71F4C5970FDED12800529849 /* mdec.h in Headers */,
+ 71F4C5990FDED12800529849 /* misc.h in Headers */,
+ 71F4C59B0FDED12800529849 /* plugins.h in Headers */,
+ 71F4C59C0FDED12800529849 /* psemu_plugin_defs.h in Headers */,
+ 71F4C59E0FDED12800529849 /* psxbios.h in Headers */,
+ 71F4C59F0FDED12800529849 /* psxcommon.h in Headers */,
+ 71F4C5A10FDED12800529849 /* psxcounters.h in Headers */,
+ 71F4C5A30FDED12800529849 /* psxdma.h in Headers */,
+ 71F4C5A50FDED12800529849 /* psxhle.h in Headers */,
+ 71F4C5A70FDED12800529849 /* psxhw.h in Headers */,
+ 71F4C5AA0FDED12800529849 /* psxmem.h in Headers */,
+ 71F4C5AC0FDED12800529849 /* r3000a.h in Headers */,
+ 71F4C5AE0FDED12800529849 /* sio.h in Headers */,
+ 71F4C5B00FDED12800529849 /* spu.h in Headers */,
+ 71F4C5B10FDED12800529849 /* system.h in Headers */,
+ 71F4C5B80FDED16D00529849 /* iGte.h in Headers */,
+ 71F4C5BB0FDED16D00529849 /* ix86.h in Headers */,
+ 7161C2820FDED6D000225F97 /* config.h in Headers */,
+ 7161C2980FDED75300225F97 /* ExtendedKeys.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 2BB3D68205427FE200831ACB /* PCSX */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 71F353F30FD98DFE00CBEC28 /* Build configuration list for PBXNativeTarget "PCSX" */;
+ buildPhases = (
+ 2BB3D68305427FE200831ACB /* Headers */,
+ 2BB3D6A205427FE200831ACB /* Resources */,
+ 2BB3D6A805427FE200831ACB /* Sources */,
+ 2BB3D6C505427FE200831ACB /* Frameworks */,
+ 2BB3D6CD05427FE200831ACB /* Rez */,
+ );
+ buildRules = (
+ 2BD707B705559AE300CB5D9B /* PBXBuildRule */,
+ 2BB3D6D005427FE200831ACB /* PBXBuildRule */,
+ );
+ dependencies = (
+ );
+ name = PCSX;
+ productInstallPath = "$(USER_APPS_DIR)";
+ productName = "Pcsx-MacOSX";
+ productReference = 2BB3D6D105427FE200831ACB /* PCSX.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 08FB7793FE84155DC02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 71F353F80FD98DFE00CBEC28 /* Build configuration list for PBXProject "Pcsx" */;
+ hasScannedForEncodings = 1;
+ mainGroup = 08FB7794FE84155DC02AAC07 /* Pcsx */;
+ projectDirPath = "";
+ targets = (
+ 2BB3D68205427FE200831ACB /* PCSX */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 2BB3D6A205427FE200831ACB /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2BB3D6A305427FE200831ACB /* Configuration.nib in Resources */,
+ 2BB3D6A405427FE200831ACB /* InfoPlist.strings in Resources */,
+ 2BB3D6A505427FE200831ACB /* PCSX.nib in Resources */,
+ 2BB3D6A705427FE200831ACB /* Credits.rtf in Resources */,
+ 2B3E35BC069384D100763C7D /* AddPluginSheet.nib in Resources */,
+ 2B143D06078A2CBD00AF745A /* PCSX.icns in Resources */,
+ 2B143D07078A2CBD00AF745A /* pcsxfreeze.icns in Resources */,
+ 2B143D08078A2CBD00AF745A /* pcsxmemcard.icns in Resources */,
+ 2B143D09078A2CBD00AF745A /* psxbios.icns in Resources */,
+ 2B143D0A078A2CBD00AF745A /* psxplugin.icns in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+ 2BB3D6CD05427FE200831ACB /* Rez */ = {
+ isa = PBXRezBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 2BB3D6A805427FE200831ACB /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2BB3D6BE05427FE200831ACB /* main.m in Sources */,
+ 2BB3D6BF05427FE200831ACB /* PcsxController.m in Sources */,
+ 2BB3D6C005427FE200831ACB /* ConfigurationController.m in Sources */,
+ 2BB3D6C105427FE200831ACB /* PluginList.m in Sources */,
+ 2BB3D6C205427FE200831ACB /* EmuThread.m in Sources */,
+ 2BB3D6C305427FE200831ACB /* Plugin.c in Sources */,
+ 2BB3D6C405427FE200831ACB /* PcsxPlugin.m in Sources */,
+ 2B4DE99205FF9307003EFEF0 /* PluginController.m in Sources */,
+ 2B3E356D06937D1C00763C7D /* PcsxPluginDocument.m in Sources */,
+ 71F4C5890FDED12800529849 /* cdriso.c in Sources */,
+ 71F4C58B0FDED12800529849 /* cdrom.c in Sources */,
+ 71F4C58D0FDED12800529849 /* cheat.c in Sources */,
+ 71F4C5910FDED12800529849 /* decode_xa.c in Sources */,
+ 71F4C5930FDED12800529849 /* disr3000a.c in Sources */,
+ 71F4C5940FDED12800529849 /* gte.c in Sources */,
+ 71F4C5960FDED12800529849 /* mdec.c in Sources */,
+ 71F4C5980FDED12800529849 /* misc.c in Sources */,
+ 71F4C59A0FDED12800529849 /* plugins.c in Sources */,
+ 71F4C59D0FDED12800529849 /* psxbios.c in Sources */,
+ 71F4C5A00FDED12800529849 /* psxcounters.c in Sources */,
+ 71F4C5A20FDED12800529849 /* psxdma.c in Sources */,
+ 71F4C5A40FDED12800529849 /* psxhle.c in Sources */,
+ 71F4C5A60FDED12800529849 /* psxhw.c in Sources */,
+ 71F4C5A80FDED12800529849 /* psxinterpreter.c in Sources */,
+ 71F4C5A90FDED12800529849 /* psxmem.c in Sources */,
+ 71F4C5AB0FDED12800529849 /* r3000a.c in Sources */,
+ 71F4C5AD0FDED12800529849 /* sio.c in Sources */,
+ 71F4C5AF0FDED12800529849 /* spu.c in Sources */,
+ 71F4C5B90FDED16D00529849 /* iR3000A.c in Sources */,
+ 71F4C5BA0FDED16D00529849 /* ix86.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 2B3E35BA069384D100763C7D /* AddPluginSheet.nib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2B3E35BB069384D100763C7D /* English */,
+ );
+ name = AddPluginSheet.nib;
+ sourceTree = "<group>";
+ };
+ 2BA178B00514CE260026D74D /* Configuration.nib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2BA178B10514CE260026D74D /* English */,
+ );
+ name = Configuration.nib;
+ sourceTree = "<group>";
+ };
+ 2BA178B20514CE260026D74D /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2BA178B30514CE260026D74D /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ 2BA178B40514CE260026D74D /* PCSX.nib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2BA178B50514CE260026D74D /* English */,
+ );
+ name = PCSX.nib;
+ sourceTree = "<group>";
+ };
+ 2BBB1786051E0D9700B84448 /* Credits.rtf */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2BBB1787051E0D9700B84448 /* English */,
+ );
+ name = Credits.rtf;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 71F353F40FD98DFE00CBEC28 /* Development */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ DEBUGGING_SYMBOLS = YES;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_ASM_KEYWORD = YES;
+ GCC_ENABLE_CPP_EXCEPTIONS = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_CPU = G3;
+ GCC_MODEL_TUNING = G3;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_1)",
+ __MACOSX__,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_1 = "PCSX_VERSION=\\\"1.5\\\"";
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+ GCC_WARN_UNKNOWN_PRAGMAS = NO;
+ INFOPLIST_FILE = Info.plist;
+ OTHER_CFLAGS = (
+ "-fomit-frame-pointer",
+ "-funroll-loops",
+ "-falign-loops=16",
+ );
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = PCSX;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost";
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = NO;
+ };
+ name = Development;
+ };
+ 71F353F50FD98DFE00CBEC28 /* Deployment */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ DEBUGGING_SYMBOLS = NO;
+ GCC_DYNAMIC_NO_PIC = YES;
+ GCC_ENABLE_ASM_KEYWORD = YES;
+ GCC_ENABLE_CPP_EXCEPTIONS = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_CPU = G3;
+ GCC_MODEL_TUNING = G3;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_1)",
+ __MACOSX__,
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_1 = "PCSX_VERSION=\\\"1.5\\\"";
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+ GCC_WARN_UNKNOWN_PRAGMAS = NO;
+ INFOPLIST_FILE = Info.plist;
+ OTHER_CFLAGS = (
+ "-fomit-frame-pointer",
+ "-funroll-loops",
+ "-falign-loops=16",
+ );
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = PCSX;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost";
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = NO;
+ };
+ name = Deployment;
+ };
+ 71F353F90FD98DFE00CBEC28 /* Development */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ GCC_MODEL_TUNING = "";
+ HEADER_SEARCH_PATHS = (
+ ../include,
+ ../libpcsxcore,
+ ../macosx,
+ );
+ OTHER_LDFLAGS = (
+ "-lz",
+ "-lSystemStubs",
+ );
+ };
+ name = Development;
+ };
+ 71F353FA0FD98DFE00CBEC28 /* Deployment */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ GCC_MODEL_TUNING = "";
+ GCC_OPTIMIZATION_LEVEL = 2;
+ HEADER_SEARCH_PATHS = (
+ ../include,
+ ../libpcsxcore,
+ ../macosx,
+ );
+ OTHER_LDFLAGS = (
+ "-lz",
+ "-lSystemStubs",
+ );
+ };
+ name = Deployment;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 71F353F30FD98DFE00CBEC28 /* Build configuration list for PBXNativeTarget "PCSX" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 71F353F40FD98DFE00CBEC28 /* Development */,
+ 71F353F50FD98DFE00CBEC28 /* Deployment */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Development;
+ };
+ 71F353F80FD98DFE00CBEC28 /* Build configuration list for PBXProject "Pcsx" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 71F353F90FD98DFE00CBEC28 /* Development */,
+ 71F353FA0FD98DFE00CBEC28 /* Deployment */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Development;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/macosx/PcsxController.h b/macosx/PcsxController.h
new file mode 100644
index 00000000..1e83aa81
--- /dev/null
+++ b/macosx/PcsxController.h
@@ -0,0 +1,35 @@
+/* PcsxController */
+
+#import <Cocoa/Cocoa.h>
+#import "EmuThread.h"
+#import "PluginList.h"
+
+@interface PcsxController : NSObject
+{
+ NSWindowController *preferencesController;
+ NSWindowController *memCardController;
+ PluginList *pluginList;
+
+ IBOutlet NSWindow *memCardWindow;
+ IBOutlet NSWindow *preferenceWindow;
+
+ BOOL sleepInBackground;
+ BOOL wasPausedBeforeBGSwitch;
+}
+- (IBAction)ejectCD:(id)sender;
+- (IBAction)memCardConfig:(id)sender;
+- (IBAction)pause:(id)sender;
+- (IBAction)preferences:(id)sender;
+- (IBAction)reset:(id)sender;
+- (IBAction)runCD:(id)sender;
+- (IBAction)runBios:(id)sender;
+- (IBAction)runExe:(id)sender;
+- (IBAction)freeze:(id)sender;
+- (IBAction)defrost:(id)sender;
+- (IBAction)fullscreen:(id)sender;
+
++ (void)setConfigFromDefaults;
++ (void)setDefaultFromConfig:(NSString *)defaultKey;
++ (BOOL)biosAvailable;
+
+@end
diff --git a/macosx/PcsxController.m b/macosx/PcsxController.m
new file mode 100644
index 00000000..b1502761
--- /dev/null
+++ b/macosx/PcsxController.m
@@ -0,0 +1,387 @@
+#import <Cocoa/Cocoa.h>
+#import "PcsxController.h"
+#import "ConfigurationController.h"
+#import "EmuThread.h"
+#include "psxcommon.h"
+#include "plugins.h"
+#include "misc.h"
+#include "ExtendedKeys.h"
+
+NSDictionary *prefStringKeys;
+NSDictionary *prefLongKeys;
+NSMutableArray *biosList;
+NSString *saveStatePath;
+
+@implementation PcsxController
+
+- (IBAction)ejectCD:(id)sender
+{
+ NSMutableString *deviceName;
+ NSTask *ejectTask;
+ NSRange rdiskRange;
+
+ BOOL wasPaused = [EmuThread pauseSafe];
+
+ /* close connection to current cd */
+ if ([EmuThread active])
+ CDR_close();
+
+ if (CDR_getDriveLetter() != nil) {
+ deviceName = [NSMutableString stringWithCString:CDR_getDriveLetter()];
+
+ // delete the 'r' in 'rdisk'
+ rdiskRange = [deviceName rangeOfString:@"rdisk"];
+ if (rdiskRange.length != 0) {
+ rdiskRange.length = 1;
+ [deviceName deleteCharactersInRange:rdiskRange];
+ }
+ // execute hdiutil to eject the device
+ ejectTask = [NSTask launchedTaskWithLaunchPath:@"/usr/bin/hdiutil" arguments:[NSArray arrayWithObjects:@"eject", deviceName, nil]];
+ [ejectTask waitUntilExit];
+ }
+
+ /* and open new cd */
+ if ([EmuThread active])
+ CDR_open();
+
+ if (!wasPaused) {
+ [EmuThread resume];
+ }
+}
+
+- (IBAction)memCardConfig:(id)sender
+{
+ NSRunAlertPanel(NSLocalizedString(@"Unimplemented feature", nil),
+ NSLocalizedString(@"Configuration of memory cards has not yet been implemented, but will be available in the future.", nil),
+ nil, nil, nil);
+}
+
+- (IBAction)pause:(id)sender
+{
+ if ([EmuThread isPaused]) {
+ //[sender setState:NSOffState];
+ [EmuThread resume];
+ }
+ else {
+ //[sender setState:NSOnState];
+ [EmuThread pause];
+ }
+}
+
+- (IBAction)preferences:(id)sender
+{
+ /* load the nib if it hasn't yet */
+ if (preferenceWindow == nil) {
+ if (preferencesController == nil) {
+ preferencesController = [[ConfigurationController alloc] initWithWindowNibName:@"Configuration"];
+ }
+ preferenceWindow = [preferencesController window];
+ }
+
+ /* show the window */
+ [preferenceWindow makeKeyAndOrderFront:self];
+ [preferencesController showWindow:self];
+}
+
+- (IBAction)reset:(id)sender
+{
+ [EmuThread reset];
+}
+
+- (IBAction)runCD:(id)sender
+{
+// LoadCdBios = 0;
+ [EmuThread run];
+}
+
+- (IBAction)runBios:(id)sender
+{
+// LoadCdBios = 1;
+ [EmuThread run];
+}
+
+- (IBAction)runExe:(id)sender
+{
+}
+
+- (IBAction)freeze:(id)sender
+{
+ int num = [sender tag];
+ NSString *path = [NSString stringWithFormat:@"%@/%s-%3.3d.pcsxstate", saveStatePath, CdromId, num];
+
+ [EmuThread freezeAt:path which:num-1];
+}
+
+- (IBAction)defrost:(id)sender
+{
+ NSString *path = [NSString stringWithFormat:@"%@/%s-%3.3d.pcsxstate", saveStatePath, CdromId, [sender tag]];
+ [EmuThread defrostAt:path];
+}
+
+- (IBAction)fullscreen:(id)sender
+{
+ GPU_keypressed(GPU_FULLSCREEN_KEY);
+}
+
+
+- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem
+{
+ if ([menuItem action] == @selector(pause:)) {
+ [menuItem setState:([EmuThread isPaused] ? NSOnState : NSOffState)];
+ } else if ([menuItem action] == @selector(runBios:)) {
+ return [PcsxController biosAvailable];
+ }
+
+ if ([menuItem action] == @selector(reset:) || [menuItem action] == @selector(pause:) ||
+ [menuItem action] == @selector(ejectCD:) || [menuItem action] == @selector(freeze:) ||
+ [menuItem action] == @selector(fullscreen:))
+ return [EmuThread active];
+
+ if ([menuItem action] == @selector(defrost:)) {
+ if (![EmuThread active])
+ return NO;
+
+ NSString *path = [NSString stringWithFormat:@"%@/%s-%3.3d.pcsxstate", saveStatePath, CdromId, [menuItem tag]];
+ return (CheckState([path fileSystemRepresentation]) == 0);
+ }
+
+ return YES;
+}
+
+- (void)applicationWillResignActive:(NSNotification *)aNotification
+{
+ wasPausedBeforeBGSwitch = [EmuThread isPaused];
+
+ if (sleepInBackground) {
+ [EmuThread pause];
+ }
+}
+
+- (void)applicationDidBecomeActive:(NSNotification *)aNotification
+{
+ if (sleepInBackground && !wasPausedBeforeBGSwitch) {
+ [EmuThread resume];
+ }
+}
+
+- (void)awakeFromNib
+{
+ pluginList = [[PluginList alloc] init];
+ if (![pluginList configured] /*!Config.Gpu[0] || !Config.Spu[0] || !Config.Pad1[0] || !Config.Cdr[0]*/) {
+ // configure plugins
+ [self preferences:nil];
+
+ NSRunCriticalAlertPanel(NSLocalizedString(@"Missing plugins!", nil),
+ NSLocalizedString(@"Pcsx is missing one or more critical plugins. You will need to install these in order to play games.", nil),
+ nil, nil, nil);
+ }
+
+ if (![PcsxController biosAvailable]) {
+ NSRunInformationalAlertPanel(NSLocalizedString(@"Missing BIOS!", nil),
+ NSLocalizedString(@"Pcsx wasn't able to locate any Playstation BIOS ROM files. This means that it will run in BIOS simulation mode which is less stable and compatible than using a real Playstation BIOS.\n"
+ @"If you have a BIOS available, please copy it to\n~/Library/Application Support/Pcsx/Bios/", nil),
+ nil, nil, nil);
+ }
+
+ sleepInBackground = YES;
+}
+
+- (void)dealloc
+{
+ [pluginList release];
+
+ [super dealloc];
+}
+
++ (void)setConfigFromDefaults
+{
+ NSEnumerator *enumerator;
+ const char *str;
+ NSString *key;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+ /*
+ enumerator = [prefStringKeys keyEnumerator];
+ while ((key = [enumerator nextObject])) {
+ str = [[defaults stringForKey:key] fileSystemRepresentation];
+ char *dst = (char *)[[prefStringKeys objectForKey:key] pointerValue];
+ if (str != nil && dst != nil) strncpy(dst, str, 255);
+ }*/
+
+ enumerator = [prefLongKeys keyEnumerator];
+ while ((key = [enumerator nextObject])) {
+ long *dst = (long *)[[prefLongKeys objectForKey:key] pointerValue];
+ if (dst != nil) *dst = [defaults integerForKey:key];
+ }
+
+ // special cases
+ //str = [[defaults stringForKey:@"PluginPAD"] fileSystemRepresentation];
+ //if (str != nil) strncpy(Config.Pad2, str, 255);
+
+ str = [[defaults stringForKey:@"Bios"] fileSystemRepresentation];
+ if (str) {
+ NSString *path = [defaults stringForKey:@"Bios"];
+ int index = [biosList indexOfObject:path];
+
+ if (-1 == index) {
+ [biosList insertObject:path atIndex:0];
+ } else if (0 < index) {
+ [biosList exchangeObjectAtIndex:index withObjectAtIndex:0];
+ }
+ }
+
+ if ([defaults boolForKey:@"UseHLE"] || 0 == [biosList count]) {
+ strcpy(Config.Bios, "HLE");
+ } else {
+ str = [(NSString *)[biosList objectAtIndex:0] fileSystemRepresentation];
+ if (str != nil) strncpy(Config.Bios, str, 255);
+ else strcpy(Config.Bios, "HLE");
+ }
+
+ // FIXME: hack
+ strcpy(Config.Net, "Disabled");
+}
+
++ (void)setDefaultFromConfig:(NSString *)defaultKey
+{
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+ char *str = (char *)[[prefStringKeys objectForKey:defaultKey] pointerValue];
+ if (str) {
+ [defaults setObject:[NSString stringWithCString:str] forKey:defaultKey];
+ return;
+ }
+
+ long *val = (long *)[[prefLongKeys objectForKey:defaultKey] pointerValue];
+ if (val) {
+ [defaults setInteger:*val forKey:defaultKey];
+ return;
+ }
+}
+
++ (BOOL)biosAvailable
+{
+ return ([biosList count] > 0);
+}
+
+// called when class is initialized
++ (void)initialize
+{
+ NSString *path;
+ const char *str;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
+ @"Disabled", @"PluginNET",
+ [NSNumber numberWithInt:0], @"NoDynarec",
+ [NSNumber numberWithInt:1], @"AutoDetectVideoType",
+// @"HLE", @"Bios",
+ [NSNumber numberWithInt:0], @"UseHLE",
+ [NSNumber numberWithInt:1], @"CpuBiasShift",
+ nil];
+
+ [defaults registerDefaults:appDefaults];
+
+ prefStringKeys = [[NSDictionary alloc] initWithObjectsAndKeys:
+ [NSValue valueWithPointer:Config.Gpu], @"PluginGPU",
+ [NSValue valueWithPointer:Config.Spu], @"PluginSPU",
+ [NSValue valueWithPointer:Config.Pad1], @"PluginPAD",
+ [NSValue valueWithPointer:Config.Cdr], @"PluginCDR",
+ [NSValue valueWithPointer:Config.Net], @"PluginNET",
+// [NSValue valueWithPointer:Config.Bios], @"Bios",
+ nil];
+
+ prefLongKeys = [[NSDictionary alloc] initWithObjectsAndKeys:
+ [NSValue valueWithPointer:&Config.Xa], @"NoXaAudio",
+ [NSValue valueWithPointer:&Config.Sio], @"SioIrqAlways",
+ [NSValue valueWithPointer:&Config.Mdec], @"BlackAndWhiteMDECVideo",
+ [NSValue valueWithPointer:&Config.PsxAuto], @"AutoDetectVideoType",
+ [NSValue valueWithPointer:&Config.PsxType], @"VideoTypePAL",
+ [NSValue valueWithPointer:&Config.Cdda], @"NoCDAudio",
+ [NSValue valueWithPointer:&Config.Cpu], @"NoDynarec",
+ [NSValue valueWithPointer:&Config.PsxOut], @"ConsoleOutput",
+ [NSValue valueWithPointer:&Config.SpuIrq], @"SpuIrqAlways",
+ [NSValue valueWithPointer:&Config.RCntFix], @"RootCounterFix",
+ [NSValue valueWithPointer:&Config.VSyncWA], @"VideoSyncWAFix",
+ nil];
+
+ // setup application support paths
+ NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
+ if ([libPaths count] > 0) {
+ NSString *path;
+ BOOL dir;
+
+ // create them if needed
+ NSFileManager *dfm = [NSFileManager defaultManager];
+ NSString *supportPath = [NSString stringWithFormat:@"%@/Application Support", [libPaths objectAtIndex:0]];
+ if (![dfm fileExistsAtPath:supportPath isDirectory:&dir])
+ [dfm createDirectoryAtPath:supportPath attributes:nil];
+
+ path = [NSString stringWithFormat:@"%@/Pcsx", supportPath];
+ if (![dfm fileExistsAtPath:path isDirectory:&dir])
+ [dfm createDirectoryAtPath:path attributes:nil];
+
+ path = [NSString stringWithFormat:@"%@/Pcsx/Bios", supportPath];
+ if (![dfm fileExistsAtPath:path isDirectory:&dir])
+ [dfm createDirectoryAtPath:path attributes:nil];
+
+ path = [NSString stringWithFormat:@"%@/Pcsx/Memory Cards", supportPath];
+ if (![dfm fileExistsAtPath:path isDirectory:&dir])
+ [dfm createDirectoryAtPath:path attributes:nil];
+
+ saveStatePath = [[NSString stringWithFormat:@"%@/Pcsx/Save States", supportPath] retain];
+ if (![dfm fileExistsAtPath:saveStatePath isDirectory:&dir])
+ [dfm createDirectoryAtPath:saveStatePath attributes:nil];
+
+
+ path = [NSString stringWithFormat:@"%@/Pcsx/Memory Cards/Mcd001.mcr", supportPath];
+ str = [path fileSystemRepresentation];
+ if (str != nil) strncpy(Config.Mcd1, str, 255);
+
+ path = [NSString stringWithFormat:@"%@/Pcsx/Memory Cards/Mcd002.mcr", supportPath];
+ str = [path fileSystemRepresentation];
+ if (str != nil) strncpy(Config.Mcd2, str, 255);
+
+ path = [NSString stringWithFormat:@"%@/Pcsx/Bios/", supportPath];
+ str = [path fileSystemRepresentation];
+ if (str != nil) strncpy(Config.BiosDir, str, 255);
+ } else {
+ strcpy(Config.BiosDir, "Bios/");
+
+ saveStatePath = @"sstates";
+ [saveStatePath retain];
+ }
+
+ // set plugin path
+ path = [[[NSBundle mainBundle] builtInPlugInsPath] stringByAppendingString:@"/"];
+ str = [path fileSystemRepresentation];
+ if (str != nil) strncpy(Config.PluginsDir, str, 255);
+
+ // set font location
+// path = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/GONZN16X.TLF"];
+// str = [path fileSystemRepresentation];
+// if (str != nil) strncpy(Config.BiosFont, str, 255);
+
+ // locate a bios
+ biosList = [[NSMutableArray alloc] init];
+ NSFileManager *manager = [NSFileManager defaultManager];
+ NSArray *bioses = [manager directoryContentsAtPath:[NSString stringWithCString:Config.BiosDir]];
+ if (bioses) {
+ int i;
+ for (i=0; i<[bioses count]; i++) {
+ NSString *file = [bioses objectAtIndex:i];
+ NSDictionary *attrib = [manager fileAttributesAtPath:[NSString stringWithFormat:@"%s%@", Config.BiosDir, file] traverseLink:YES];
+
+ if ([[attrib fileType] isEqualToString:NSFileTypeRegular]) {
+ unsigned long long size = [attrib fileSize];
+ if (([attrib fileSize] % (256*1024)) == 0 && size > 0) {
+ [biosList addObject:file];
+ }
+ }
+ }
+ }
+
+ [PcsxController setConfigFromDefaults];
+}
+
+
+@end
diff --git a/macosx/PcsxPlugin.h b/macosx/PcsxPlugin.h
new file mode 100644
index 00000000..c8d47679
--- /dev/null
+++ b/macosx/PcsxPlugin.h
@@ -0,0 +1,41 @@
+//
+// PcsxPlugin.h
+// Pcsx
+//
+// Created by Gil Pedersen on Fri Oct 03 2003.
+// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+@interface PcsxPlugin : NSObject {
+ CFBundleRef pluginRef;
+
+ NSString *path;
+ NSDate *modDate;
+ NSString *name;
+ long version;
+ int type;
+ int active;
+}
+
++ (NSString *)getPrefixForType:(int)type;
++ (NSString *)getDefaultKeyForType:(int)type;
++ (char **)getConfigEntriesForType:(int)type;
+
+- (id)initWithPath:(NSString *)aPath;
+
+- (NSString *)getDisplayVersion;
+- (int)getType;
+- (NSString *)path;
+- (NSString *)description;
+- (BOOL)hasAboutAs:(int)type;
+- (BOOL)hasConfigureAs:(int)type;
+- (long)initAs:(int)aType;
+- (long)shutdownAs:(int)aType;
+- (void)aboutAs:(int)type;
+- (void)configureAs:(int)type;
+- (BOOL)verifyOK;
+
+@end
diff --git a/macosx/PcsxPlugin.m b/macosx/PcsxPlugin.m
new file mode 100644
index 00000000..9ee31112
--- /dev/null
+++ b/macosx/PcsxPlugin.m
@@ -0,0 +1,303 @@
+//
+// PcsxPlugin.m
+// Pcsx
+//
+// Created by Gil Pedersen on Fri Oct 03 2003.
+// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "PcsxPlugin.h"
+#include "psxcommon.h"
+#include "plugins.h"
+
+@implementation PcsxPlugin
+
++ (NSString *)getPrefixForType:(int)aType
+{
+ switch (aType) {
+ case PSE_LT_GPU: return @"GPU";
+ case PSE_LT_CDR: return @"CDR";
+ case PSE_LT_SPU: return @"SPU";
+ case PSE_LT_PAD: return @"PAD";
+ case PSE_LT_NET: return @"NET";
+ }
+
+ return @"";
+}
+
++ (NSString *)getDefaultKeyForType:(int)aType
+{
+ //return @"Plugin" [PcsxPlugin getPrefixForType:aType];
+ switch (aType) {
+ case PSE_LT_GPU: return @"PluginGPU";
+ case PSE_LT_CDR: return @"PluginCDR";
+ case PSE_LT_SPU: return @"PluginSPU";
+ case PSE_LT_PAD: return @"PluginPAD";
+ case PSE_LT_NET: return @"PluginNET";
+ }
+
+ return @"";
+}
+
++ (char **)getConfigEntriesForType:(int)aType
+{
+ static char *gpu[2] = {(char *)&Config.Gpu, NULL};
+ static char *cdr[2] = {(char *)&Config.Cdr, NULL};
+ static char *spu[2] = {(char *)&Config.Spu, NULL};
+ static char *pad[3] = {(char *)&Config.Pad1, (char *)&Config.Pad2, NULL};
+ static char *net[2] = {(char *)&Config.Net, NULL};
+
+ switch (aType) {
+ case PSE_LT_GPU: return (char **)gpu;
+ case PSE_LT_CDR: return (char **)cdr;
+ case PSE_LT_SPU: return (char **)spu;
+ case PSE_LT_PAD: return (char **)pad;
+ case PSE_LT_NET: return (char **)net;
+ }
+
+ return nil;
+}
+
+- (id)initWithPath:(NSString *)aPath
+{
+ if (!(self = [super init])) {
+ return nil;
+ }
+
+ PSEgetLibType PSE_getLibType = NULL;
+ PSEgetLibVersion PSE_getLibVersion = NULL;
+ PSEgetLibName PSE_getLibName = NULL;
+
+ pluginRef = nil;
+ name = nil;
+ path = [aPath retain];
+ NSString *fullPath = [[NSString stringWithCString:Config.PluginsDir] stringByAppendingPathComponent:path];
+
+ pluginRef = SysLoadLibrary([fullPath fileSystemRepresentation]);
+ if (pluginRef == nil) {
+ [self release];
+ return nil;
+ }
+
+ // TODO: add support for plugins with multiple functionalities???
+ PSE_getLibType = (PSEgetLibType) SysLoadSym(pluginRef, "PSEgetLibType");
+ if (SysLibError() != nil) {
+ if (([path rangeOfString: @"gpu" options:NSCaseInsensitiveSearch]).length != 0)
+ type = PSE_LT_GPU;
+ else if (([path rangeOfString: @"cdr" options:NSCaseInsensitiveSearch]).length != 0)
+ type = PSE_LT_CDR;
+ else if (([path rangeOfString: @"spu" options:NSCaseInsensitiveSearch]).length != 0)
+ type = PSE_LT_SPU;
+ else if (([path rangeOfString: @"pad" options:NSCaseInsensitiveSearch]).length != 0)
+ type = PSE_LT_PAD;
+ else {
+ [self release];
+ return nil;
+ }
+ } else {
+ type = (int)PSE_getLibType();
+ if (type != PSE_LT_GPU && type != PSE_LT_CDR && type != PSE_LT_SPU && type != PSE_LT_PAD) {
+ [self release];
+ return nil;
+ }
+ }
+
+ PSE_getLibName = (PSEgetLibName) SysLoadSym(pluginRef, "PSEgetLibName");
+ if (SysLibError() == nil) {
+ name = [[NSString alloc] initWithCString:PSE_getLibName()];
+ }
+
+ PSE_getLibVersion = (PSEgetLibVersion) SysLoadSym(pluginRef, "PSEgetLibVersion");
+ if (SysLibError() == nil) {
+ version = PSE_getLibVersion();
+ }
+ else {
+ version = -1;
+ }
+
+ // save the current modification date
+ NSDictionary *fattrs = [[NSFileManager defaultManager] fileAttributesAtPath:fullPath traverseLink:YES];
+ modDate = [[fattrs fileModificationDate] retain];
+
+ active = 0;
+
+ return self;
+}
+
+- (void)dealloc
+{
+ int i;
+
+ // shutdown if we had previously been inited
+ for (i=0; i<32; i++) {
+ if (active & (1 << i)) {
+ [self shutdownAs:(1 << i)];
+ }
+ }
+
+ if (pluginRef) SysCloseLibrary(pluginRef);
+
+ [path release];
+ [name release];
+
+ [super dealloc];
+}
+
+- (void)runCommand:(id)arg
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ NSString *funcName = [arg objectAtIndex:0];
+ long (*func)(void);
+
+ func = SysLoadSym(pluginRef, [funcName lossyCString]);
+ if (SysLibError() == nil) {
+ func();
+ } else {
+ NSBeep();
+ }
+
+ [arg release];
+ [pool release];
+ return;
+}
+
+- (long)initAs:(int)aType
+{
+ char symbol[255];
+ long (*init)(void);
+ long (*initArg)(long arg);
+ int res = PSE_ERR_FATAL;
+
+ if ((active & aType) == aType) {
+ return 0;
+ }
+
+ sprintf(symbol, "%sinit", [[PcsxPlugin getPrefixForType:aType] lossyCString]);
+ init = initArg = SysLoadSym(pluginRef, symbol);
+ if (SysLibError() == nil) {
+ if (aType != PSE_LT_PAD)
+ res = init();
+ else
+ res = initArg(1|2);
+ }
+
+ if (0 == res) {
+ active |= aType;
+ } else {
+ NSRunCriticalAlertPanel(NSLocalizedString(@"Plugin Initialization Failed!", nil),
+ [NSString stringWithFormat:NSLocalizedString(@"Pcsx failed to initialize the selected %s plugin (error=%i).\nThe plugin might not work with your system.", nil), [PcsxPlugin getPrefixForType:aType], res],
+ nil, nil, nil);
+ }
+
+ return res;
+}
+
+- (long)shutdownAs:(int)aType
+{
+ char symbol[255];
+ long (*shutdown)(void);
+
+ sprintf(symbol, "%sshutdown", [[PcsxPlugin getPrefixForType:aType] lossyCString]);
+ shutdown = SysLoadSym(pluginRef, symbol);
+ if (SysLibError() == nil) {
+ active &= ~aType;
+ return shutdown();
+ }
+
+ return PSE_ERR_FATAL;
+}
+
+- (BOOL)hasAboutAs:(int)aType
+{
+ char symbol[255];
+
+ sprintf(symbol, "%sabout", [[PcsxPlugin getPrefixForType:aType] lossyCString]);
+ SysLoadSym(pluginRef, symbol);
+
+ return (SysLibError() == nil);
+}
+
+- (BOOL)hasConfigureAs:(int)aType
+{
+ char symbol[255];
+
+ sprintf(symbol, "%sconfigure", [[PcsxPlugin getPrefixForType:aType] lossyCString]);
+ SysLoadSym(pluginRef, symbol);
+
+ return (SysLibError() == nil);
+}
+
+- (void)aboutAs:(int)aType
+{
+ NSArray *arg;
+ char symbol[255];
+
+ sprintf(symbol, "%sabout", [[PcsxPlugin getPrefixForType:aType] lossyCString]);
+ arg = [[NSArray alloc] initWithObjects:[NSString stringWithCString:symbol],
+ [NSNumber numberWithInt:0], nil];
+
+ // detach a new thread
+ [NSThread detachNewThreadSelector:@selector(runCommand:) toTarget:self
+ withObject:arg];
+}
+
+- (void)configureAs:(int)aType
+{
+ NSArray *arg;
+ char symbol[255];
+
+ sprintf(symbol, "%sconfigure", [[PcsxPlugin getPrefixForType:aType] lossyCString]);
+ arg = [[NSArray alloc] initWithObjects:[NSString stringWithCString:symbol],
+ [NSNumber numberWithInt:1], nil];
+
+ // detach a new thread
+ [NSThread detachNewThreadSelector:@selector(runCommand:) toTarget:self
+ withObject:arg];
+}
+
+- (NSString *)getDisplayVersion
+{
+ if (version == -1)
+ return @"";
+
+ return [NSString stringWithFormat:@"v%ld.%ld.%ld", version>>16,(version>>8)&0xff,version&0xff];
+}
+
+- (int)getType
+{
+ return type;
+}
+
+- (NSString *)path
+{
+ return path;
+}
+
+- (unsigned)hash
+{
+ return [path hash];
+}
+
+- (NSString *)description
+{
+ if (name == nil)
+ return [path lastPathComponent];
+
+ return [NSString stringWithFormat:@"%@ %@ [%@]", name, [self getDisplayVersion], [path lastPathComponent]];
+}
+
+// the plugin will check if it's still valid and return the status
+- (BOOL)verifyOK
+{
+ // check that the file is still there with the same modification date
+ NSFileManager *dfm = [NSFileManager defaultManager];
+ NSString *fullPath = [[NSString stringWithCString:Config.PluginsDir] stringByAppendingPathComponent:path];
+ if (![dfm fileExistsAtPath:fullPath])
+ return NO;
+
+ NSDictionary *fattrs = [dfm fileAttributesAtPath:fullPath traverseLink:YES];
+ return [[fattrs fileModificationDate] isEqualToDate:modDate];
+}
+
+@end
diff --git a/macosx/PcsxPluginDocument.h b/macosx/PcsxPluginDocument.h
new file mode 100644
index 00000000..bf4f8028
--- /dev/null
+++ b/macosx/PcsxPluginDocument.h
@@ -0,0 +1,20 @@
+//
+// PcsxPluginDocument.h
+// Pcsx
+//
+// Created by Gil Pedersen on Thu Jul 01 2004.
+// Copyright (c) 2004 __MyCompanyName__. All rights reserved.
+//
+
+#import <AppKit/AppKit.h>
+
+
+@interface PcsxPluginDocument : NSDocument {
+ IBOutlet NSWindow *addPluginSheet;
+ IBOutlet NSTextField *pluginName;
+
+ BOOL moveOK;
+}
+- (IBAction)closeAddPluginSheet:(id)sender;
+
+@end
diff --git a/macosx/PcsxPluginDocument.m b/macosx/PcsxPluginDocument.m
new file mode 100644
index 00000000..6cbe0fae
--- /dev/null
+++ b/macosx/PcsxPluginDocument.m
@@ -0,0 +1,95 @@
+//
+// PcsxPluginDocument.m
+// Pcsx
+//
+// Created by Gil Pedersen on Thu Jul 01 2004.
+// Copyright (c) 2004 __MyCompanyName__. All rights reserved.
+//
+
+#import "PcsxPluginDocument.h"
+
+
+@implementation PcsxPluginDocument
+
+- (BOOL)showAddPluginSheet:(NSWindow *)window forName:(NSString *)name
+// User has asked to see the custom display. Display it.
+{
+ if (!addPluginSheet)
+ [NSBundle loadNibNamed:@"AddPluginSheet" owner:self];
+
+ [pluginName setObjectValue:name];
+
+ [NSApp beginSheet:addPluginSheet
+ modalForWindow:window
+ modalDelegate:nil
+ didEndSelector:nil
+ contextInfo:nil];
+ [NSApp runModalForWindow:addPluginSheet];
+ // Sheet is up here.
+ [NSApp endSheet:addPluginSheet];
+ [addPluginSheet orderOut:self];
+
+ return moveOK;
+}
+
+- (IBAction)closeAddPluginSheet:(id)sender
+{
+ if ([[sender keyEquivalent] isEqualToString:@"\r"]) {
+ moveOK = YES;
+ } else {
+ moveOK = NO;
+ }
+ [NSApp stopModal];
+}
+
+- (BOOL)loadDataRepresentation:(NSData *)docData ofType:(NSString *)docType
+{
+ //NSLog(@"loadDataRepresentation");
+ return NO;
+}
+
+- (BOOL)loadFileWrapperRepresentation:(NSFileWrapper *)wrapper ofType:(NSString *)docType
+{
+ if ([self showAddPluginSheet:nil forName:[wrapper filename]]) {
+ NSString *dst = [NSString stringWithFormat:@"%@/%@",
+ [[NSBundle mainBundle] builtInPlugInsPath],
+ [wrapper filename]];
+
+ if ([wrapper writeToFile:dst atomically:NO updateFilenames:NO]) {
+ [[NSWorkspace sharedWorkspace] noteFileSystemChanged:[[NSBundle mainBundle] builtInPlugInsPath]];
+ NSRunInformationalAlertPanel(NSLocalizedString(@"Installation Succesfull", nil),
+ NSLocalizedString(@"The installation of the specified plugin was succesfull. In order to use it, please restart the application.", nil),
+ nil, nil, nil);
+ } else {
+ NSRunAlertPanel(NSLocalizedString(@"Installation Failed!", nil),
+ NSLocalizedString(@"The installation of the specified plugin failed. Please try again, or make a manual install.", nil),
+ nil, nil, nil);
+ }
+ }
+
+ // Tell the NSDocument that we can't handle the file, since we are already done with it
+ return NO;
+}
+
+- (id)openDocumentWithContentsOfFile:(NSString *)fileName display:(BOOL)flag
+{
+
+ return nil;
+}
+
+- (NSString *)windowNibName {
+ // Implement this to return a nib to load OR implement -makeWindowControllers to manually create your controllers.
+ return @"PcsxPluginDocument";
+}
+
+- (NSData *)dataRepresentationOfType:(NSString *)type {
+ // Implement to provide a persistent data representation of your document OR remove this and implement the file-wrapper or file path based save methods.
+ return nil;
+}
+/*
+- (BOOL)loadDataRepresentation:(NSData *)data ofType:(NSString *)type {
+ // Implement to load a persistent data representation of your document OR remove this and implement the file-wrapper or file path based load methods.
+ return YES;
+}*/
+
+@end
diff --git a/macosx/Plugin.c b/macosx/Plugin.c
new file mode 100644
index 00000000..3d7f0f73
--- /dev/null
+++ b/macosx/Plugin.c
@@ -0,0 +1,287 @@
+/* Pcsx - Pc Psx Emulator
+ * Copyright (C) 1999-2002 Pcsx Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#import <CoreFoundation/CoreFoundation.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <signal.h>
+
+#include "psxcommon.h"
+#include "plugins.h"
+#include "spu.h"
+
+void OnFile_Exit();
+
+unsigned long gpuDisp;
+
+long SPU__open(void) {
+ return SPU_open();
+}
+
+int StatesC = 0;
+extern int UseGui;
+int ShowPic=0;
+
+void gpuShowPic() {
+}
+
+void PADhandleKey(int key) {
+/* char Text[255];
+ int ret;
+
+ switch (key) {
+ case 0: break;
+ case XK_F1:
+ sprintf(Text, "sstates/%10.10s.%3.3d", CdromLabel, StatesC);
+ GPU_freeze(2, (GPUFreeze_t *)&StatesC);
+ ret = SaveState(Text);
+ if (ret == 0)
+ sprintf(Text, _("*PCSX*: Saved State %d"), StatesC+1);
+ else sprintf(Text, _("*PCSX*: Error Saving State %d"), StatesC+1);
+ GPU_displayText(Text);
+ if (ShowPic) { ShowPic = 0; gpuShowPic(); }
+ break;
+ case XK_F2:
+ if (StatesC < 4) StatesC++;
+ else StatesC = 0;
+ GPU_freeze(2, (GPUFreeze_t *)&StatesC);
+ if (ShowPic) { ShowPic = 0; gpuShowPic(); }
+ break;
+ case XK_F3:
+ sprintf (Text, "sstates/%10.10s.%3.3d", CdromLabel, StatesC);
+ ret = LoadState(Text);
+ if (ret == 0)
+ sprintf(Text, _("*PCSX*: Loaded State %d"), StatesC+1);
+ else sprintf(Text, _("*PCSX*: Error Loading State %d"), StatesC+1);
+ GPU_displayText(Text);
+ break;
+ case XK_F4:
+ gpuShowPic();
+ break;
+ case XK_F5:
+ Config.Sio ^= 0x1;
+ if (Config.Sio)
+ sprintf(Text, _("*PCSX*: Sio Irq Always Enabled"));
+ else sprintf(Text, _("*PCSX*: Sio Irq Not Always Enabled"));
+ GPU_displayText(Text);
+ break;
+ case XK_F6:
+ Config.Mdec ^= 0x1;
+ if (Config.Mdec)
+ sprintf(Text, _("*PCSX*: Black&White Mdecs Only Enabled"));
+ else sprintf(Text, _("*PCSX*: Black&White Mdecs Only Disabled"));
+ GPU_displayText(Text);
+ break;
+ case XK_F7:
+ Config.Xa ^= 0x1;
+ if (Config.Xa == 0)
+ sprintf (Text, _("*PCSX*: Xa Enabled"));
+ else sprintf (Text, _("*PCSX*: Xa Disabled"));
+ GPU_displayText(Text);
+ break;
+ case XK_F8:
+ GPU_makeSnapshot();
+ break;
+ case XK_F9:
+ cdOpenCase = 1;
+ break;
+ case XK_F10:
+ cdOpenCase = 0;
+ break;
+ case XK_Escape:
+ ClosePlugins();
+ UpdateMenuSlots();
+ if (!UseGui) OnFile_Exit();
+ RunGui();
+ break;
+ default:
+ GPU_keypressed(key);
+ if (Config.UseNet) NET_keypressed(key);
+ }*/
+}
+
+long PAD1__open(void) {
+ return PAD1_open(&gpuDisp);
+}
+
+long PAD2__open(void) {
+ return PAD2_open(&gpuDisp);
+}
+
+void OnFile_Exit();
+
+void SignalExit(int sig) {
+ ClosePlugins();
+ OnFile_Exit();
+}
+
+void SPUirq(void);
+
+int NetOpened = 0;
+
+#define PARSEPATH(dst, src) \
+ ptr = src + strlen(src); \
+ while (*ptr != '\\' && ptr != src) ptr--; \
+ if (ptr != src) { \
+ strcpy(dst, ptr+1); \
+ }
+
+int _OpenPlugins() {
+ static char path[1024];
+ CFURLRef pathUrl;
+ int ret;
+
+ //signal(SIGINT, SignalExit);
+ //signal(SIGPIPE, SignalExit);
+
+ GPU_clearDynarec(clearDynarec);
+
+ pathUrl = CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("gpuPeopsSoftX.cfg"), NULL, NULL);
+ if (pathUrl)
+ CFURLGetFileSystemRepresentation(pathUrl, true, path, 1024);
+
+ ret = CDR_open();
+ if (ret < 0) { SysMessage(_("Error Opening CDR Plugin")); return -1; }
+ ret = SPU_open();
+ if (ret < 0) { SysMessage(_("Error Opening SPU Plugin")); return -1; }
+ SPU_registerCallback(SPUirq);
+ ret = GPU_open(&gpuDisp, "PCSX", /*pathUrl ? path :*/ NULL);
+ if (ret < 0) { SysMessage(_("Error Opening GPU Plugin")); return -1; }
+ ret = PAD1_open(&gpuDisp);
+ if (ret < 0) { SysMessage(_("Error Opening PAD1 Plugin")); return -1; }
+ ret = PAD2_open(&gpuDisp);
+ if (ret < 0) { SysMessage(_("Error Opening PAD2 Plugin")); return -1; }
+
+/* if (Config.UseNet && NetOpened == 0) {
+ netInfo info;
+ char path[256];
+
+ strcpy(info.EmuName, "PCSX v" PCSX_VERSION);
+ strncpy(info.CdromID, CdromId, 9);
+ strncpy(info.CdromLabel, CdromLabel, 9);
+ info.psxMem = psxM;
+ info.GPU_showScreenPic = GPU_showScreenPic;
+ info.GPU_displayText = GPU_displayText;
+ info.GPU_showScreenPic = GPU_showScreenPic;
+ info.PAD_setSensitive = PAD1_setSensitive;
+ sprintf(path, "%s%s", Config.BiosDir, Config.Bios);
+ strcpy(info.BIOSpath, path);
+ strcpy(info.MCD1path, Config.Mcd1);
+ strcpy(info.MCD2path, Config.Mcd2);
+ sprintf(path, "%s%s", Config.PluginsDir, Config.Gpu);
+ strcpy(info.GPUpath, path);
+ sprintf(path, "%s%s", Config.PluginsDir, Config.Spu);
+ strcpy(info.SPUpath, path);
+ sprintf(path, "%s%s", Config.PluginsDir, Config.Cdr);
+ strcpy(info.CDRpath, path);
+ NET_setInfo(&info);
+
+ ret = NET_open(&gpuDisp);
+ if (ret < 0) {
+ if (ret == -2) {
+ // -2 is returned when something in the info
+ // changed and needs to be synced
+ char *ptr;
+
+ PARSEPATH(Config.Bios, info.BIOSpath);
+ PARSEPATH(Config.Gpu, info.GPUpath);
+ PARSEPATH(Config.Spu, info.SPUpath);
+ PARSEPATH(Config.Cdr, info.CDRpath);
+
+ strcpy(Config.Mcd1, info.MCD1path);
+ strcpy(Config.Mcd2, info.MCD2path);
+ return -2;
+ } else {
+ Config.UseNet = 0;
+ }
+ } else {
+ if (NET_queryPlayer() == 1) {
+ if (SendPcsxInfo() == -1) Config.UseNet = 0;
+ } else {
+ if (RecvPcsxInfo() == -1) Config.UseNet = 0;
+ }
+ }
+ NetOpened = 1;
+ } else if (Config.UseNet) {
+ NET_resume();
+ }
+*/
+ return 0;
+}
+
+int OpenPlugins() {
+ int ret;
+
+ while ((ret = _OpenPlugins()) == -2) {
+ ReleasePlugins();
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+ if (LoadPlugins() == -1) return -1;
+ }
+ return ret;
+}
+
+void ClosePlugins() {
+ int ret;
+
+ //signal(SIGINT, SIG_DFL);
+ //signal(SIGPIPE, SIG_DFL);
+ ret = CDR_close();
+ if (ret < 0) { SysMessage(_("Error Closing CDR Plugin")); return; }
+ ret = SPU_close();
+ if (ret < 0) { SysMessage(_("Error Closing SPU Plugin")); return; }
+ ret = PAD1_close();
+ if (ret < 0) { SysMessage(_("Error Closing PAD1 Plugin")); return; }
+ ret = PAD2_close();
+ if (ret < 0) { SysMessage(_("Error Closing PAD2 Plugin")); return; }
+ ret = GPU_close();
+ if (ret < 0) { SysMessage(_("Error Closing GPU Plugin")); return; }
+
+ /*if (Config.UseNet) {
+ NET_pause();
+ }*/
+}
+
+void ResetPlugins() {
+ int ret;
+
+ CDR_shutdown();
+ GPU_shutdown();
+ SPU_shutdown();
+ PAD1_shutdown();
+ PAD2_shutdown();
+ //if (Config.UseNet) NET_shutdown();
+
+ ret = CDR_init();
+ if (ret < 0) { SysMessage(_("CDRinit error: %d"), ret); return; }
+ ret = GPU_init();
+ if (ret < 0) { SysMessage(_("GPUinit error: %d"), ret); return; }
+ ret = SPU_init();
+ if (ret < 0) { SysMessage(_("SPUinit error: %d"), ret); return; }
+ ret = PAD1_init(1);
+ if (ret < 0) { SysMessage(_("PAD1init error: %d"), ret); return; }
+ ret = PAD2_init(2);
+ if (ret < 0) { SysMessage(_("PAD2init error: %d"), ret); return; }
+ /*if (Config.UseNet) {
+ ret = NET_init();
+ if (ret < 0) { SysMessage(_("NETinit error: %d"), ret); return; }
+ }*/
+
+ NetOpened = 0;
+}
+
diff --git a/macosx/PluginController.h b/macosx/PluginController.h
new file mode 100644
index 00000000..e04f1525
--- /dev/null
+++ b/macosx/PluginController.h
@@ -0,0 +1,22 @@
+/* PluginController */
+
+#import <Cocoa/Cocoa.h>
+#import "PluginList.h"
+
+@interface PluginController : NSObject
+{
+ IBOutlet NSButton *aboutButton;
+ IBOutlet NSButton *configureButton;
+ IBOutlet NSPopUpButton *pluginMenu;
+
+ int pluginType;
+ NSArray *plugins;
+ NSString *defaultKey;
+}
+- (IBAction)doAbout:(id)sender;
+- (IBAction)doConfigure:(id)sender;
+- (IBAction)selectPlugin:(id)sender;
+
+- (void)setPluginsTo:(NSArray *)list withType:(int)type;
+
+@end
diff --git a/macosx/PluginController.m b/macosx/PluginController.m
new file mode 100644
index 00000000..958cad3a
--- /dev/null
+++ b/macosx/PluginController.m
@@ -0,0 +1,80 @@
+#import "PluginController.h"
+#import "PcsxPlugin.h"
+
+@implementation PluginController
+
+- (IBAction)doAbout:(id)sender
+{
+ PcsxPlugin *plugin = [plugins objectAtIndex:[pluginMenu indexOfSelectedItem]];
+ [plugin aboutAs:pluginType];
+}
+
+- (IBAction)doConfigure:(id)sender
+{
+ PcsxPlugin *plugin = [plugins objectAtIndex:[pluginMenu indexOfSelectedItem]];
+
+ [plugin configureAs:pluginType];
+}
+
+- (IBAction)selectPlugin:(id)sender
+{
+ if (sender==pluginMenu) {
+ int index = [pluginMenu indexOfSelectedItem];
+ if (index != -1) {
+ PcsxPlugin *plugin = [plugins objectAtIndex:index];
+
+ if (![[PluginList list] setActivePlugin:plugin forType:pluginType]) {
+ /* plugin won't initialize */
+ }
+
+ // write selection to defaults
+ [[NSUserDefaults standardUserDefaults] setObject:[plugin path] forKey:defaultKey];
+
+ // set button states
+ [aboutButton setEnabled:[plugin hasAboutAs:pluginType]];
+ [configureButton setEnabled:[plugin hasConfigureAs:pluginType]];
+ } else {
+ // set button states
+ [aboutButton setEnabled:NO];
+ [configureButton setEnabled:NO];
+ }
+ }
+}
+
+// must be called before anything else
+- (void)setPluginsTo:(NSArray *)list withType:(int)type
+{
+ NSString *sel;
+ int i;
+
+ // remember the list
+ pluginType = type;
+ plugins = [list retain];
+ defaultKey = [[PcsxPlugin getDefaultKeyForType:pluginType] retain];
+
+ // clear the previous menu items
+ [pluginMenu removeAllItems];
+
+ // load the currently selected plugin
+ sel = [[NSUserDefaults standardUserDefaults] stringForKey:defaultKey];
+
+ // add the menu entries
+ for (i=0; i<[plugins count]; i++) {
+ [pluginMenu addItemWithTitle:[[plugins objectAtIndex:i] description]];
+
+ // make sure the currently selected is set as such
+ if ([sel isEqualToString:[[plugins objectAtIndex:i] path]]) {
+ [pluginMenu selectItemAtIndex:i];
+ }
+ }
+
+ [self selectPlugin:pluginMenu];
+}
+
+- (void)dealloc
+{
+ if (plugins) [plugins release];
+ if (defaultKey) [defaultKey release];
+}
+
+@end
diff --git a/macosx/PluginList.h b/macosx/PluginList.h
new file mode 100644
index 00000000..fecc4b13
--- /dev/null
+++ b/macosx/PluginList.h
@@ -0,0 +1,36 @@
+//
+// PluginList.h
+// Pcsx
+//
+// Created by Gil Pedersen on Sun Sep 21 2003.
+// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "PcsxPlugin.h"
+
+//extern NSMutableArray *plugins;
+
+@interface PluginList : NSObject {
+
+ @private
+ NSMutableArray *pluginList;
+
+ PcsxPlugin *activeGpuPlugin;
+ PcsxPlugin *activeSpuPlugin;
+ PcsxPlugin *activeCdrPlugin;
+ PcsxPlugin *activePadPlugin;
+
+ BOOL missingPlugins;
+}
+
++ (PluginList *)list;
+
+- (void)refreshPlugins;
+- (NSArray *)pluginsForType:(int)typeMask;
+- (BOOL)hasPluginAtPath:(NSString *)path;
+- (BOOL)configured;
+- (PcsxPlugin *)activePluginForType:(int)type;
+- (BOOL)setActivePlugin:(PcsxPlugin *)plugin forType:(int)type;
+
+@end
diff --git a/macosx/PluginList.m b/macosx/PluginList.m
new file mode 100644
index 00000000..62c877c1
--- /dev/null
+++ b/macosx/PluginList.m
@@ -0,0 +1,324 @@
+//
+// PluginList.m
+// Pcsx
+//
+// Created by Gil Pedersen on Sun Sep 21 2003.
+// Copyright (c) 2003 __MyCompanyName__. All rights reserved.
+//
+
+#import "EmuThread.h"
+#import "PluginList.h"
+#import "PcsxPlugin.h"
+#include "psxcommon.h"
+#include "plugins.h"
+
+//NSMutableArray *plugins;
+static PluginList *sPluginList = nil;
+const static int typeList[4] = {PSE_LT_GPU, PSE_LT_SPU, PSE_LT_CDR, PSE_LT_PAD};
+
+@implementation PluginList
+
++ (PluginList *)list
+{
+ return sPluginList;
+}
+
+#if 0
++ (void)loadPlugins
+{
+ NSDirectoryEnumerator *dirEnum;
+ NSString *pname, *dir;
+
+ // Make sure we only load the plugins once
+ if (plugins != nil)
+ return;
+
+ plugins = [[NSMutableArray alloc] initWithCapacity: 20];
+
+ dir = [NSString stringWithCString:Config.PluginsDir];
+ dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:dir];
+
+ while (pname = [dirEnum nextObject]) {
+ if ([[pname pathExtension] isEqualToString:@"psxplugin"] ||
+ [[pname pathExtension] isEqualToString:@"so"]) {
+ [dirEnum skipDescendents]; /* don't enumerate this
+ directory */
+
+ PcsxPlugin *plugin = [[PcsxPlugin alloc] initWithPath:pname];
+ if (plugin != nil) {
+ [plugins addObject:plugin];
+ }
+ }
+ }
+}
+
+- (id)initWithType:(int)typeMask
+{
+ unsigned int i;
+
+ self = [super init];
+
+ [PluginList loadPlugins];
+ list = [[NSMutableArray alloc] initWithCapacity: 5];
+
+ type = typeMask;
+ for (i=0; i<[plugins count]; i++) {
+ PcsxPlugin *plugin = [plugins objectAtIndex:i];
+ if ([plugin getType] == type) {
+ [list addObject:plugin];
+ }
+ }
+
+ return self;
+}
+
+- (int)numberOfItems
+{
+ return [list count];
+}
+
+- (id)objectAtIndex:(unsigned)index
+{
+ return [list objectAtIndex:index];
+}
+#endif
+
+
+
+- (id)init
+{
+ int i;
+
+ if (!(self = [super init]))
+ return nil;
+
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ pluginList = [[NSMutableArray alloc] initWithCapacity:20];
+
+ activeGpuPlugin = activeSpuPlugin = activeCdrPlugin = activePadPlugin = nil;
+
+ missingPlugins = NO;
+ for (i=0; i<sizeof(*typeList); i++) {
+ NSString *path = [defaults stringForKey:[PcsxPlugin getDefaultKeyForType:typeList[i]]];
+ if (nil == path) {
+ missingPlugins = YES;
+ continue;
+ }
+ if ([path isEqualToString:@"Disabled"])
+ continue;
+
+ if (![self hasPluginAtPath:path]) {
+ PcsxPlugin *plugin = [[PcsxPlugin alloc] initWithPath:path];
+ if (plugin) {
+ [pluginList addObject:plugin];
+ if (![self setActivePlugin:plugin forType:typeList[i]])
+ missingPlugins = YES;
+ } else {
+ missingPlugins = YES;
+ }
+ }
+ }
+
+ if (missingPlugins) {
+ [self refreshPlugins];
+ }
+
+ sPluginList = self;
+
+ return self;
+}
+
+- (void)dealloc
+{
+ [activeGpuPlugin release];
+ [activeSpuPlugin release];
+ [activeCdrPlugin release];
+ [activePadPlugin release];
+
+ [pluginList release];
+
+ if (sPluginList == self)
+ sPluginList = nil;
+
+ [super dealloc];
+}
+
+- (void)refreshPlugins
+{
+ NSDirectoryEnumerator *dirEnum;
+ NSString *pname, *dir;
+ int i;
+
+ // verify that the ones that are in list still works
+ for (i=0; i<[pluginList count]; i++) {
+ if (![[pluginList objectAtIndex:i] verifyOK]) {
+ [pluginList removeObjectAtIndex:i]; i--;
+ }
+ }
+
+ // look for new ones in the plugin directory
+ dir = [NSString stringWithCString:Config.PluginsDir];
+ dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:dir];
+
+ while (pname = [dirEnum nextObject]) {
+ if ([[pname pathExtension] isEqualToString:@"psxplugin"] ||
+ [[pname pathExtension] isEqualToString:@"so"]) {
+ [dirEnum skipDescendents]; /* don't enumerate this
+ directory */
+
+ if (![self hasPluginAtPath:pname]) {
+ PcsxPlugin *plugin = [[PcsxPlugin alloc] initWithPath:pname];
+ if (plugin != nil) {
+ [pluginList addObject:plugin];
+ }
+ }
+ }
+ }
+
+ // check the we have the needed plugins
+ missingPlugins = NO;
+ for (i=0; i<sizeof(*typeList); i++) {
+ PcsxPlugin *plugin = [self activePluginForType:typeList[i]];
+ if (nil == plugin) {
+ NSArray *list = [self pluginsForType:typeList[i]];
+ int j;
+
+ for (j=0; j<[list count]; j++) {
+ if ([self setActivePlugin:[list objectAtIndex:j] forType:typeList[i]])
+ break;
+ }
+ if (j == [list count])
+ missingPlugins = YES;
+ }
+ }
+}
+
+- (NSArray *)pluginsForType:(int)typeMask
+{
+ NSMutableArray *types = [NSMutableArray array];
+ int i;
+
+ for (i=0; i<[pluginList count]; i++) {
+ PcsxPlugin *plugin = [pluginList objectAtIndex:i];
+
+ if ([plugin getType] & typeMask) {
+ [types addObject:plugin];
+ }
+ }
+
+ return types;
+}
+
+- (BOOL)hasPluginAtPath:(NSString *)path
+{
+ if (nil == path)
+ return NO;
+
+ int i;
+ for (i=0; i<[pluginList count]; i++) {
+ if ([[[pluginList objectAtIndex:i] path] isEqualToString:path])
+ return YES;
+ }
+
+ return NO;
+}
+
+// returns if all the required plugins are available
+- (BOOL)configured
+{
+ return !missingPlugins;
+}
+
+- (BOOL)doInitPlugins
+{
+ BOOL bad = NO;
+
+ if ([activeGpuPlugin initAs:PSE_LT_GPU] != 0) bad = YES;
+ if ([activeSpuPlugin initAs:PSE_LT_SPU] != 0) bad = YES;
+ if ([activeCdrPlugin initAs:PSE_LT_CDR] != 0) bad = YES;
+ if ([activePadPlugin initAs:PSE_LT_PAD] != 0) bad = YES;
+
+ return !bad;
+}
+
+- (PcsxPlugin *)activePluginForType:(int)type
+{
+ switch (type) {
+ case PSE_LT_GPU: return activeGpuPlugin;
+ case PSE_LT_CDR: return activeCdrPlugin;
+ case PSE_LT_SPU: return activeSpuPlugin;
+ case PSE_LT_PAD: return activePadPlugin;
+// case PSE_LT_NET: return activeNetPlugin;
+ }
+
+ return nil;
+}
+
+- (BOOL)setActivePlugin:(PcsxPlugin *)plugin forType:(int)type
+{
+ PcsxPlugin **pluginPtr;
+ switch (type) {
+ case PSE_LT_GPU: pluginPtr = &activeGpuPlugin; break;
+ case PSE_LT_CDR: pluginPtr = &activeCdrPlugin; break;
+ case PSE_LT_SPU: pluginPtr = &activeSpuPlugin; break;
+ case PSE_LT_PAD: pluginPtr = &activePadPlugin; break;
+// case PSE_LT_NET: pluginPtr = &activeNetPlugin; break;
+ default: return NO;
+ }
+
+ if (plugin == *pluginPtr)
+ return YES;
+
+ BOOL active = (*pluginPtr) && [EmuThread active];
+ BOOL wasPaused = NO;
+ if (active) {
+ // TODO: temporary freeze?
+ wasPaused = [EmuThread pauseSafe];
+ ClosePlugins();
+ ReleasePlugins();
+ }
+
+ // stop the old plugin and start the new one
+ if (*pluginPtr) {
+ [*pluginPtr shutdownAs:type];
+
+ [*pluginPtr release];
+ }
+ *pluginPtr = [plugin retain];
+ if (*pluginPtr) {
+ if ([*pluginPtr initAs:type] != 0) {
+ [*pluginPtr release];
+ *pluginPtr = nil;
+ }
+ }
+
+ // write path to the correct config entry
+ const char *str;
+ if (*pluginPtr != nil) {
+ str = [[plugin path] fileSystemRepresentation];
+ if (str == nil) {
+ str = "Invalid Plugin";
+ }
+ } else {
+ str = "Invalid Plugin";
+ }
+
+ char **dst = [PcsxPlugin getConfigEntriesForType:type];
+ while (*dst) {
+ strncpy(*dst, str, 255);
+ dst++;
+ }
+
+ if (active) {
+ LoadPlugins();
+ OpenPlugins();
+
+ if (!wasPaused) {
+ [EmuThread resume];
+ }
+ }
+
+ return *pluginPtr != nil;
+}
+
+@end
diff --git a/macosx/config.h b/macosx/config.h
new file mode 100644
index 00000000..483c79b1
--- /dev/null
+++ b/macosx/config.h
@@ -0,0 +1,31 @@
+//
+// Copyright (c) 2008, Wei Mingzhi. All rights reserved.
+//
+// Use, redistribution and modification of this code is unrestricted as long as this
+// notice is preserved.
+//
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 256
+#endif
+
+#ifndef PACKAGE_VERSION
+#define PACKAGE_VERSION "1.9"
+#endif
+
+#ifndef PREFIX
+#define PREFIX "./"
+#endif
+
+#ifndef inline
+#ifdef _DEBUG
+#define inline /* */
+#else
+#define inline __inline__
+#endif
+#endif
+
+#endif
diff --git a/macosx/icons/PCSX.icns b/macosx/icons/PCSX.icns
new file mode 100644
index 00000000..3f57a340
--- /dev/null
+++ b/macosx/icons/PCSX.icns
Binary files differ
diff --git a/macosx/icons/pcsxfreeze.icns b/macosx/icons/pcsxfreeze.icns
new file mode 100644
index 00000000..bcb21e60
--- /dev/null
+++ b/macosx/icons/pcsxfreeze.icns
Binary files differ
diff --git a/macosx/icons/pcsxmemcard.icns b/macosx/icons/pcsxmemcard.icns
new file mode 100644
index 00000000..f3e47b9b
--- /dev/null
+++ b/macosx/icons/pcsxmemcard.icns
Binary files differ
diff --git a/macosx/icons/psxbios.icns b/macosx/icons/psxbios.icns
new file mode 100644
index 00000000..47baf9fe
--- /dev/null
+++ b/macosx/icons/psxbios.icns
Binary files differ
diff --git a/macosx/icons/psxplugin.icns b/macosx/icons/psxplugin.icns
new file mode 100644
index 00000000..01a3c933
--- /dev/null
+++ b/macosx/icons/psxplugin.icns
Binary files differ
diff --git a/macosx/main.m b/macosx/main.m
new file mode 100644
index 00000000..472ba4a0
--- /dev/null
+++ b/macosx/main.m
@@ -0,0 +1,250 @@
+//
+// main.m
+//
+// Created by Gil Pedersen on Fri Jun 06 2003.
+// Copyright (c) 2003 SoftWorkz. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import <Carbon/Carbon.h>
+#import "EmuThread.h"
+#include <dlfcn.h>
+//#import <sys/param.h>
+#import <unistd.h>
+#include "psxcommon.h"
+#include "sio.h"
+
+int sysInited = 0;
+long LoadCdBios;
+
+//#define EMU_LOG
+
+int main(int argc, const char *argv[])
+{
+ if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
+ char parentdir[MAXPATHLEN];
+ char *c;
+
+ strncpy ( parentdir, argv[0], sizeof(parentdir) );
+ c = (char*) parentdir;
+
+ while (*c != '\0') /* go to end */
+ c++;
+
+ while (*c != '/') /* back up to parent */
+ c--;
+
+ *c++ = '\0'; /* cut off last part (binary name) */
+
+ assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */
+ assert ( chdir ("../../../") == 0 ); /* chdir to the .app's parent */
+ }
+
+ // TODO: make this redundant
+ strcpy(Config.BiosDir, "Bios/");
+
+ // Setup the X11 window
+ if (getenv("DISPLAY") == NULL)
+ setenv("DISPLAY", ":0.0", 0); // Default to first local display
+
+ return NSApplicationMain(argc, argv);
+}
+
+
+int SysInit()
+{
+ if (sysInited)
+ return 0;
+
+#ifdef GTE_DUMP
+ gteLog = fopen("gteLog.txt","wb");
+ setvbuf(gteLog, NULL, _IONBF, 0);
+#endif
+
+#ifdef EMU_LOG
+#ifndef LOG_STDOUT
+ emuLog = fopen("emuLog.txt","wb");
+#else
+ emuLog = stdout;
+#endif
+ setvbuf(emuLog, NULL, _IONBF, 0);
+#endif
+
+ if (psxInit() != 0)
+ return -1;
+
+ while (LoadPlugins() == -1) {
+ return -1;
+ //CancelQuit = 1;
+ //ConfigurePlugins();
+ //CancelQuit = 0;
+ }
+
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+
+ sysInited = 1;
+
+ return 0;
+}
+
+void SysReset() {
+ [EmuThread resetNow];
+ //psxReset();
+}
+
+void SysPrintf(char *fmt, ...)
+{
+ va_list list;
+ char msg[512];
+
+ va_start(list, fmt);
+ vsprintf(msg, fmt, list);
+ va_end(list);
+
+ if (Config.PsxOut) printf ("%s", msg);
+#ifdef EMU_LOG
+#ifndef LOG_STDOUT
+ fprintf(emuLog, "%s", msg);
+#endif
+#endif
+}
+
+void SysMessage(char *fmt, ...)
+{
+ va_list list;
+ char msg[512];
+
+ NSString *locFmtString = NSLocalizedString([NSString stringWithCString:fmt], nil);
+
+ va_start(list, fmt);
+ vsprintf(msg, [locFmtString lossyCString], list);
+ va_end(list);
+
+ NSRunAlertPanel(NSLocalizedString(@"Error!", nil),
+ [NSString stringWithCString:msg],
+ nil, nil, nil);
+}
+
+#if 1
+void *SysLoadLibrary(char *lib) {
+ NSBundle *bundle = [NSBundle bundleWithPath:[NSString stringWithCString:lib]];
+ if (bundle != nil) {
+ return dlopen([[bundle executablePath] fileSystemRepresentation], RTLD_LAZY /*RTLD_NOW*/);
+ }
+ return dlopen(lib, RTLD_LAZY);
+}
+
+void *SysLoadSym(void *lib, char *sym) {
+ return dlsym(lib, sym);
+}
+
+const char *SysLibError() {
+ return dlerror();
+}
+
+void SysCloseLibrary(void *lib) {
+ //dlclose(lib);
+}
+#else
+static int LoadResult = 0;
+void *SysLoadLibrary(char *lib)
+{
+ CFBundleRef myBundle;
+ CFURLRef bundleURL;
+ CFStringRef path;
+
+ path = CFStringCreateWithCString(kCFAllocatorDefault, lib, CFStringGetSystemEncoding());
+ if (!path)
+ goto error;
+
+ bundleURL = CFURLCreateWithFileSystemPath(
+ kCFAllocatorDefault,
+ path,
+ kCFURLPOSIXPathStyle,
+ true );
+ if (!bundleURL)
+ goto error;
+
+ myBundle = CFBundleCreate( kCFAllocatorDefault, bundleURL );
+
+ if (!CFBundleLoadExecutable(myBundle))
+ goto error;
+
+good:
+ if (path) CFRelease(path);
+ if (bundleURL) CFRelease(bundleURL);
+
+ return myBundle;
+
+error:
+ if (LoadResult == 0) LoadResult = -1;
+ myBundle = NULL;
+ goto good;
+}
+
+void *SysLoadSym(void *lib, char *sym)
+{
+ CFStringRef funcName;
+ void *func;
+
+ funcName = CFStringCreateWithCString(kCFAllocatorDefault, sym, CFStringGetSystemEncoding());
+ func = CFBundleGetFunctionPointerForName((CFBundleRef)lib, funcName);
+ if (func == nil) {
+ LoadResult = -2;
+ }
+
+ CFRelease(funcName);
+ return func;
+}
+
+const char *SysLibError()
+{
+ char *result = NULL;
+
+ if (LoadResult != 0)
+ result = "Error loading code";
+
+ LoadResult = 0;
+ return result;
+}
+void SysCloseLibrary(void *lib)
+{
+ if (lib) {
+ CFBundleUnloadExecutable((CFBundleRef)lib);
+ CFRelease((CFBundleRef)lib);
+ }
+}
+#endif
+
+void PADhandleKey(int key);
+
+// Called periodically from the emu thread
+void SysUpdate()
+{
+ UpdateSystemActivity(UsrActivity);
+
+ PADhandleKey(PAD1_keypressed());
+ //PADhandleKey(PAD2_keypressed());
+
+ [emuThread handleEvents];
+}
+
+void SysRunGui() // Returns to the Gui
+{
+
+}
+void SysClose() // Close mem and plugins
+{
+ psxShutdown();
+ ReleasePlugins();
+
+ if (emuLog != NULL) fclose(emuLog);
+
+ sysInited = false;
+}
+
+void OnFile_Exit()
+{
+ SysClose();
+ exit(0);
+} \ No newline at end of file
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index f1f2e8c6..dbc6a4ee 100755
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 2623d688..8ea7d798 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -12,7 +12,7 @@ msgstr ""
"Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n"
"Language-Team: Simplified Chinese <whistler@openoffice.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=gbk\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../win32/gui/AboutDlg.c:26
@@ -25,13 +25,13 @@ msgid ""
"ex-coders: Nocomp, Pete Bernett, nik3d\n"
"Webmaster: AkumaX"
msgstr ""
-"PCSX - 一个 PlayStation 模拟器\n"
+"PCSX - һ PlayStation ģ\n"
"\n"
-"原作者:\n"
-"主程序员: linuzappz\n"
-"辅助程序员: shadow\n"
-"前程序员: Nocomp, Pete Bernett, nik3d\n"
-"网络管理: AkumaX"
+"ԭ:\n"
+"Ա: linuzappz\n"
+"Ա: shadow\n"
+"ǰԱ: Nocomp, Pete Bernett, nik3d\n"
+": AkumaX"
#: ../win32/gui/AboutDlg.c:35
msgid ""
@@ -44,18 +44,18 @@ msgid ""
"\n"
"http://www.codeplex.com/pcsxr"
msgstr ""
-"PCSX-df 开发者:\n"
+"PCSX-df :\n"
"Ryan Schultz, Andrew Burton, Stephen Chao,\n"
"Marcus Comstedt, Stefan Sikora\n"
"\n"
-"PCSX Reloaded 开发者:\n"
+"PCSX Reloaded :\n"
"Wei Mingzhi\n"
"\n"
"http://www.codeplex.com/pcsxr"
#: ../win32/gui/AboutDlg.c:46
msgid "About"
-msgstr "关于 PCSX"
+msgstr " PCSX"
#: ../win32/gui/AboutDlg.c:48
#: ../win32/gui/AboutDlg.c:52
@@ -65,23 +65,23 @@ msgstr "关于 PCSX"
#: ../win32/gui/WndMain.c:1142
#: ../plugins/peopsxgl/gpucfg/interface.c:129
msgid "OK"
-msgstr "确定"
+msgstr "ȷ"
#: ../win32/gui/AboutDlg.c:49
msgid "PCSX EMU\n"
-msgstr "PCSX 模拟器\n"
+msgstr "PCSX ģ\n"
#: ../win32/gui/ConfigurePlugins.c:385
msgid "This plugin reports that should work correctly"
-msgstr "此插件报告其可正常工作。"
+msgstr "˲"
#: ../win32/gui/ConfigurePlugins.c:386
msgid "This plugin reports that should not work correctly"
-msgstr "此插件报告其不可正常工作。"
+msgstr "˲䲻"
#: ../win32/gui/ConfigurePlugins.c:460
msgid "Configuration"
-msgstr "配置"
+msgstr ""
#: ../win32/gui/ConfigurePlugins.c:463
#: ../win32/gui/ConfigurePlugins.c:594
@@ -89,23 +89,23 @@ msgstr "配置"
#: ../win32/gui/WndMain.c:1143
#: ../plugins/peopsxgl/gpucfg/interface.c:337
msgid "Cancel"
-msgstr "取消"
+msgstr "ȡ"
#: ../win32/gui/ConfigurePlugins.c:464
msgid "Graphics"
-msgstr "图像"
+msgstr "ͼ"
#: ../win32/gui/ConfigurePlugins.c:465
msgid "First Controller"
-msgstr "主控制器"
+msgstr ""
#: ../win32/gui/ConfigurePlugins.c:466
msgid "Second Controller"
-msgstr "辅控制器"
+msgstr ""
#: ../win32/gui/ConfigurePlugins.c:467
msgid "Sound"
-msgstr "声音"
+msgstr ""
#: ../win32/gui/ConfigurePlugins.c:468
msgid "Cdrom"
@@ -117,11 +117,11 @@ msgstr "BIOS"
#: ../win32/gui/ConfigurePlugins.c:470
msgid "Set Bios Directory"
-msgstr "设置 BIOS 目录"
+msgstr " BIOS Ŀ¼"
#: ../win32/gui/ConfigurePlugins.c:471
msgid "Set Plugins Directory"
-msgstr "设置插件目录"
+msgstr "òĿ¼"
#: ../win32/gui/ConfigurePlugins.c:472
#: ../win32/gui/ConfigurePlugins.c:475
@@ -130,7 +130,7 @@ msgstr "设置插件目录"
#: ../win32/gui/ConfigurePlugins.c:484
#: ../win32/gui/ConfigurePlugins.c:596
msgid "Configure..."
-msgstr "配置..."
+msgstr "..."
#: ../win32/gui/ConfigurePlugins.c:473
#: ../win32/gui/ConfigurePlugins.c:476
@@ -139,7 +139,7 @@ msgstr "配置..."
#: ../win32/gui/ConfigurePlugins.c:485
#: ../win32/gui/ConfigurePlugins.c:597
msgid "Test..."
-msgstr "测试..."
+msgstr "..."
#: ../win32/gui/ConfigurePlugins.c:474
#: ../win32/gui/ConfigurePlugins.c:477
@@ -148,19 +148,19 @@ msgstr "测试..."
#: ../win32/gui/ConfigurePlugins.c:486
#: ../win32/gui/ConfigurePlugins.c:598
msgid "About..."
-msgstr "关于..."
+msgstr "..."
#: ../win32/gui/ConfigurePlugins.c:591
msgid "NetPlay Configuration"
-msgstr "联网游戏配置"
+msgstr "Ϸ"
#: ../win32/gui/ConfigurePlugins.c:595
msgid "NetPlay"
-msgstr "联网游戏"
+msgstr "Ϸ"
#: ../win32/gui/ConfigurePlugins.c:599
msgid "Note: The NetPlay Plugin Directory should be the same as the other Plugins."
-msgstr "注意: 联网游戏插件应和其它插件放在同一目录中。"
+msgstr "ע: ϷӦͬһĿ¼С"
#: ../win32/gui/plugin.c:90
#: ../win32/gui/WndMain.c:235
@@ -226,162 +226,162 @@ msgstr "*PCSX*: CdRom Case Closed"
#: ../win32/gui/plugin.c:177
msgid "Connecting..."
-msgstr "正在连接..."
+msgstr "..."
#: ../win32/gui/plugin.c:179
#: ../win32/gui/plugin.c:186
#, c-format
msgid "Please wait while connecting... %c\n"
-msgstr "请稍候,正在连接... %c\n"
+msgstr "Ժ... %c\n"
#: ../win32/gui/plugin.c:216
msgid "Error Opening CDR Plugin"
-msgstr "无法打开 CDR 插件"
+msgstr "޷ CDR "
#: ../win32/gui/plugin.c:279
#, c-format
msgid "Error Opening GPU Plugin (%d)"
-msgstr "无法打开 GPU 插件 (%d)"
+msgstr "޷ GPU (%d)"
#: ../win32/gui/plugin.c:281
#, c-format
msgid "Error Opening SPU Plugin (%d)"
-msgstr "无法打开 SPU 插件 (%d)"
+msgstr "޷ SPU (%d)"
#: ../win32/gui/plugin.c:284
#, c-format
msgid "Error Opening PAD1 Plugin (%d)"
-msgstr "无法打开 PAD1 插件 (%d)"
+msgstr "޷ PAD1 (%d)"
#: ../win32/gui/plugin.c:286
#, c-format
msgid "Error Opening PAD2 Plugin (%d)"
-msgstr "无法打开 PAD2 插件 (%d)"
+msgstr "޷ PAD2 (%d)"
#: ../win32/gui/plugin.c:309
msgid "Error Closing CDR Plugin"
-msgstr "无法关闭 CD-ROM 插件 (%d)"
+msgstr "޷ر CD-ROM (%d)"
#: ../win32/gui/plugin.c:311
msgid "Error Closing GPU Plugin"
-msgstr "无法关闭 GPU 插件"
+msgstr "޷ر GPU "
#: ../win32/gui/plugin.c:313
msgid "Error Closing SPU Plugin"
-msgstr "无法关闭 SPU 插件"
+msgstr "޷ر SPU "
#: ../win32/gui/plugin.c:315
msgid "Error Closing PAD1 Plugin"
-msgstr "无法关闭 PAD1 插件"
+msgstr "޷ر PAD1 "
#: ../win32/gui/plugin.c:317
msgid "Error Closing PAD2 Plugin"
-msgstr "无法关闭 PAD2 插件!"
+msgstr "޷ر PAD2 !"
#: ../win32/gui/plugin.c:335
#, c-format
msgid "CDRinit error: %d"
-msgstr "CDRinit 错误: %d"
+msgstr "CDRinit : %d"
#: ../win32/gui/plugin.c:337
#, c-format
msgid "GPUinit error: %d"
-msgstr "GPUinit 错误: %d"
+msgstr "GPUinit : %d"
#: ../win32/gui/plugin.c:339
#, c-format
msgid "SPUinit error: %d"
-msgstr "SPUinit 错误: %d"
+msgstr "SPUinit : %d"
#: ../win32/gui/plugin.c:341
#, c-format
msgid "PAD1init error: %d"
-msgstr "PAD1init 错误: %d"
+msgstr "PAD1init : %d"
#: ../win32/gui/plugin.c:343
#, c-format
msgid "PAD2init error: %d"
-msgstr "PAD2init 错误: %d"
+msgstr "PAD2init : %d"
#: ../win32/gui/plugin.c:346
#, c-format
msgid "NETinit error: %d"
-msgstr "NETinit 错误: %d"
+msgstr "NETinit : %d"
#: ../win32/gui/WndMain.c:74
msgid "Arabic"
-msgstr "阿拉伯语"
+msgstr ""
#: ../win32/gui/WndMain.c:75
msgid "Catalan"
-msgstr "加泰隆尼亚语"
+msgstr "̩¡"
#: ../win32/gui/WndMain.c:76
msgid "German"
-msgstr "德语"
+msgstr ""
#: ../win32/gui/WndMain.c:77
msgid "Greek"
-msgstr "希腊语"
+msgstr "ϣ"
#: ../win32/gui/WndMain.c:78
#: ../win32/gui/WndMain.c:1471
#: ../win32/gui/WndMain.c:1473
msgid "English"
-msgstr "英语"
+msgstr "Ӣ"
#: ../win32/gui/WndMain.c:79
msgid "Spanish"
-msgstr "西班牙语"
+msgstr ""
#: ../win32/gui/WndMain.c:80
msgid "French"
-msgstr "法语"
+msgstr ""
#: ../win32/gui/WndMain.c:81
msgid "Italian"
-msgstr "意大利语"
+msgstr ""
#: ../win32/gui/WndMain.c:82
msgid "Portuguese"
-msgstr "葡萄牙语"
+msgstr ""
#: ../win32/gui/WndMain.c:83
msgid "Romanian"
-msgstr "罗马尼亚语"
+msgstr ""
#: ../win32/gui/WndMain.c:84
msgid "Russian"
-msgstr "俄语"
+msgstr ""
#: ../win32/gui/WndMain.c:85
msgid "Simplified Chinese"
-msgstr "简体中文"
+msgstr ""
#: ../win32/gui/WndMain.c:86
msgid "Traditional Chinese"
-msgstr "繁体中文"
+msgstr ""
#: ../win32/gui/WndMain.c:87
msgid "Japanese"
-msgstr "日语"
+msgstr ""
#: ../win32/gui/WndMain.c:88
msgid "Korean"
-msgstr "朝鲜语"
+msgstr ""
#: ../win32/gui/WndMain.c:129
msgid "Pcsx needs to be configured"
-msgstr "PCSX 需要被配置。"
+msgstr "PCSX Ҫá"
#: ../win32/gui/WndMain.c:133
msgid "Pcsx now will quit, restart it"
-msgstr "PCSX 将退出,请重新启动它。"
+msgstr "PCSX ˳"
#: ../win32/gui/WndMain.c:253
#: ../win32/gui/WndMain.c:305
msgid "PCSX State Format"
-msgstr "PCSX 存档格式"
+msgstr "PCSX 浵ʽ"
#: ../win32/gui/WndMain.c:280
#, c-format
@@ -408,36 +408,36 @@ msgstr "*PCSX*: Error Saving State %s"
#: ../gui/Gtk2Gui.c:552
#: ../gui/Gtk2Gui.c:675
msgid "The CD does not appear to be a valid Playstation CD"
-msgstr "此光盘不是一张合法的 PlayStation 光盘。"
+msgstr "˹̲һźϷ PlayStation ̡"
#: ../win32/gui/WndMain.c:388
#: ../win32/gui/WndMain.c:437
#: ../gui/Gtk2Gui.c:560
#: ../gui/Gtk2Gui.c:683
msgid "Could not load CD-ROM!"
-msgstr "无法加载光盘!"
+msgstr "޷ع!"
#: ../win32/gui/WndMain.c:398
msgid "Running BIOS is not supported with Internal HLE Bios."
-msgstr "内部 HLE BIOS 不支持直接运行。"
+msgstr "ڲ HLE BIOS ֱ֧С"
#: ../win32/gui/WndMain.c:604
#: ../gui/Gtk2Gui.c:1046
msgid "Title"
-msgstr "标题"
+msgstr ""
#: ../win32/gui/WndMain.c:610
#: ../gui/Gtk2Gui.c:1052
msgid "Status"
-msgstr "状态"
+msgstr "״̬"
#: ../win32/gui/WndMain.c:616
msgid "Game ID"
-msgstr "游戏 ID"
+msgstr "Ϸ ID"
#: ../win32/gui/WndMain.c:622
msgid "Game"
-msgstr "游戏"
+msgstr "Ϸ"
#: ../win32/gui/WndMain.c:796
msgid "mid link block"
@@ -450,267 +450,267 @@ msgstr "terminiting link block"
#: ../win32/gui/WndMain.c:807
#: ../gui/Gtk2Gui.c:1126
msgid "Deleted"
-msgstr "已删除"
+msgstr "ɾ"
#: ../win32/gui/WndMain.c:808
#: ../win32/gui/WndMain.c:811
#: ../gui/Gtk2Gui.c:1128
#: ../gui/Gtk2Gui.c:1132
msgid "Free"
-msgstr "空闲"
+msgstr ""
#: ../win32/gui/WndMain.c:810
#: ../gui/Gtk2Gui.c:1130
msgid "Used"
-msgstr "已使用"
+msgstr "ʹ"
#: ../win32/gui/WndMain.c:904
msgid "Memcard Manager"
-msgstr "记忆卡管理器"
+msgstr "俨"
#: ../win32/gui/WndMain.c:908
#: ../win32/gui/WndMain.c:911
msgid "Select Mcd"
-msgstr "选择"
+msgstr "ѡ"
#: ../win32/gui/WndMain.c:909
#: ../win32/gui/WndMain.c:912
msgid "Format Mcd"
-msgstr "格式化"
+msgstr "ʽ"
#: ../win32/gui/WndMain.c:910
#: ../win32/gui/WndMain.c:913
msgid "Reload Mcd"
-msgstr "重新加载"
+msgstr "¼"
#: ../win32/gui/WndMain.c:914
msgid "-> Copy ->"
-msgstr "-> 复制 ->"
+msgstr "-> ->"
#: ../win32/gui/WndMain.c:915
msgid "<- Copy <-"
-msgstr "<- 复制 <-"
+msgstr "<- <-"
#: ../win32/gui/WndMain.c:916
msgid "Paste"
-msgstr "粘贴"
+msgstr "ճ"
#: ../win32/gui/WndMain.c:917
msgid "<- Un/Delete"
-msgstr "<- 删除/恢复"
+msgstr "<- ɾ/ָ"
#: ../win32/gui/WndMain.c:918
msgid "Un/Delete ->"
-msgstr "删除/恢复 ->"
+msgstr "ɾ/ָ ->"
#: ../win32/gui/WndMain.c:920
msgid "Memory Card 1"
-msgstr "记忆卡 1"
+msgstr "俨 1"
#: ../win32/gui/WndMain.c:921
msgid "Memory Card 2"
-msgstr "记忆卡 2"
+msgstr "俨 2"
#: ../win32/gui/WndMain.c:976
msgid "Are you sure you want to paste this selection?"
-msgstr "是否确认粘贴此选中内容?"
+msgstr "Ƿȷճѡ?"
#: ../win32/gui/WndMain.c:976
#: ../win32/gui/WndMain.c:1087
#: ../win32/gui/WndMain.c:1094
msgid "Confirmation"
-msgstr "确认"
+msgstr "ȷ"
#: ../win32/gui/WndMain.c:1087
#: ../win32/gui/WndMain.c:1094
msgid "Are you sure you want to format this Memory Card?"
-msgstr "是否确认格式化此记忆卡?"
+msgstr "Ƿȷϸʽ˼俨?"
#: ../win32/gui/WndMain.c:1140
msgid "Cpu Config"
-msgstr "CPU 配置"
+msgstr "CPU "
#: ../win32/gui/WndMain.c:1145
msgid "Disable Xa Decoding"
-msgstr "禁用 XA 解码"
+msgstr " XA "
#: ../win32/gui/WndMain.c:1146
msgid "Sio Irq Always Enabled"
-msgstr "SIO IRQ 总是启用"
+msgstr "SIO IRQ "
#: ../win32/gui/WndMain.c:1147
msgid "Black && White Movies"
-msgstr "黑白电影"
+msgstr "ڰ׵Ӱ"
#: ../win32/gui/WndMain.c:1148
msgid "Disable Cd audio"
-msgstr "禁用 CD 音频"
+msgstr " CD Ƶ"
#: ../win32/gui/WndMain.c:1149
#: ../data/pcsx.glade2:1321
msgid "Autodetect"
-msgstr "自动检测"
+msgstr "Զ"
#: ../win32/gui/WndMain.c:1150
msgid "Enable Interpreter Cpu"
-msgstr "启用解释执行 CPU"
+msgstr "ýִ CPU"
#: ../win32/gui/WndMain.c:1151
#: ../data/pcsx.glade2:1183
msgid "Enable Console Output"
-msgstr "启用控制台输出"
+msgstr "ÿ̨"
#: ../win32/gui/WndMain.c:1152
msgid "Spu Irq Always Enabled"
-msgstr "SPU IRQ 总是启用"
+msgstr "SPU IRQ "
#: ../win32/gui/WndMain.c:1153
#: ../data/pcsx.glade2:1267
msgid "Parasite Eve 2, Vandal Hearts 1/2 Fix"
-msgstr "Parasite Eve 2, Vandal Hearts 1/2 修正"
+msgstr "Parasite Eve 2, Vandal Hearts 1/2 "
#: ../win32/gui/WndMain.c:1154
#: ../data/pcsx.glade2:1282
msgid "InuYasha Sengoku Battle Fix"
-msgstr "InuYasha Sengoku 战斗修正"
+msgstr "InuYasha Sengoku ս"
#: ../win32/gui/WndMain.c:1156
#: ../plugins/dfcdrom/interface.c:193
msgid "Options"
-msgstr "选项"
+msgstr "ѡ"
#: ../win32/gui/WndMain.c:1157
msgid "Psx System Type"
-msgstr "Psx 系统类型"
+msgstr "Psx ϵͳ"
#: ../win32/gui/WndMain.c:1229
msgid "Psx Mcd Format (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"
-msgstr "Psx 记忆卡格式 (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"
+msgstr "Psx 俨ʽ (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"
#: ../win32/gui/WndMain.c:1234
msgid "Psx Memory Card (*.mcr;*.mc)"
-msgstr "Psx 记忆卡 (*.mcr;*.mc)"
+msgstr "Psx 俨 (*.mcr;*.mc)"
#: ../win32/gui/WndMain.c:1239
msgid "CVGS Memory Card (*.mem;*.vgs)"
-msgstr "VGS 记忆卡 (*.mem;*.vgs)"
+msgstr "VGS 俨 (*.mem;*.vgs)"
#: ../win32/gui/WndMain.c:1244
msgid "Bleem Memory Card (*.mcd)"
-msgstr "Bleem 记忆卡 (*.mcd)"
+msgstr "Bleem 俨 (*.mcd)"
#: ../win32/gui/WndMain.c:1249
msgid "DexDrive Memory Card (*.gme)"
-msgstr "DexDrive 记忆卡 (*.gme)"
+msgstr "DexDrive 俨 (*.gme)"
#: ../win32/gui/WndMain.c:1254
msgid "DataDeck Memory Card (*.ddf)"
-msgstr "DataDeck 记忆卡 (*.ddl)"
+msgstr "DataDeck 俨 (*.ddl)"
#: ../win32/gui/WndMain.c:1259
#: ../win32/gui/WndMain.c:1340
#: ../gui/Cheat.c:372
#: ../gui/Gtk2Gui.c:626
msgid "All Files"
-msgstr "所有文件"
+msgstr "ļ"
#: ../win32/gui/WndMain.c:1298
msgid "Psx Exe Format"
-msgstr "PSX EXE 格式"
+msgstr "PSX EXE ʽ"
#: ../win32/gui/WndMain.c:1335
msgid "Psx Isos (*.iso;*.mdf;*.img;*.bin)"
-msgstr "Psx 光盘镜像 (*.iso;*.mdf;*.img;*.bin)"
+msgstr "Psx ̾ (*.iso;*.mdf;*.img;*.bin)"
#: ../win32/gui/WndMain.c:1409
msgid "&File"
-msgstr "文件(&F)"
+msgstr "ļ(&F)"
#: ../win32/gui/WndMain.c:1410
msgid "E&xit"
-msgstr "退出(&X)"
+msgstr "˳(&X)"
#: ../win32/gui/WndMain.c:1412
msgid "&States"
-msgstr "存档(&S)"
+msgstr "浵(&S)"
#: ../win32/gui/WndMain.c:1414
msgid "Run &EXE"
-msgstr "运行 EXE(&E)"
+msgstr " EXE(&E)"
#: ../win32/gui/WndMain.c:1415
msgid "Run &BIOS"
-msgstr "运行 BIOS(&B)"
+msgstr " BIOS(&B)"
#: ../win32/gui/WndMain.c:1416
msgid "Run &ISO"
-msgstr "运行 ISO(&I)"
+msgstr " ISO(&I)"
#: ../win32/gui/WndMain.c:1417
msgid "Run &CD"
-msgstr "运行光碟(&C)"
+msgstr "й(&C)"
#: ../win32/gui/WndMain.c:1418
msgid "&Save"
-msgstr "保存(&S)"
+msgstr "(&S)"
#: ../win32/gui/WndMain.c:1419
msgid "&Load"
-msgstr "读取(&L)"
+msgstr "ȡ(&L)"
#: ../win32/gui/WndMain.c:1420
#: ../win32/gui/WndMain.c:1426
msgid "&Other..."
-msgstr "其它(&O)..."
+msgstr "(&O)..."
#: ../win32/gui/WndMain.c:1421
#: ../win32/gui/WndMain.c:1427
msgid "Slot &5"
-msgstr "存档 5(&5)"
+msgstr "浵 5(&5)"
#: ../win32/gui/WndMain.c:1422
#: ../win32/gui/WndMain.c:1428
msgid "Slot &4"
-msgstr "存档 4(&4)"
+msgstr "浵 4(&4)"
#: ../win32/gui/WndMain.c:1423
#: ../win32/gui/WndMain.c:1429
msgid "Slot &3"
-msgstr "存档 3(&3)"
+msgstr "浵 3(&3)"
#: ../win32/gui/WndMain.c:1424
#: ../win32/gui/WndMain.c:1430
msgid "Slot &2"
-msgstr "存档 2(&2)"
+msgstr "浵 2(&2)"
#: ../win32/gui/WndMain.c:1425
#: ../win32/gui/WndMain.c:1431
msgid "Slot &1"
-msgstr "存档 1(&1)"
+msgstr "浵 1(&1)"
#: ../win32/gui/WndMain.c:1433
msgid "&Emulator"
-msgstr "模拟器(&E)"
+msgstr "ģ(&E)"
#: ../win32/gui/WndMain.c:1434
msgid "S&witch ISO"
-msgstr "更换 ISO(&W)"
+msgstr " ISO(&W)"
#: ../win32/gui/WndMain.c:1436
msgid "Re&set"
-msgstr "复位(&S)"
+msgstr "λ(&S)"
#: ../win32/gui/WndMain.c:1437
msgid "&Run"
-msgstr "运行(&R)"
+msgstr "(&R)"
#: ../win32/gui/WndMain.c:1439
msgid "&Configuration"
-msgstr "配置(&C)"
+msgstr "(&C)"
#: ../win32/gui/WndMain.c:1440
msgid "&Memory cards"
-msgstr "记忆卡(&M)"
+msgstr "俨(&M)"
#: ../win32/gui/WndMain.c:1441
msgid "C&PU"
@@ -718,11 +718,11 @@ msgstr "CPU(&P)"
#: ../win32/gui/WndMain.c:1443
msgid "&NetPlay"
-msgstr "联网游戏(&N)"
+msgstr "Ϸ(&N)"
#: ../win32/gui/WndMain.c:1445
msgid "&Controllers"
-msgstr "控制器(&C)"
+msgstr "(&C)"
#: ../win32/gui/WndMain.c:1446
msgid "CD-&ROM"
@@ -730,185 +730,185 @@ msgstr "CD-ROM(&R)"
#: ../win32/gui/WndMain.c:1447
msgid "&Sound"
-msgstr "声音(&S)"
+msgstr "(&S)"
#: ../win32/gui/WndMain.c:1448
msgid "&Graphics"
-msgstr "图像(&G)"
+msgstr "ͼ(&G)"
#: ../win32/gui/WndMain.c:1450
msgid "&Plugins && Bios"
-msgstr "插件及 BIOS(&P)"
+msgstr " BIOS(&P)"
#: ../win32/gui/WndMain.c:1452
msgid "&Language"
-msgstr "语言(&L)"
+msgstr "(&L)"
#: ../win32/gui/WndMain.c:1476
msgid "&Help"
-msgstr "帮助(&H)"
+msgstr "(&H)"
#: ../win32/gui/WndMain.c:1477
msgid "&About..."
-msgstr "关于(&A)..."
+msgstr "(&A)..."
#: ../win32/gui/WndMain.c:1654
msgid "Pcsx Msg"
-msgstr "PCSX 消息"
+msgstr "PCSX Ϣ"
#: ../win32/gui/WndMain.c:1657
msgid "Error Loading Symbol"
-msgstr "无法加载符号"
+msgstr "޷ط"
#: ../gui/Cheat.c:49
msgid " Yes"
-msgstr " 是"
+msgstr " "
#: ../gui/Cheat.c:118
msgid "Add New Cheat"
-msgstr "添加新作弊码"
+msgstr ""
#: ../gui/Cheat.c:126
#: ../gui/Cheat.c:210
msgid "Cheat Description:"
-msgstr "作弊码描述:"
+msgstr ":"
#: ../gui/Cheat.c:134
#: ../gui/Cheat.c:219
msgid "Cheat Code:"
-msgstr "作弊码:"
+msgstr ":"
#: ../gui/Cheat.c:164
#: ../gui/Cheat.c:259
#: ../gui/LnxMain.c:355
msgid "Error"
-msgstr "错误"
+msgstr ""
#: ../gui/Cheat.c:164
#: ../gui/Cheat.c:259
msgid "Invalid cheat code!"
-msgstr "非法作弊码!"
+msgstr "Ƿ!"
#: ../gui/Cheat.c:202
msgid "Edit Cheat"
-msgstr "编辑作弊码"
+msgstr "༭"
#: ../gui/Cheat.c:357
msgid "Open Cheat File"
-msgstr "打开作弊码文件"
+msgstr "ļ"
#: ../gui/Cheat.c:367
#: ../gui/Cheat.c:407
msgid "PCSX Cheat Code Files (*.cht)"
-msgstr "PCSX 作弊码文件 (*.cht)"
+msgstr "PCSX ļ (*.cht)"
#: ../gui/Cheat.c:397
msgid "Save Cheat File"
-msgstr "保存作弊码文件"
+msgstr "ļ"
#: ../gui/Cheat.c:412
msgid "All Files (*.*)"
-msgstr "所有文件 (*.*)"
+msgstr "ļ (*.*)"
#: ../gui/Cheat.c:445
#: ../gui/Cheat.c:531
#: ../gui/Gtk2Gui.c:377
#: ../gui/Gtk2Gui.c:998
msgid "Error: Glade interface could not be loaded!"
-msgstr "错误:无法加载 Glade 界面!"
+msgstr "޷ Glade !"
#: ../gui/Cheat.c:450
msgid "Cheat Codes"
-msgstr "作弊码"
+msgstr ""
#: ../gui/Cheat.c:456
#: ../data/pcsx.glade2:2253
msgid "Enable"
-msgstr "启用"
+msgstr ""
#: ../gui/Cheat.c:462
msgid "Description"
-msgstr "描述"
+msgstr ""
#: ../gui/Cheat.c:536
#: ../data/pcsx.glade2:2362
msgid "Cheat Search"
-msgstr "查找作弊码"
+msgstr ""
#: ../gui/Gtk2Gui.c:385
#: ../data/pcsx.glade2:517
msgid "Configure PCSX"
-msgstr "配置 PCSX"
+msgstr " PCSX"
#: ../gui/Gtk2Gui.c:471
msgid "Select PSX EXE File"
-msgstr "选择 PSX EXE 文件"
+msgstr "ѡ PSX EXE ļ"
#: ../gui/Gtk2Gui.c:481
msgid "PlayStation Executable Files"
-msgstr "PlayStation 可执行文件"
+msgstr "PlayStation ִļ"
#: ../gui/Gtk2Gui.c:521
msgid "Not a valid PSX file"
-msgstr "不是一个合法的 PSX 文件"
+msgstr "һϷ PSX ļ"
#: ../gui/Gtk2Gui.c:521
msgid "The file does not appear to be a valid Playstation executable"
-msgstr "此文件不是一个合法的 PlayStation 可执行文件"
+msgstr "ļһϷ PlayStation ִļ"
#: ../gui/Gtk2Gui.c:552
#: ../gui/Gtk2Gui.c:675
msgid "CD ROM failed"
-msgstr "CD-ROM 失败"
+msgstr "CD-ROM ʧ"
#: ../gui/Gtk2Gui.c:560
msgid "The CD ROM could not be loaded"
-msgstr "无法加载 CD-ROM"
+msgstr "޷ CD-ROM"
#: ../gui/Gtk2Gui.c:575
msgid "Could not run BIOS"
-msgstr "无法运行 BIOS"
+msgstr "޷ BIOS"
#: ../gui/Gtk2Gui.c:575
msgid "Running BIOS is not supported with Internal HLE BIOS."
-msgstr "内部 HLE BIOS 不支持直接运行。"
+msgstr "ڲ HLE BIOS ֱ֧С"
#: ../gui/Gtk2Gui.c:605
msgid "Open PSX Disc Image File"
-msgstr "打开 PSX 光盘镜像文件"
+msgstr " PSX ̾ļ"
#: ../gui/Gtk2Gui.c:621
msgid "PSX Image Files (*.bin, *.img, *.mdf, *.iso)"
-msgstr "PS 镜像文件 (*.bin, *.img, *.mdf, *.iso)"
+msgstr "PS ļ (*.bin, *.img, *.mdf, *.iso)"
#: ../gui/Gtk2Gui.c:857
#, c-format
msgid "Loaded state %s."
-msgstr "已读取存档 %s。"
+msgstr "Ѷȡ浵 %s"
#: ../gui/Gtk2Gui.c:862
#, c-format
msgid "Error loading state %s!"
-msgstr "读取存档 %s 时出错。"
+msgstr "ȡ浵 %s ʱ"
#: ../gui/Gtk2Gui.c:873
#, c-format
msgid "Saved state %s."
-msgstr "已保存存档 %s"
+msgstr "ѱ浵 %s"
#: ../gui/Gtk2Gui.c:875
#, c-format
msgid "Error saving state %s!"
-msgstr "保存存档 %s 时出错。"
+msgstr "浵 %s ʱ"
#: ../gui/Gtk2Gui.c:909
#: ../gui/Gtk2Gui.c:936
msgid "Select State File"
-msgstr "选择存档文件"
+msgstr "ѡ浵ļ"
#: ../gui/Gtk2Gui.c:1040
msgid "Icon"
-msgstr "图标"
+msgstr "ͼ"
#: ../gui/Gtk2Gui.c:1058
msgid "ID"
@@ -916,60 +916,60 @@ msgstr "ID"
#: ../gui/Gtk2Gui.c:1064
msgid "Name"
-msgstr "名称"
+msgstr ""
#: ../gui/Gtk2Gui.c:1224
msgid "Format this Memory Card?"
-msgstr "格式化此记忆卡?"
+msgstr "ʽ˼俨?"
#: ../gui/Gtk2Gui.c:1226
msgid "If you format the memory card, the card will be empty, and any existing data overwritten."
-msgstr "如果您选择格式化记忆卡,记忆卡将被清空,并且任何现有数据都将被覆盖。"
+msgstr "ѡʽ俨俨գκݶǡ"
#: ../gui/Gtk2Gui.c:1229
msgid "Format card"
-msgstr "格式化记忆卡"
+msgstr "ʽ俨"
#: ../gui/Gtk2Gui.c:1344
msgid "No space available in the target memory card!"
-msgstr "目标记忆卡没有空余位置!"
+msgstr "Ŀ俨ûпλ!"
#: ../gui/Gtk2Gui.c:1489
msgid "Memory Card Manager"
-msgstr "记忆卡管理器"
+msgstr "俨"
#: ../gui/Gtk2Gui.c:1758
msgid "No configuration required"
-msgstr "不需要配置"
+msgstr "Ҫ"
#: ../gui/Gtk2Gui.c:1758
msgid "This plugin doesn't need to be configured."
-msgstr "此插件需要被配置。"
+msgstr "˲Ҫá"
#: ../gui/Gtk2Gui.c:2017
#, c-format
msgid "Could not open BIOS directory: '%s'\n"
-msgstr "无法打开 BIOS 目录: \"%s\"\n"
+msgstr "޷ BIOS Ŀ¼: \"%s\"\n"
#: ../gui/Gtk2Gui.c:2049
#: ../gui/Gtk2Gui.c:2142
#: ../gui/LnxMain.c:146
#, c-format
msgid "Could not open directory: '%s'\n"
-msgstr "无法打开目录: \"%s\"\n"
+msgstr "޷Ŀ¼: \"%s\"\n"
#: ../gui/Gtk2Gui.c:2111
msgid "Internal HLE Bios"
-msgstr "内部 HLE-Bios"
+msgstr "ڲ HLE-Bios"
#: ../gui/Gtk2Gui.c:2203
msgid "Notice"
-msgstr "警告"
+msgstr ""
#: ../gui/LnxMain.c:65
#, c-format
msgid "Creating memory card: %s\n"
-msgstr "建立记忆卡: %s\n"
+msgstr "俨: %s\n"
#: ../gui/LnxMain.c:262
msgid ""
@@ -984,256 +984,256 @@ msgid ""
"\t-h -help\tDisplay this message\n"
"\tfile\t\tLoads file\n"
msgstr ""
-" pcsx [选项] [文件]\n"
-"\t选项:\n"
-"\t-runcd\t\t运行 CD-ROM\n"
-"\t-cdfile 文件\t运行一个 CD 镜像文件\n"
-"\t-nogui\t\t不使用 GTK 图形界面\n"
-"\t-cfg 文件\t加载一个特定的配置文件 (默认为: ~/.pcsx/pcsx.cfg)\n"
-"\t-psxout\t\t启用 PSX 输出\n"
-"\t-load 编号\t加载指定编号的存档 (1-5)\n"
-"\t-h -help\t显示此信息\n"
-"\t文件\t\t加载文件\n"
+" pcsx [ѡ] [ļ]\n"
+"\tѡ:\n"
+"\t-runcd\t\t CD-ROM\n"
+"\t-cdfile ļ\tһ CD ļ\n"
+"\t-nogui\t\tʹ GTK ͼν\n"
+"\t-cfg ļ\tһضļ (ĬΪ: ~/.pcsx/pcsx.cfg)\n"
+"\t-psxout\t\t PSX \n"
+"\t-load \tָŵĴ浵 (1-5)\n"
+"\t-h -help\tʾϢ\n"
+"\tļ\t\tļ\n"
#: ../gui/LnxMain.c:300
#, c-format
msgid "PCSX cannot be configured without using the GUI -- you should restart without -nogui.\n"
-msgstr "PCSX 不能在字符界面下配置 -- 请不使用 -nogui 参数重新启动程序\n"
+msgstr "PCSX ַ -- 벻ʹ -nogui \n"
#: ../gui/LnxMain.c:355
msgid "Failed loading plugins!"
-msgstr "加载插件失败!"
+msgstr "زʧ!"
#: ../gui/LnxMain.c:372
#, c-format
msgid "Could not load CD-ROM!\n"
-msgstr "无法加载光盘。\n"
+msgstr "޷ع̡\n"
#: ../gui/LnxMain.c:411
#, c-format
msgid "PSX emulator couldn't be initialized.\n"
-msgstr "无法初始化 PSX 模拟器。\n"
+msgstr "޷ʼ PSX ģ\n"
#: ../gui/Plugin.c:204
#: ../data/pcsx.glade2:1219
#, c-format
msgid "SIO IRQ Always Enabled"
-msgstr "SIO IRQ 总是启用"
+msgstr "SIO IRQ "
#: ../gui/Plugin.c:205
#, c-format
msgid "SIO IRQ Not Always Enabled"
-msgstr "SIO IRQ 不总是启用"
+msgstr "SIO IRQ "
#: ../gui/Plugin.c:211
#, c-format
msgid "Black & White Mdecs Only Enabled"
-msgstr "Black & White Mdecs Only 启用"
+msgstr "Black & White Mdecs Only "
#: ../gui/Plugin.c:212
#, c-format
msgid "Black & White Mdecs Only Disabled"
-msgstr "Black & White Mdecs Only 禁用"
+msgstr "Black & White Mdecs Only "
#: ../gui/Plugin.c:218
#, c-format
msgid "XA Enabled"
-msgstr "XA 已启用"
+msgstr "XA "
#: ../gui/Plugin.c:219
#, c-format
msgid "XA Disabled"
-msgstr "XA 已禁用"
+msgstr "XA ѽ"
#: ../gui/Plugin.c:285
msgid "Error opening CD-ROM plugin!"
-msgstr "无法打开CD-ROM 插件!"
+msgstr "޷CD-ROM !"
#: ../gui/Plugin.c:287
msgid "Error opening SPU plugin!"
-msgstr "无法打开 SPU 插件!"
+msgstr "޷ SPU !"
#: ../gui/Plugin.c:290
msgid "Error opening GPU plugin!"
-msgstr "无法打开 GPU 插件!"
+msgstr "޷ GPU !"
#: ../gui/Plugin.c:292
msgid "Error opening Controller 1 plugin!"
-msgstr "无法打开 \"控制器 1\" 插件!"
+msgstr "޷ \" 1\" !"
#: ../gui/Plugin.c:294
msgid "Error opening Controller 2 plugin!"
-msgstr "无法打开 \"控制器 2\" 插件!"
+msgstr "޷ \" 2\" !"
#: ../gui/Plugin.c:374
msgid "Error closing CD-ROM plugin!"
-msgstr "无法关闭 CD-ROM 插件!"
+msgstr "޷ر CD-ROM !"
#: ../gui/Plugin.c:376
msgid "Error closing SPU plugin!"
-msgstr "无法关闭 SPU 插件!"
+msgstr "޷ر SPU !"
#: ../gui/Plugin.c:378
msgid "Error closing Controller 1 Plugin!"
-msgstr "无法关闭 \"控制器 1\" 插件!"
+msgstr "޷ر \" 1\" !"
#: ../gui/Plugin.c:380
msgid "Error closing Controller 2 plugin!"
-msgstr "无法关闭 \"控制器 2\" 插件!"
+msgstr "޷ر \" 2\" !"
#: ../gui/Plugin.c:382
msgid "Error closing GPU plugin!"
-msgstr "无法关闭 GPU 插件!"
+msgstr "޷ر GPU !"
#: ../libpcsxcore/cdriso.c:125
#, c-format
msgid "Could not open %s.\n"
-msgstr "无法打开 %s。\n"
+msgstr "޷ %s\n"
#: ../libpcsxcore/cheat.c:335
#: ../libpcsxcore/cheat.c:454
msgid "(Untitled)"
-msgstr "(未命名)"
+msgstr "(δ)"
#: ../libpcsxcore/misc.c:372
#, c-format
msgid "Error opening file: %s"
-msgstr "打开文件错误: %s!"
+msgstr "ļ: %s!"
#: ../libpcsxcore/misc.c:390
msgid "CPE files not supported."
-msgstr "CPE 文件不被支持!"
+msgstr "CPE ļ֧!"
#: ../libpcsxcore/misc.c:394
msgid "COFF files not supported."
-msgstr "COFF 文件不被支持!"
+msgstr "COFF ļ֧!"
#: ../libpcsxcore/misc.c:398
msgid "This file does not appear to be a valid PSX file."
-msgstr "此文件不是一个合法的 PSX 文件。"
+msgstr "ļһϷ PSX ļ"
#: ../libpcsxcore/plugins.c:33
#, c-format
msgid "Error loading %s: %s"
-msgstr "无法加载 %s: %s"
+msgstr "޷ %s: %s"
#: ../libpcsxcore/plugins.c:162
#, c-format
msgid "Could not load GPU plugin %s!"
-msgstr "无法加载 GPU 插件 %s!"
+msgstr "޷ GPU %s!"
#: ../libpcsxcore/plugins.c:228
#, c-format
msgid "Could not load CD-ROM plugin %s!"
-msgstr "无法加载 CD-ROM 插件 %s!"
+msgstr "޷ CD-ROM %s!"
#: ../libpcsxcore/plugins.c:467
#, c-format
msgid "Could not load SPU plugin %s!"
-msgstr "无法加载 SPU 插件 %s!"
+msgstr "޷ SPU %s!"
#: ../libpcsxcore/plugins.c:615
#, c-format
msgid "Could not load Controller 1 plugin %s!"
-msgstr "无法加载 \"控制器1\" 插件 %s!"
+msgstr "޷ \"1\" %s!"
#: ../libpcsxcore/plugins.c:669
#, c-format
msgid "Could not load Controller 2 plugin %s!"
-msgstr "无法加载 \"控制器2\" 插件 %s!"
+msgstr "޷ \"2\" %s!"
#: ../libpcsxcore/plugins.c:712
#, c-format
msgid "Could not load NetPlay plugin %s!"
-msgstr "无法加载联网游戏插件 %s!"
+msgstr "޷Ϸ %s!"
#: ../libpcsxcore/plugins.c:775
#, c-format
msgid "Error initializing CD-ROM plugin: %d"
-msgstr "CD-ROM 插件初始化错误: %d"
+msgstr "CD-ROM ʼ: %d"
#: ../libpcsxcore/plugins.c:777
#, c-format
msgid "Error initializing GPU plugin: %d"
-msgstr "GPU 插件初始化错误: %d"
+msgstr "GPU ʼ: %d"
#: ../libpcsxcore/plugins.c:779
#, c-format
msgid "Error initializing SPU plugin: %d"
-msgstr "SPU 插件初始化错误: %d"
+msgstr "SPU ʼ: %d"
#: ../libpcsxcore/plugins.c:781
#, c-format
msgid "Error initializing Controller 1 plugin: %d"
-msgstr "\"控制器1\" 插件初始化错误: %d"
+msgstr "\"1\" ʼ: %d"
#: ../libpcsxcore/plugins.c:783
#, c-format
msgid "Error initializing Controller 2 plugin: %d"
-msgstr "\"控制器2\" 插件初始化错误: %d"
+msgstr "\"2\" ʼ: %d"
#: ../libpcsxcore/plugins.c:787
#, c-format
msgid "Error initializing NetPlay plugin: %d"
-msgstr "联网游戏插件初始化错误: %d"
+msgstr "Ϸʼ: %d"
#: ../libpcsxcore/plugins.c:790
msgid "Plugins loaded.\n"
-msgstr "插件已加载。\n"
+msgstr "Ѽء\n"
#: ../libpcsxcore/psxmem.c:69
msgid "Error allocating memory!"
-msgstr "分配内存错误!"
+msgstr "ڴ!"
#: ../libpcsxcore/psxmem.c:109
#, c-format
msgid "Could not open BIOS:\"%s\". Enabling HLE Bios!\n"
-msgstr "无法打开 BIOS: \"%s\"。使用内部 HLE Bios。\n"
+msgstr "޷ BIOS: \"%s\"ʹڲ HLE Bios\n"
#: ../libpcsxcore/r3000a.c:34
#, c-format
msgid "Running PCSX Version %s (%s).\n"
-msgstr "正在运行 PCSX 版本 %s (%s)。\n"
+msgstr " PCSX 汾 %s (%s)\n"
#: ../libpcsxcore/sio.c:99
msgid "Connection closed!\n"
-msgstr "连接被关闭!\n"
+msgstr "ӱر!\n"
#: ../libpcsxcore/sio.c:322
#, c-format
msgid "No memory card value was specified - creating a default card %s\n"
-msgstr "未指定记忆卡 - 创建一个默认的记忆卡 %s\n"
+msgstr "δָ俨 - һĬϵļ俨 %s\n"
#: ../libpcsxcore/sio.c:326
#, c-format
msgid "The memory card %s doesn't exist - creating it\n"
-msgstr "记忆卡 %s 不存在 - 正在创建\n"
+msgstr "俨 %s - ڴ\n"
#: ../libpcsxcore/sio.c:342
#, c-format
msgid "Memory card %s failed to load!\n"
-msgstr "记忆卡 %s 读取失败!\n"
+msgstr "俨 %s ȡʧ!\n"
#: ../libpcsxcore/sio.c:346
#, c-format
msgid "Loading memory card %s\n"
-msgstr "加载记忆卡 %s\n"
+msgstr "ؼ俨 %s\n"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:8
msgid "Configure X11 Video"
-msgstr "配置 X11 视频"
+msgstr " X11 Ƶ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:39
msgid "Initial Window Size:"
-msgstr "初始窗口大小:"
+msgstr "ʼڴС:"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:50
msgid "Stretching:"
-msgstr "拉抻:"
+msgstr ":"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:63
msgid "Dithering:"
-msgstr "抖动:"
+msgstr ":"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:76
msgid ""
@@ -1264,7 +1264,7 @@ msgid ""
"6: HQ2X\n"
"7: HQ3X"
msgstr ""
-"0: 无\n"
+"0: \n"
"1: 2xSai\n"
"2: 2xSuperSai\n"
"3: SuperEagle\n"
@@ -1279,54 +1279,54 @@ msgid ""
"1: Game dependant\n"
"2: Always"
msgstr ""
-"0: 关闭 (最快)\n"
-"1: 取决于游戏\n"
-"2: 总是"
+"0: ر ()\n"
+"1: ȡϷ\n"
+"2: "
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:139
msgid "Maintain 4:3 Aspect Ratio"
-msgstr "维持 4:3 宽高比"
+msgstr "ά 4:3 ߱"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:153
msgid "Toggle windowed/fullscreen mode."
-msgstr "切换窗口/全屏模式"
+msgstr "л/ȫģʽ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:154
#: ../plugins/peopsxgl/gpucfg/interface.c:321
msgid "Fullscreen"
-msgstr "全屏"
+msgstr "ȫ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:177
msgid "<b>Screen</b>"
-msgstr "<b>屏幕</b>"
+msgstr "<b>Ļ</b>"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:203
msgid "Toggle whether the FPS will be shown."
-msgstr "切换 FPS (每秒帧数) 是否将被显示。"
+msgstr "л FPS (ÿ֡) Ƿ񽫱ʾ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:204
msgid "Show FPS"
-msgstr "显示 FPS"
+msgstr "ʾ FPS"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:218
msgid "Enable this if games display too quickly."
-msgstr "如果游戏运行得过快,请启用此项。"
+msgstr "Ϸеù죬ô"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:219
msgid "Autodetect FPS limit"
-msgstr "自动检测 FPS 界限"
+msgstr "Զ FPS "
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:235
msgid "Skip frames when rendering."
-msgstr "渲染时跳帧。"
+msgstr "Ⱦʱ֡"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:236
msgid "Enable frame skipping"
-msgstr "启用跳帧"
+msgstr "֡"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:257
msgid "Set FPS"
-msgstr "设置 FPS"
+msgstr " FPS"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:272
msgid "200.0"
@@ -1334,48 +1334,48 @@ msgstr "200.0"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:295
msgid "<b>Framerate</b>"
-msgstr "<b>帧率</b>"
+msgstr "<b>֡</b>"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:324
#: ../plugins/peopsxgl/gpucfg/interface.c:567
msgid "Use game fixes"
-msgstr "使用特定游戏修正"
+msgstr "ʹضϷ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:348
msgid "better g-colors, worse textures"
-msgstr "较好的 g-colors, 较差的纹理"
+msgstr "Ϻõ g-colors, ϲ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:363
msgid "Needed by Dark Forces"
-msgstr "Dark Forces 运行需要"
+msgstr "Dark Forces Ҫ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:378
msgid "Draw quads with triangles"
-msgstr "使用 quad 绘制三角形"
+msgstr "ʹ quad "
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:394
msgid "Repeated flat tex triangles"
-msgstr "重复平滑多边形纹理"
+msgstr "ظƽ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:410
msgid "Disable CPU Saving"
-msgstr "禁用 CPU 保存"
+msgstr " CPU "
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:426
msgid "Odd/even bit hack"
-msgstr "奇/偶位 hack"
+msgstr "/żλ hack"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:440
msgid "For precise framerate"
-msgstr "精确帧率"
+msgstr "ȷ֡"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:455
msgid "Better FPS limit in some"
-msgstr "某些游戏中可取得较好的 FPS 界限值"
+msgstr "ijЩϷпȡýϺõ FPS ֵ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:470
msgid "PC FPS calculation"
-msgstr "PC FPS 计算"
+msgstr "PC FPS "
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:486
msgid "Pandemonium 2"
@@ -1383,28 +1383,28 @@ msgstr "Pandemonium 2"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:501
msgid "Lazy screen update"
-msgstr "懒惰的屏幕更新"
+msgstr "Ļ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:517
msgid "Skip every second frame"
-msgstr "每两帧跳过一帧"
+msgstr "ÿ֡һ֡"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:532
#: ../plugins/peopsxgl/gpucfg/interface.c:639
msgid "Old frame skipping"
-msgstr "旧的跳帧方式"
+msgstr "ɵ֡ʽ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:548
msgid "Expand screen width"
-msgstr "扩展屏幕宽度"
+msgstr "չĻ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:564
msgid "Ignore brightness color"
-msgstr "忽略亮色"
+msgstr "ɫ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:580
msgid "Disable coordinate check"
-msgstr "禁用坐标检查"
+msgstr ""
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:596
msgid "Chrono Cross"
@@ -1412,34 +1412,34 @@ msgstr "Chrono Cross"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:609
msgid "Capcom fighting games"
-msgstr "Capcom 格斗游戏"
+msgstr "Capcom Ϸ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:624
msgid "Black screens in Lunar"
-msgstr "Lunar 中黑屏"
+msgstr "Lunar к"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:639
msgid "Compatibility mode"
-msgstr "兼容模式"
+msgstr "ģʽ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:664
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:428
msgid "<b>Compatibility</b>"
-msgstr "<b>兼容性</b>"
+msgstr "<b></b>"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:701
msgid "About X11 Video Plugin"
-msgstr "关于 X11 视频插件"
+msgstr " X11 Ƶ"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:714
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:516
msgid "Coded by: Pete Bernert and the P.E.Op.S. team"
-msgstr "编写: Pete Bernert 以及 P.E.Op.S. 开发组"
+msgstr "д: Pete Bernert Լ P.E.Op.S. "
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:725
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:541
msgid "Homepage: http://home.t-online.de/home/PeteBernert/"
-msgstr "主页: http://home.t-online.de/home/PeteBernert/"
+msgstr "ҳ: http://home.t-online.de/home/PeteBernert/"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:737
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:566
@@ -1448,19 +1448,19 @@ msgstr "EMail: BlackDove@addcom.de"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:750
msgid "Version: 1.15"
-msgstr "版本: 1.15"
+msgstr "汾: 1.15"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:762
msgid "Release date: 2003"
-msgstr "发布日期: 2003"
+msgstr ": 2003"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:774
msgid "<b>PCSX-df Video Plugin Adaption</b>"
-msgstr "<b>PCSX-df 视频插件</b>"
+msgstr "<b>PCSX-df Ƶ</b>"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:787
msgid "XVideo Support: Stephen Chao"
-msgstr "XVideo 支持: Stephen Chao"
+msgstr "XVideo ֧: Stephen Chao"
#: ../data/pcsx.glade2:9
msgid "PCSX"
@@ -1468,89 +1468,89 @@ msgstr "PCSX"
#: ../data/pcsx.glade2:23
msgid "_File"
-msgstr "文件(_F)"
+msgstr "ļ(_F)"
#: ../data/pcsx.glade2:30
msgid "Run _CD"
-msgstr "运行光盘(_C)"
+msgstr "й(_C)"
#: ../data/pcsx.glade2:46
msgid "Run _ISO"
-msgstr "运行 _ISO"
+msgstr " _ISO"
#: ../data/pcsx.glade2:62
msgid "Run _BIOS"
-msgstr "运行 _BIOS"
+msgstr " _BIOS"
#: ../data/pcsx.glade2:78
msgid "Run _EXE"
-msgstr "运行 _EXE"
+msgstr " _EXE"
#: ../data/pcsx.glade2:99
msgid "E_xit"
-msgstr "退出(_X)"
+msgstr "˳(_X)"
#: ../data/pcsx.glade2:119
msgid "_Emulator"
-msgstr "模拟器(_E)"
+msgstr "ģ(_E)"
#: ../data/pcsx.glade2:126
msgid "_Continue"
-msgstr "继续(_C)"
+msgstr "(_C)"
#: ../data/pcsx.glade2:141
msgid "_Reset"
-msgstr "复位(_R)"
+msgstr "λ(_R)"
#: ../data/pcsx.glade2:161
msgid "_Switch ISO"
-msgstr "更换 ISO(_S)"
+msgstr " ISO(_S)"
#: ../data/pcsx.glade2:182
msgid "_Save State"
-msgstr "即时存档(_S)"
+msgstr "ʱ浵(_S)"
#: ../data/pcsx.glade2:189
#: ../data/pcsx.glade2:268
msgid "Slot _1"
-msgstr "存档 _1"
+msgstr "浵 _1"
#: ../data/pcsx.glade2:198
#: ../data/pcsx.glade2:277
msgid "Slot _2"
-msgstr "存档 _2"
+msgstr "浵 _2"
#: ../data/pcsx.glade2:207
#: ../data/pcsx.glade2:286
msgid "Slot _3"
-msgstr "存档 _3"
+msgstr "浵 _3"
#: ../data/pcsx.glade2:216
#: ../data/pcsx.glade2:295
msgid "Slot _4"
-msgstr "存档 _4"
+msgstr "浵 _4"
#: ../data/pcsx.glade2:225
#: ../data/pcsx.glade2:304
msgid "Slot _5"
-msgstr "存档 _5"
+msgstr "浵 _5"
#: ../data/pcsx.glade2:234
#: ../data/pcsx.glade2:313
msgid "_Other..."
-msgstr "其它(_O)..."
+msgstr "(_O)..."
#: ../data/pcsx.glade2:261
msgid "_Load State"
-msgstr "即时读档(_L)"
+msgstr "ʱ(_L)"
#: ../data/pcsx.glade2:344
msgid "_Configuration"
-msgstr "配置(_C)"
+msgstr "(_C)"
#: ../data/pcsx.glade2:351
msgid "_Plugins & BIOS"
-msgstr "插件及 BIOS(_P)"
+msgstr " BIOS(_P)"
#: ../data/pcsx.glade2:372
msgid "_CPU"
@@ -1558,55 +1558,55 @@ msgstr "_CPU"
#: ../data/pcsx.glade2:387
msgid "_Memory Cards"
-msgstr "记忆卡(_M)"
+msgstr "俨(_M)"
#: ../data/pcsx.glade2:403
msgid "_Netplay"
-msgstr "联网游戏(_N)"
+msgstr "Ϸ(_N)"
#: ../data/pcsx.glade2:423
msgid "Chea_t"
-msgstr "作弊码(_T)"
+msgstr "(_T)"
#: ../data/pcsx.glade2:431
msgid "_Browse"
-msgstr "浏览(_B)"
+msgstr "(_B)"
#: ../data/pcsx.glade2:445
msgid "_Search"
-msgstr "查找(_S)"
+msgstr "(_S)"
#: ../data/pcsx.glade2:474
msgid "_Help"
-msgstr "帮助(_H)"
+msgstr "(_H)"
#: ../data/pcsx.glade2:481
msgid "_About PCSX"
-msgstr "关于 PCSX(_A)"
+msgstr " PCSX(_A)"
#: ../data/pcsx.glade2:617
msgid "Select Folder to Search"
-msgstr "选择要查找的文件夹"
+msgstr "ѡҪҵļ"
#: ../data/pcsx.glade2:633
msgid "Search in:"
-msgstr "在此处查找插件:"
+msgstr "ڴ˴Ҳ:"
#: ../data/pcsx.glade2:906
msgid "Graphics:"
-msgstr "图像:"
+msgstr "ͼ:"
#: ../data/pcsx.glade2:919
msgid "Sound:"
-msgstr "声音:"
+msgstr ":"
#: ../data/pcsx.glade2:934
msgid "Controller 1: "
-msgstr "控制器 1:"
+msgstr " 1:"
#: ../data/pcsx.glade2:949
msgid "Controller 2:"
-msgstr "控制器 2:"
+msgstr " 2:"
#: ../data/pcsx.glade2:964
msgid "CD-ROM:"
@@ -1614,7 +1614,7 @@ msgstr "CD-ROM:"
#: ../data/pcsx.glade2:1002
msgid "<b>Plugins</b>"
-msgstr "<b>插件</b>"
+msgstr "<b></b>"
#: ../data/pcsx.glade2:1061
msgid "<b>BIOS</b>"
@@ -1622,35 +1622,35 @@ msgstr "<b>BIOS</b>"
#: ../data/pcsx.glade2:1106
msgid "Configure CPU"
-msgstr "配置 CPU"
+msgstr " CPU"
#: ../data/pcsx.glade2:1133
msgid "Enable Debugger"
-msgstr "启用调试器"
+msgstr "õ"
#: ../data/pcsx.glade2:1151
msgid "SPU IRQ Always Enabled"
-msgstr "SPU IRQ 总是启用"
+msgstr "SPU IRQ "
#: ../data/pcsx.glade2:1167
msgid "Black & White Movies"
-msgstr "黑白电影"
+msgstr "ڰ׵Ӱ"
#: ../data/pcsx.glade2:1201
msgid "Enable Interpreter CPU"
-msgstr "启用解释执行 CPU"
+msgstr "ýִ CPU"
#: ../data/pcsx.glade2:1235
msgid "Disable CD Audio"
-msgstr "禁用 CD 音频"
+msgstr " CD Ƶ"
#: ../data/pcsx.glade2:1251
msgid "Disable XA Decoding"
-msgstr "禁用 XA 解码"
+msgstr " XA "
#: ../data/pcsx.glade2:1298
msgid "<b>Options</b>"
-msgstr "<b>选项</b>"
+msgstr "<b>ѡ</b>"
#: ../data/pcsx.glade2:1335
msgid ""
@@ -1662,47 +1662,47 @@ msgstr ""
#: ../data/pcsx.glade2:1349
msgid "<b>System Type</b>"
-msgstr "<b>系统类型</b>"
+msgstr "<b>ϵͳ</b>"
#: ../data/pcsx.glade2:1391
msgid "Configure NetPlay"
-msgstr "配置联网游戏"
+msgstr "Ϸ"
#: ../data/pcsx.glade2:1473
msgid "<b>NetPlay</b>"
-msgstr "<b>联网游戏</b>"
+msgstr "<b>Ϸ</b>"
#: ../data/pcsx.glade2:1517
msgid "Configure Memory Cards"
-msgstr "配置记忆卡"
+msgstr "ü俨"
#: ../data/pcsx.glade2:1587
#: ../data/pcsx.glade2:1951
msgid "Format"
-msgstr "格式化"
+msgstr "ʽ"
#: ../data/pcsx.glade2:1631
#: ../data/pcsx.glade2:1995
msgid "Reload"
-msgstr "重新加载"
+msgstr "¼"
#: ../data/pcsx.glade2:1673
msgid "<b>Memory Card 1</b>"
-msgstr "<b>记忆卡 1</b>"
+msgstr "<b>俨 1</b>"
#: ../data/pcsx.glade2:1728
#: ../data/pcsx.glade2:1772
msgid "Copy"
-msgstr "复制"
+msgstr ""
#: ../data/pcsx.glade2:1819
#: ../data/pcsx.glade2:1866
msgid "Un/Delete"
-msgstr "删除/恢复"
+msgstr "ɾ/ָ"
#: ../data/pcsx.glade2:2037
msgid "<b>Memory Card 2</b>"
-msgstr "<b>记忆卡 2</b>"
+msgstr "<b>俨 2</b>"
#: ../data/pcsx.glade2:2091
msgid ""
@@ -1711,14 +1711,14 @@ msgid ""
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
msgstr ""
-"(C) 1999-2003 PCSX 开发组\n"
+"(C) 1999-2003 PCSX \n"
"(C) 2005-2006 Ryan Schultz\n"
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
#: ../data/pcsx.glade2:2095
msgid "A PlayStation emulator."
-msgstr "一个 PlayStation 模拟器。"
+msgstr "һ PlayStation ģ"
#: ../data/pcsx.glade2:2097
msgid "PCSX Reloaded"
@@ -1750,11 +1750,11 @@ msgstr "Wei Mingzhi <whistler@openoffice.org>"
#: ../data/pcsx.glade2:2148
msgid "Edit Cheat Codes"
-msgstr "编辑作弊码"
+msgstr "༭"
#: ../data/pcsx.glade2:2185
msgid "<b>Cheat Codes</b>"
-msgstr "<b>作弊码</b>"
+msgstr "<b></b>"
#: ../data/pcsx.glade2:2203
msgid "gtk-add"
@@ -1770,7 +1770,7 @@ msgstr "gtk-delete"
#: ../data/pcsx.glade2:2285
msgid "Disable"
-msgstr "禁用"
+msgstr ""
#: ../data/pcsx.glade2:2303
msgid "gtk-open"
@@ -1794,28 +1794,28 @@ msgid ""
"Signed 16-bit\n"
"Signed 32-bit"
msgstr ""
-"无符号 8 位\n"
-"无符号 16 位\n"
-"无符号 32 位\n"
-"有符号 8 位\n"
-"有符号 16 位\n"
-"有符号 32 位"
+"޷ 8 λ\n"
+"޷ 16 λ\n"
+"޷ 32 λ\n"
+"з 8 λ\n"
+"з 16 λ\n"
+"з 32 λ"
#: ../data/pcsx.glade2:2415
msgid "Search For:"
-msgstr "查找:"
+msgstr ":"
#: ../data/pcsx.glade2:2425
msgid "Data Type:"
-msgstr "数据类型:"
+msgstr ":"
#: ../data/pcsx.glade2:2437
msgid "Value:"
-msgstr "值:"
+msgstr "ֵ:"
#: ../data/pcsx.glade2:2449
msgid "Data Base:"
-msgstr "数据基:"
+msgstr "ݻ:"
#: ../data/pcsx.glade2:2463
msgid ""
@@ -1823,17 +1823,17 @@ msgid ""
"Not Equal Value\n"
"Range"
msgstr ""
-"等于数值\n"
-"不等于数值\n"
-"范围"
+"ֵ\n"
+"ֵ\n"
+"Χ"
#: ../data/pcsx.glade2:2489
msgid ""
"Decimal\n"
"Hexadecimal"
msgstr ""
-"十进制\n"
-"十六进制"
+"ʮ\n"
+"ʮ"
#: ../data/pcsx.glade2:2504
msgid "Big-Endian"
@@ -1841,7 +1841,7 @@ msgstr "Big-Endian"
#: ../data/pcsx.glade2:2517
msgid "To:"
-msgstr "到:"
+msgstr ":"
#: ../data/pcsx.glade2:2589
#: ../data/pcsx.glade2:2618
@@ -1855,31 +1855,31 @@ msgstr "label_resultsfound"
#: ../data/pcsx.glade2:2712
msgid "Search"
-msgstr "查找"
+msgstr ""
#: ../data/pcsx.glade2:2741
msgid "Restart"
-msgstr "复位"
+msgstr "λ"
#: ../data/pcsx.glade2:2768
msgid "<b>Cheat Search</b>"
-msgstr "<b>作弊码查找</b>"
+msgstr "<b></b>"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:9
msgid "Configure Sound"
-msgstr "配置音频"
+msgstr "Ƶ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:62
msgid "Volume:"
-msgstr "音量:"
+msgstr ":"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:90
msgid "Interpolation:"
-msgstr "插值:"
+msgstr "ֵ:"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:118
msgid "Reverb:"
-msgstr "回响:"
+msgstr ":"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:146
msgid ""
@@ -1888,10 +1888,10 @@ msgid ""
"Loud\n"
"Loudest"
msgstr ""
-"低\n"
-"中\n"
-"高\n"
-"最高"
+"\n"
+"\n"
+"\n"
+""
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:165
msgid ""
@@ -1899,8 +1899,8 @@ msgid ""
"Simple\n"
"Playstation"
msgstr ""
-"关\n"
-"简易\n"
+"\n"
+"\n"
"Playstation"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:184
@@ -1910,221 +1910,221 @@ msgid ""
"Gaussian\n"
"Cubic"
msgstr ""
-"无\n"
-"简易\n"
-"高斯\n"
-"立方"
+"\n"
+"\n"
+"˹\n"
+""
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:208
msgid "<b>General</b>"
-msgstr "<b>一般</b>"
+msgstr "<b>һ</b>"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:264
msgid "Enable or disable XA music."
-msgstr "启用或禁用 XA 音乐。"
+msgstr "û XA ֡"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:266
msgid "Enable XA"
-msgstr "启用 XA"
+msgstr " XA"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:284
msgid "Choose this if XA music is played too quickly."
-msgstr "如 XA 音乐播放得太快,请选择此项。"
+msgstr " XA ֲŵ̫죬ѡ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:286
msgid "Adjust XA speed"
-msgstr "调整 XA 速度"
+msgstr " XA ٶ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:308
msgid "<b>XA Music</b>"
-msgstr "<b>XA 音乐</b>"
+msgstr "<b>XA </b>"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:364
msgid "Use the asynchronous SPU interface."
-msgstr "使用异步 SPU 接口。"
+msgstr "ʹ첽 SPU ӿڡ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:366
msgid "High compatibility mode"
-msgstr "高兼容性模式"
+msgstr "߼ģʽ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:384
msgid "Wait for CPU; only useful for some games."
-msgstr "等待 CPU; 仅在部分游戏中有用处。"
+msgstr "ȴ CPU; ڲϷô"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:386
msgid "SPU IRQ Wait"
-msgstr "SPU IRQ 等待"
+msgstr "SPU IRQ ȴ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:404
msgid "Play only one channel for a performance boost."
-msgstr "仅播放一个声道以提升性能。"
+msgstr "һܡ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:406
msgid "Single channel sound"
-msgstr "单声道"
+msgstr ""
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:486
msgid "About Sound Plugin"
-msgstr "关于音频插件"
+msgstr "Ƶ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:592
msgid "Version: 1.6"
-msgstr "版本: 1.6"
+msgstr "汾: 1.6"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:617
msgid "Release date: 05.04.2003"
-msgstr "发布日期: 05.04.2003"
+msgstr ": 05.04.2003"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:642
msgid "<b>PCSX-df Sound Plugin Adaption</b>"
-msgstr "<b>PCSX-df 音频插件</b>"
+msgstr "<b>PCSX-df Ƶ</b>"
#: ../plugins/dfcdrom/interface.c:73
msgid "CDR configuration"
-msgstr "CDR 配置"
+msgstr "CDR "
#: ../plugins/dfcdrom/interface.c:98
msgid "Choose your CD-ROM device or type its path if it's not listed"
-msgstr "请选择您的 CD-ROM 设备或直接输入设备路径"
+msgstr "ѡ CD-ROM 豸ֱ豸·"
#: ../plugins/dfcdrom/interface.c:101
msgid "Select CD-ROM device"
-msgstr "选择 CD-ROM 设备"
+msgstr "ѡ CD-ROM 豸"
#: ../plugins/dfcdrom/interface.c:119
msgid "Select read mode:"
-msgstr "选择读取模式:"
+msgstr "ѡȡģʽ:"
#: ../plugins/dfcdrom/interface.c:132
msgid "Normal (No Cache)"
-msgstr "正常 (无缓存)"
+msgstr " (޻)"
#: ../plugins/dfcdrom/interface.c:136
msgid "Threaded - Faster (With Cache)"
-msgstr "多线程 - 较快 (使用缓存)"
+msgstr "߳ - Ͽ (ʹû)"
#: ../plugins/dfcdrom/interface.c:151
msgid "Cache Size (Def. 64): "
-msgstr "缓存大小 (默认为 64):"
+msgstr "С (ĬΪ 64):"
#: ../plugins/dfcdrom/interface.c:172
msgid "Cdrom Speed (Def. 0 = MAX): "
-msgstr "光驱速度 (默认 0 为最大速度):"
+msgstr "ٶ (Ĭ 0 Ϊٶ):"
#: ../plugins/dfcdrom/interface.c:188
msgid "Enable Subchannel read"
-msgstr "启用子通道读取"
+msgstr "ͨȡ"
#: ../plugins/peopsxgl/gpucfg/interface.c:117
msgid "OpenGL Driver configuration"
-msgstr "OpenGL 驱动程序配置"
+msgstr "OpenGL "
#: ../plugins/peopsxgl/gpucfg/interface.c:137
msgid "Textures"
-msgstr "纹理"
+msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:160
msgid "Quality:"
-msgstr "质量:"
+msgstr ":"
#: ../plugins/peopsxgl/gpucfg/interface.c:177
#: ../plugins/peopsxgl/gpucfg/interface.c:190
msgid "0: don't care - Use driver's default textures"
-msgstr "0: 使用驱动程序的默认纹理"
+msgstr "0: ʹĬ"
#: ../plugins/peopsxgl/gpucfg/interface.c:178
msgid "1: 4444 - Fast, but less colorful"
-msgstr "1: 4444 - 较快,较少颜色"
+msgstr "1: 4444 - Ͽ죬ɫ"
#: ../plugins/peopsxgl/gpucfg/interface.c:179
msgid "2: 5551 - Nice colors, bad transparency"
-msgstr "2: 5551 - 较好的颜色,较差的透明效果"
+msgstr "2: 5551 - Ϻõɫϲ͸Ч"
#: ../plugins/peopsxgl/gpucfg/interface.c:180
msgid "3: 8888 - Best colors, more ram needed"
-msgstr "3: 8888 - 最佳的颜色,需更多内存"
+msgstr "3: 8888 - ѵɫڴ"
#: ../plugins/peopsxgl/gpucfg/interface.c:181
msgid "4: BGR8888 - Faster on some cards"
-msgstr "4: BGR8888 - 某些显卡较快"
+msgstr "4: BGR8888 - ijЩԿϿ"
#: ../plugins/peopsxgl/gpucfg/interface.c:192
msgid "VRam size in MBytes (0..1024, 0=auto):"
-msgstr "显存大小,以 MB 为单位 (0..1024, 0=自动):"
+msgstr "ԴС MB Ϊλ (0..1024, 0=Զ):"
#: ../plugins/peopsxgl/gpucfg/interface.c:209
#: ../plugins/peopsxgl/gpucfg/interface.c:224
msgid "0: None"
-msgstr "0: 无"
+msgstr "0: "
#: ../plugins/peopsxgl/gpucfg/interface.c:210
msgid "1: Standard - Glitches will happen"
-msgstr "1: 标准 - 可能会发生问题"
+msgstr "1: ׼ - ܻᷢ"
#: ../plugins/peopsxgl/gpucfg/interface.c:211
msgid "2: Extended - No black borders"
-msgstr "2: 增强 - 去除黑框"
+msgstr "2: ǿ - ȥڿ"
#: ../plugins/peopsxgl/gpucfg/interface.c:212
msgid "3: Standard without sprites - unfiltered 2D"
-msgstr "3: 标准,不含贴图 - 未过滤的 2D"
+msgstr "3: ׼ͼ - δ˵ 2D"
#: ../plugins/peopsxgl/gpucfg/interface.c:213
msgid "4: Extended without sprites - unfiltered 2D"
-msgstr "4: 增强,不含贴图 - 未过滤的 2D"
+msgstr "4: ǿͼ - δ˵ 2D"
#: ../plugins/peopsxgl/gpucfg/interface.c:214
msgid "5: Standard + smoothed sprites"
-msgstr "5: 标准 + 平滑贴图"
+msgstr "5: ׼ + ƽͼ"
#: ../plugins/peopsxgl/gpucfg/interface.c:215
msgid "6: Extended + smoothed sprites"
-msgstr "6: 增强 + 平滑贴图"
+msgstr "6: ǿ + ƽͼ"
#: ../plugins/peopsxgl/gpucfg/interface.c:226
msgid "Filtering:"
-msgstr "过滤:"
+msgstr ":"
#: ../plugins/peopsxgl/gpucfg/interface.c:234
msgid "HiRes Tex:"
-msgstr "高分纹理:"
+msgstr "߷:"
#: ../plugins/peopsxgl/gpucfg/interface.c:251
#: ../plugins/peopsxgl/gpucfg/interface.c:262
msgid "0: None (standard)"
-msgstr "0: 无 (标准)"
+msgstr "0: (׼)"
#: ../plugins/peopsxgl/gpucfg/interface.c:252
msgid "1: 2xSaI (much vram needed)"
-msgstr "1: 2xSaI (需较多显存)"
+msgstr "1: 2xSaI (϶Դ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:253
msgid "2: Scaled (needs tex filtering)"
-msgstr "2: 拉伸 (需要纹理过滤)"
+msgstr "2: (Ҫ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:264
msgid "Window options"
-msgstr "窗口选项"
+msgstr "ѡ"
#: ../plugins/peopsxgl/gpucfg/interface.c:295
msgid "Width:"
-msgstr "宽度:"
+msgstr ":"
#: ../plugins/peopsxgl/gpucfg/interface.c:304
msgid "Height:"
-msgstr "高度"
+msgstr "߶"
#: ../plugins/peopsxgl/gpucfg/interface.c:313
msgid "Keep psx aspect ratio"
-msgstr "保持 psx 纵横比"
+msgstr " psx ݺ"
#: ../plugins/peopsxgl/gpucfg/interface.c:329
msgid "Dithering"
-msgstr "抖动"
+msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:345
msgid "Framerate"
-msgstr "帧率"
+msgstr "֡"
#: ../plugins/peopsxgl/gpucfg/interface.c:368
msgid "FPS"
@@ -2132,226 +2132,226 @@ msgstr "FPS"
#: ../plugins/peopsxgl/gpucfg/interface.c:376
msgid "FPS limit manual"
-msgstr "手动设置 FPS 界限"
+msgstr "ֶ FPS "
#: ../plugins/peopsxgl/gpucfg/interface.c:385
msgid "Show FPS display on startup"
-msgstr "启动时显示 FPS"
+msgstr "ʱʾ FPS"
#: ../plugins/peopsxgl/gpucfg/interface.c:393
msgid "Use FPS limit"
-msgstr "启用 FPS 界限"
+msgstr " FPS "
#: ../plugins/peopsxgl/gpucfg/interface.c:401
msgid "FPS limit auto-detection"
-msgstr "FPS 界限自动检测"
+msgstr "FPS Զ"
#: ../plugins/peopsxgl/gpucfg/interface.c:410
msgid "Use Frame skipping"
-msgstr "启用跳帧"
+msgstr "֡"
#: ../plugins/peopsxgl/gpucfg/interface.c:418
msgid "Compatibility"
-msgstr "兼容性"
+msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:433
msgid "Advanced blending (Accurate psx color emulation)"
-msgstr "高级混合 (精确的 psx 色彩模拟)"
+msgstr "߼ (ȷ psx ɫģ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:441
msgid "Framebuffer textures:"
-msgstr "帧缓冲纹理:"
+msgstr "֡:"
#: ../plugins/peopsxgl/gpucfg/interface.c:449
msgid "Offscreen Drawing:"
-msgstr "离屏描绘:"
+msgstr ":"
#: ../plugins/peopsxgl/gpucfg/interface.c:457
msgid "Framebuffer access:"
-msgstr "帧缓冲访问:"
+msgstr "֡:"
#: ../plugins/peopsxgl/gpucfg/interface.c:465
msgid "Alpha Multipass (correct opaque texture areas)"
-msgstr "半透明多通道 (更正不透明的纹理区域)"
+msgstr "͸ͨ (͸)"
#: ../plugins/peopsxgl/gpucfg/interface.c:473
msgid "Mask bit detection (needed by a few games, zbuffer)"
-msgstr "屏蔽位检测 (某些游戏需要)"
+msgstr "λ (ijЩϷҪ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:490
#: ../plugins/peopsxgl/gpucfg/interface.c:503
msgid "0: None - Fastest, most glitches"
-msgstr "0: 无 - 最快,问题较多"
+msgstr "0: - 죬϶"
#: ../plugins/peopsxgl/gpucfg/interface.c:491
msgid "1: Minimum - Missing screens"
-msgstr "1: 最小 - 丢失屏幕元素"
+msgstr "1: С - ʧĻԪ"
#: ../plugins/peopsxgl/gpucfg/interface.c:492
msgid "2: Standard - OK for most games"
-msgstr "2: 标准 - 大多数游戏运行良好"
+msgstr "2: ׼ - Ϸ"
#: ../plugins/peopsxgl/gpucfg/interface.c:493
msgid "3: Enhanced - Shows more stuff"
-msgstr "3: 增强 - 显示更多的东西"
+msgstr "3: ǿ - ʾĶ"
#: ../plugins/peopsxgl/gpucfg/interface.c:494
msgid "4: Extended - Causing garbage"
-msgstr "4: 增强 - 可能导致错误"
+msgstr "4: ǿ - ܵ´"
#: ../plugins/peopsxgl/gpucfg/interface.c:514
#: ../plugins/peopsxgl/gpucfg/interface.c:526
msgid "0: Emulated vram - Needs FVP"
-msgstr "0: 模拟 vram - 需 FVP"
+msgstr "0: ģ vram - FVP"
#: ../plugins/peopsxgl/gpucfg/interface.c:515
msgid "1: Black - Fast, no effects"
-msgstr "1: 黑色 - 快,无特效"
+msgstr "1: ɫ - 죬Ч"
#: ../plugins/peopsxgl/gpucfg/interface.c:516
msgid "2: Gfx card buffer - Can be slow"
-msgstr "2: Gfx 卡缓存 - 可能较慢"
+msgstr "2: Gfx - ܽ"
#: ../plugins/peopsxgl/gpucfg/interface.c:517
msgid "3: Gfx card & soft - slow"
-msgstr "3: Gfx 卡缓存与软件 - 较慢"
+msgstr "3: Gfx - "
#: ../plugins/peopsxgl/gpucfg/interface.c:537
#: ../plugins/peopsxgl/gpucfg/interface.c:550
msgid "0: Emulated vram - ok most times"
-msgstr "0: 模拟 vram - 大多数情况运行良好"
+msgstr "0: ģ vram - "
#: ../plugins/peopsxgl/gpucfg/interface.c:538
msgid "1: Gfx card buffer reads"
-msgstr "1: Gfx 卡缓存读取"
+msgstr "1: Gfx ȡ"
#: ../plugins/peopsxgl/gpucfg/interface.c:539
msgid "2: Gfx card buffer moves"
-msgstr "2: Gfx 卡缓存移动"
+msgstr "2: Gfx ƶ"
#: ../plugins/peopsxgl/gpucfg/interface.c:540
msgid "3: Gfx buffer reads & moves"
-msgstr "3: Gfx 卡缓存读取与移动"
+msgstr "3: Gfx ȡƶ"
#: ../plugins/peopsxgl/gpucfg/interface.c:541
msgid "4: Full Software (FVP)"
-msgstr "4: 纯软件 (FVP)"
+msgstr "4: (FVP)"
#: ../plugins/peopsxgl/gpucfg/interface.c:552
msgid "Special game fixes"
-msgstr "特定游戏修正"
+msgstr "ضϷ"
#: ../plugins/peopsxgl/gpucfg/interface.c:575
msgid "Battle cursor (FF7)"
-msgstr "战斗光标 (FF7)"
+msgstr "ս (FF7)"
#: ../plugins/peopsxgl/gpucfg/interface.c:583
msgid "Direct FB updates"
-msgstr "直接 FB 更新"
+msgstr "ֱ FB "
#: ../plugins/peopsxgl/gpucfg/interface.c:591
msgid "Black brightness (Lunar)"
-msgstr "黑色亮度 (Lunar)"
+msgstr "ɫ (Lunar)"
#: ../plugins/peopsxgl/gpucfg/interface.c:599
msgid "Swap front detection"
-msgstr "Swap front 检测"
+msgstr "Swap front "
#: ../plugins/peopsxgl/gpucfg/interface.c:607
msgid "Disable coord check"
-msgstr "禁用坐标检查"
+msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:615
msgid "No blue glitches (LoD)"
-msgstr "去除蓝色干扰 (LoD)"
+msgstr "ȥɫ (LoD)"
#: ../plugins/peopsxgl/gpucfg/interface.c:623
msgid "Soft FB access"
-msgstr "软件 FB 访问"
+msgstr " FB "
#: ../plugins/peopsxgl/gpucfg/interface.c:631
msgid "PC fps calculation"
-msgstr "PC FPS 计算"
+msgstr "PC FPS "
#: ../plugins/peopsxgl/gpucfg/interface.c:647
msgid "Yellow rect (FF9)"
-msgstr "黄色方块 (FF9)"
+msgstr "ɫ (FF9)"
#: ../plugins/peopsxgl/gpucfg/interface.c:655
msgid "No subtr. blending"
-msgstr "无 subtr. 混合"
+msgstr " subtr. "
#: ../plugins/peopsxgl/gpucfg/interface.c:663
msgid "Lazy upload (DW7)"
-msgstr "懒惰上传 (DW7)"
+msgstr "ϴ (DW7)"
#: ../plugins/peopsxgl/gpucfg/interface.c:671
msgid "Odd/even hack"
-msgstr "奇/偶位 hack"
+msgstr "/żλ hack"
#: ../plugins/peopsxgl/gpucfg/interface.c:679
msgid "Adjust screen width"
-msgstr "调整屏幕宽度"
+msgstr "Ļ"
#: ../plugins/peopsxgl/gpucfg/interface.c:687
msgid "Old texture filtering"
-msgstr "旧的纹理过滤"
+msgstr "ɵ"
#: ../plugins/peopsxgl/gpucfg/interface.c:695
msgid "Additional uploads"
-msgstr "附加上传"
+msgstr "ϴ"
#: ../plugins/peopsxgl/gpucfg/interface.c:703
msgid "unused"
-msgstr "未使用"
+msgstr "δʹ"
#: ../plugins/peopsxgl/gpucfg/interface.c:711
msgid "Fake 'gpu busy'"
-msgstr "欺骗 'gpu 忙' 状态"
+msgstr "ƭ 'gpu æ' ״̬"
#: ../plugins/peopsxgl/gpucfg/interface.c:719
msgid "Misc"
-msgstr "杂项"
+msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:742
msgid "Scanlines"
-msgstr "扫描线"
+msgstr "ɨ"
#: ../plugins/peopsxgl/gpucfg/interface.c:750
msgid "Blending (0..255, -1=dot):"
-msgstr "混合 (0..255, -1=点阵):"
+msgstr " (0..255, -1=):"
#: ../plugins/peopsxgl/gpucfg/interface.c:758
msgid "Screen smoothing (can be slow or unsupported)"
-msgstr "屏幕平滑 (可能较慢或不被支持)"
+msgstr "Ļƽ (ܽ򲻱֧)"
#: ../plugins/peopsxgl/gpucfg/interface.c:766
msgid "Use OpenGL extensions (recommended)"
-msgstr "使用 OpenGL 扩展 (推荐)"
+msgstr "ʹ OpenGL չ (Ƽ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:774
msgid "Polygon anti-aliasing (slow with most cards)"
-msgstr "多边形抗锯齿 (对大多数显卡较慢)"
+msgstr "ο (ԴԿ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:782
msgid "Line mode (polygons will not get filled)"
-msgstr "框架模式 (不填充多边形)"
+msgstr "ģʽ ()"
#: ../plugins/peopsxgl/gpucfg/interface.c:790
msgid "Force 15 bit framebuffer updates (faster movies)"
-msgstr "强制 15 位帧缓冲更新 (影片较快)"
+msgstr "ǿ 15 λ֡ (ӰƬϿ)"
#: ../plugins/peopsxgl/gpucfg/interface.c:798
msgid "Unfiltered MDECs (small movie speedup)"
-msgstr "非过滤 MDEC (微小的影片加速)"
+msgstr "ǹ MDEC (΢СӰƬ)"
#: ../plugins/dfinput/dfinput.glade2:7
msgid "Configure Gamepad/Keyboard"
-msgstr "配置手柄/键盘"
+msgstr "ֱ/"
#: ../plugins/dfinput/dfinput.glade2:25
msgid "Pad number:"
-msgstr "手柄编号:"
+msgstr "ֱ:"
#: ../plugins/dfinput/dfinput.glade2:36
msgid "1"
@@ -2363,44 +2363,44 @@ msgstr "2"
#: ../plugins/dfinput/dfinput.glade2:73
msgid "Device file:"
-msgstr "设备文件:"
+msgstr "豸ļ:"
#: ../plugins/dfinput/dfinput.glade2:104
msgid "Multi-threaded"
-msgstr "多线程"
+msgstr "߳"
#: ../plugins/dfinput/dfinput.glade2:118
msgid "Analog"
-msgstr "模拟"
+msgstr "ģ"
#: ../plugins/dfinput/dfinput.glade2:155
msgid "<b>Button Configuration</b>"
-msgstr "<b>按键配置</b>"
+msgstr "<b></b>"
#: ../plugins/dfinput/dfinput.glade2:209
-msgid "Based on PadJoy by Erich Kitzmüller (ammoq@ammoq.com)"
-msgstr "基于由 Erich Kitzmüller (ammoq@ammoq.com) 编写的 PadJoy"
+msgid "Based on PadJoy by Erich Kitzmller (ammoq@ammoq.com)"
+msgstr " Erich Kitzmller (ammoq@ammoq.com) д PadJoy"
#~ msgid "_Load"
-#~ msgstr "读取(_L)"
+#~ msgstr "ȡ(_L)"
#~ msgid "_Save"
-#~ msgstr "保存(_S)"
+#~ msgstr "(_S)"
#~ msgid "_Run"
-#~ msgstr "运行(_R)"
+#~ msgstr "(_R)"
#~ msgid ""
#~ "PCSX is licensed under the GNU GPL; see the included COPYING file for "
#~ "more detail."
-#~ msgstr "PCSX 在 GNU GPL 条款下发布;请参看包含的 COPYING 文件。"
+#~ msgstr "PCSX GNU GPL ·ο COPYING ļ"
#~ msgid "This plugin reports that it should work correctly."
-#~ msgstr "此插件报告其可正常工作。"
+#~ msgstr "˲"
#~ msgid "This plugin reports that it won't work correctly."
-#~ msgstr "此插件报告其不可正常工作。"
+#~ msgstr "˲䲻"
#~ msgid "Could not load Cdrom"
-#~ msgstr "无法加载光盘"
+#~ msgstr "޷ع"
#~ msgid "Could not open plugins directory: '%s'\n"
-#~ msgstr "无法打开插件目录: \"%s\"\n"
+#~ msgstr "޷򿪲Ŀ¼: \"%s\"\n"
#~ msgid "Run CD Though &Bios"
-#~ msgstr "使用 BIOS 运行光碟(&B)"
+#~ msgstr "ʹ BIOS й(&B)"
#~ msgid "Run CD Through BIOS"
-#~ msgstr "使用 BIOS 运行光碟"
+#~ msgstr "ʹ BIOS й"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 92f7ac9e..87a35089 100755
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index aef45602..1408b349 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -12,7 +12,7 @@ msgstr ""
"Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n"
"Language-Team: Traditional Chinese <whistler@openoffice.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=big5\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../win32/gui/AboutDlg.c:26
@@ -25,13 +25,13 @@ msgid ""
"ex-coders: Nocomp, Pete Bernett, nik3d\n"
"Webmaster: AkumaX"
msgstr ""
-"PCSX - 一個 PlayStation 模擬器\n"
+"PCSX - @ PlayStation \n"
"\n"
-"原作者:\n"
-"主程式: linuzappz\n"
-"輔助程式: shadow\n"
-"前程式: Nocomp, Pete Bernett, nik3d\n"
-"網絡管理: AkumaX"
+"@:\n"
+"D{: linuzappz\n"
+"U{: shadow\n"
+"e{: Nocomp, Pete Bernett, nik3d\n"
+"޲z: AkumaX"
#: ../win32/gui/AboutDlg.c:35
msgid ""
@@ -44,63 +44,63 @@ msgid ""
"\n"
"http://www.codeplex.com/pcsxr"
msgstr ""
-"PCSX-df 開發者:\n"
+"PCSX-df }o:\n"
"Ryan Schultz, Andrew Burton, Stephen Chao,\n"
"Marcus Comstedt, Stefan Sikora\n"
"\n"
-"PCSX Reloaded 開發者:\n"
+"PCSX Reloaded }o:\n"
"Wei Mingzhi\n"
"\n"
"http://www.codeplex.com/pcsxr"
#: ../win32/gui/AboutDlg.c:46
msgid "About"
-msgstr "關於 PCSX"
+msgstr " PCSX"
#: ../win32/gui/AboutDlg.c:48 ../win32/gui/AboutDlg.c:52
#: ../win32/gui/ConfigurePlugins.c:462 ../win32/gui/ConfigurePlugins.c:593
#: ../win32/gui/WndMain.c:906 ../win32/gui/WndMain.c:1142
#: ../plugins/peopsxgl/gpucfg/interface.c:129
msgid "OK"
-msgstr "確定"
+msgstr "Tw"
#: ../win32/gui/AboutDlg.c:49
msgid "PCSX EMU\n"
-msgstr "PCSX 模擬器\n"
+msgstr "PCSX \n"
#: ../win32/gui/ConfigurePlugins.c:385
msgid "This plugin reports that should work correctly"
-msgstr "此外掛報告其可正常工作。"
+msgstr "~ii`u@C"
#: ../win32/gui/ConfigurePlugins.c:386
msgid "This plugin reports that should not work correctly"
-msgstr "此外掛報告其不可正常工作。"
+msgstr "~i䤣i`u@C"
#: ../win32/gui/ConfigurePlugins.c:460
msgid "Configuration"
-msgstr "配置"
+msgstr "tm"
#: ../win32/gui/ConfigurePlugins.c:463 ../win32/gui/ConfigurePlugins.c:594
#: ../win32/gui/WndMain.c:907 ../win32/gui/WndMain.c:1143
#: ../plugins/peopsxgl/gpucfg/interface.c:337
msgid "Cancel"
-msgstr "取消"
+msgstr ""
#: ../win32/gui/ConfigurePlugins.c:464
msgid "Graphics"
-msgstr "圖像"
+msgstr "Ϲ"
#: ../win32/gui/ConfigurePlugins.c:465
msgid "First Controller"
-msgstr "主控制器"
+msgstr "D"
#: ../win32/gui/ConfigurePlugins.c:466
msgid "Second Controller"
-msgstr "輔控制器"
+msgstr ""
#: ../win32/gui/ConfigurePlugins.c:467
msgid "Sound"
-msgstr "聲音"
+msgstr "n"
#: ../win32/gui/ConfigurePlugins.c:468
msgid "Cdrom"
@@ -112,42 +112,42 @@ msgstr "BIOS"
#: ../win32/gui/ConfigurePlugins.c:470
msgid "Set Bios Directory"
-msgstr "設置 BIOS 目錄"
+msgstr "]m BIOS ؿ"
#: ../win32/gui/ConfigurePlugins.c:471
msgid "Set Plugins Directory"
-msgstr "設置外掛目錄"
+msgstr "]m~ؿ"
#: ../win32/gui/ConfigurePlugins.c:472 ../win32/gui/ConfigurePlugins.c:475
#: ../win32/gui/ConfigurePlugins.c:478 ../win32/gui/ConfigurePlugins.c:481
#: ../win32/gui/ConfigurePlugins.c:484 ../win32/gui/ConfigurePlugins.c:596
msgid "Configure..."
-msgstr "配置..."
+msgstr "tm..."
#: ../win32/gui/ConfigurePlugins.c:473 ../win32/gui/ConfigurePlugins.c:476
#: ../win32/gui/ConfigurePlugins.c:479 ../win32/gui/ConfigurePlugins.c:482
#: ../win32/gui/ConfigurePlugins.c:485 ../win32/gui/ConfigurePlugins.c:597
msgid "Test..."
-msgstr "測試..."
+msgstr "..."
#: ../win32/gui/ConfigurePlugins.c:474 ../win32/gui/ConfigurePlugins.c:477
#: ../win32/gui/ConfigurePlugins.c:480 ../win32/gui/ConfigurePlugins.c:483
#: ../win32/gui/ConfigurePlugins.c:486 ../win32/gui/ConfigurePlugins.c:598
msgid "About..."
-msgstr "關於..."
+msgstr "..."
#: ../win32/gui/ConfigurePlugins.c:591
msgid "NetPlay Configuration"
-msgstr "聯網遊戲配置"
+msgstr "pCtm"
#: ../win32/gui/ConfigurePlugins.c:595
msgid "NetPlay"
-msgstr "聯網遊戲"
+msgstr "pC"
#: ../win32/gui/ConfigurePlugins.c:599
msgid ""
"Note: The NetPlay Plugin Directory should be the same as the other Plugins."
-msgstr "注意: 聯網遊戲外掛應和其它外掛放在同一資料夾中。"
+msgstr "`N: pC~M䥦~bP@ƧC"
#: ../win32/gui/plugin.c:90 ../win32/gui/WndMain.c:235
#, c-format
@@ -209,159 +209,159 @@ msgstr ""
#: ../win32/gui/plugin.c:177
msgid "Connecting..."
-msgstr "正在連接..."
+msgstr "bs..."
#: ../win32/gui/plugin.c:179 ../win32/gui/plugin.c:186
#, c-format
msgid "Please wait while connecting... %c\n"
-msgstr "請稍候,正在連接... %c\n"
+msgstr "еyԡAbs... %c\n"
#: ../win32/gui/plugin.c:216
msgid "Error Opening CDR Plugin"
-msgstr "無法開啟 CDR 外掛"
+msgstr "Lk} CDR ~"
#: ../win32/gui/plugin.c:279
#, c-format
msgid "Error Opening GPU Plugin (%d)"
-msgstr "無法開啟 GPU 外掛 (%d)"
+msgstr "Lk} GPU ~ (%d)"
#: ../win32/gui/plugin.c:281
#, c-format
msgid "Error Opening SPU Plugin (%d)"
-msgstr "無法開啟 SPU 外掛 (%d)"
+msgstr "Lk} SPU ~ (%d)"
#: ../win32/gui/plugin.c:284
#, c-format
msgid "Error Opening PAD1 Plugin (%d)"
-msgstr "無法開啟 PAD1 外掛 (%d)"
+msgstr "Lk} PAD1 ~ (%d)"
#: ../win32/gui/plugin.c:286
#, c-format
msgid "Error Opening PAD2 Plugin (%d)"
-msgstr "無法開啟 PAD2 外掛 (%d)"
+msgstr "Lk} PAD2 ~ (%d)"
#: ../win32/gui/plugin.c:309
msgid "Error Closing CDR Plugin"
-msgstr "無法關閉 CD-ROM 外掛 (%d)"
+msgstr "Lk CD-ROM ~ (%d)"
#: ../win32/gui/plugin.c:311
msgid "Error Closing GPU Plugin"
-msgstr "無法關閉 GPU 外掛"
+msgstr "Lk GPU ~"
#: ../win32/gui/plugin.c:313
msgid "Error Closing SPU Plugin"
-msgstr "無法關閉 SPU 外掛"
+msgstr "Lk SPU ~"
#: ../win32/gui/plugin.c:315
msgid "Error Closing PAD1 Plugin"
-msgstr "無法關閉 PAD1 外掛"
+msgstr "Lk PAD1 ~"
#: ../win32/gui/plugin.c:317
msgid "Error Closing PAD2 Plugin"
-msgstr "無法關閉 PAD2 外掛!"
+msgstr "Lk PAD2 ~!"
#: ../win32/gui/plugin.c:335
#, c-format
msgid "CDRinit error: %d"
-msgstr "CDRinit 錯誤: %d"
+msgstr "CDRinit ~: %d"
#: ../win32/gui/plugin.c:337
#, c-format
msgid "GPUinit error: %d"
-msgstr "GPUinit 錯誤: %d"
+msgstr "GPUinit ~: %d"
#: ../win32/gui/plugin.c:339
#, c-format
msgid "SPUinit error: %d"
-msgstr "SPUinit 錯誤: %d"
+msgstr "SPUinit ~: %d"
#: ../win32/gui/plugin.c:341
#, c-format
msgid "PAD1init error: %d"
-msgstr "PAD1init 錯誤: %d"
+msgstr "PAD1init ~: %d"
#: ../win32/gui/plugin.c:343
#, c-format
msgid "PAD2init error: %d"
-msgstr "PAD2init 錯誤: %d"
+msgstr "PAD2init ~: %d"
#: ../win32/gui/plugin.c:346
#, c-format
msgid "NETinit error: %d"
-msgstr "NETinit 錯誤: %d"
+msgstr "NETinit ~: %d"
#: ../win32/gui/WndMain.c:74
msgid "Arabic"
-msgstr "阿拉伯語"
+msgstr "ԧBy"
#: ../win32/gui/WndMain.c:75
msgid "Catalan"
-msgstr "加泰隆尼亞語"
+msgstr "[Ȼy"
#: ../win32/gui/WndMain.c:76
msgid "German"
-msgstr "德語"
+msgstr "wy"
#: ../win32/gui/WndMain.c:77
msgid "Greek"
-msgstr "希臘語"
+msgstr "þy"
#: ../win32/gui/WndMain.c:78 ../win32/gui/WndMain.c:1471
#: ../win32/gui/WndMain.c:1473
msgid "English"
-msgstr "英語"
+msgstr "^y"
#: ../win32/gui/WndMain.c:79
msgid "Spanish"
-msgstr "西班牙語"
+msgstr "Zy"
#: ../win32/gui/WndMain.c:80
msgid "French"
-msgstr "法語"
+msgstr "ky"
#: ../win32/gui/WndMain.c:81
msgid "Italian"
-msgstr "意大利語"
+msgstr "NjQy"
#: ../win32/gui/WndMain.c:82
msgid "Portuguese"
-msgstr "葡萄牙語"
+msgstr "y"
#: ../win32/gui/WndMain.c:83
msgid "Romanian"
-msgstr "羅馬尼亞語"
+msgstr "ùȻy"
#: ../win32/gui/WndMain.c:84
msgid "Russian"
-msgstr "俄語"
+msgstr "Xy"
#: ../win32/gui/WndMain.c:85
msgid "Simplified Chinese"
-msgstr "簡體中文"
+msgstr "²餤"
#: ../win32/gui/WndMain.c:86
msgid "Traditional Chinese"
-msgstr "繁體中文"
+msgstr "c餤"
#: ../win32/gui/WndMain.c:87
msgid "Japanese"
-msgstr "日語"
+msgstr "y"
#: ../win32/gui/WndMain.c:88
msgid "Korean"
-msgstr "韓國語"
+msgstr "y"
#: ../win32/gui/WndMain.c:129
msgid "Pcsx needs to be configured"
-msgstr "Pcsx 需要被配置。"
+msgstr "Pcsx ݭnQtmC"
#: ../win32/gui/WndMain.c:133
msgid "Pcsx now will quit, restart it"
-msgstr "PCSX 將關閉,請重新啟動它。"
+msgstr "PCSX NAЭsҰʥC"
#: ../win32/gui/WndMain.c:253 ../win32/gui/WndMain.c:305
msgid "PCSX State Format"
-msgstr "PCSX 記錄格式"
+msgstr "PCSX O榡"
#: ../win32/gui/WndMain.c:280
#, c-format
@@ -386,32 +386,32 @@ msgstr ""
#: ../win32/gui/WndMain.c:382 ../win32/gui/WndMain.c:431 ../gui/Gtk2Gui.c:552
#: ../gui/Gtk2Gui.c:675
msgid "The CD does not appear to be a valid Playstation CD"
-msgstr "此光碟不是一張合法的 PlayStation 光碟。"
+msgstr "ФO@iXk PlayStation СC"
#: ../win32/gui/WndMain.c:388 ../win32/gui/WndMain.c:437 ../gui/Gtk2Gui.c:560
#: ../gui/Gtk2Gui.c:683
msgid "Could not load CD-ROM!"
-msgstr "無法加載光碟!"
+msgstr "Lk[!"
#: ../win32/gui/WndMain.c:398
msgid "Running BIOS is not supported with Internal HLE Bios."
-msgstr "內部 HLE BIOS 不支援直接執行。"
+msgstr " HLE BIOS 䴩C"
#: ../win32/gui/WndMain.c:604 ../gui/Gtk2Gui.c:1046
msgid "Title"
-msgstr "標題"
+msgstr "D"
#: ../win32/gui/WndMain.c:610 ../gui/Gtk2Gui.c:1052
msgid "Status"
-msgstr "狀態"
+msgstr "A"
#: ../win32/gui/WndMain.c:616
msgid "Game ID"
-msgstr "遊戲 ID"
+msgstr "C ID"
#: ../win32/gui/WndMain.c:622
msgid "Game"
-msgstr "遊戲"
+msgstr "C"
#: ../win32/gui/WndMain.c:796
msgid "mid link block"
@@ -423,246 +423,246 @@ msgstr ""
#: ../win32/gui/WndMain.c:807 ../gui/Gtk2Gui.c:1126
msgid "Deleted"
-msgstr "已刪除"
+msgstr "wR"
#: ../win32/gui/WndMain.c:808 ../win32/gui/WndMain.c:811 ../gui/Gtk2Gui.c:1128
#: ../gui/Gtk2Gui.c:1132
msgid "Free"
-msgstr "空閑"
+msgstr "Ŷ~"
#: ../win32/gui/WndMain.c:810 ../gui/Gtk2Gui.c:1130
msgid "Used"
-msgstr "已使用"
+msgstr "wϥ"
#: ../win32/gui/WndMain.c:904
msgid "Memcard Manager"
-msgstr "記憶卡管理器"
+msgstr "OХd޲z"
#: ../win32/gui/WndMain.c:908 ../win32/gui/WndMain.c:911
msgid "Select Mcd"
-msgstr "選擇"
+msgstr ""
#: ../win32/gui/WndMain.c:909 ../win32/gui/WndMain.c:912
msgid "Format Mcd"
-msgstr "格式化"
+msgstr "榡"
#: ../win32/gui/WndMain.c:910 ../win32/gui/WndMain.c:913
msgid "Reload Mcd"
-msgstr "重新加載"
+msgstr "s["
#: ../win32/gui/WndMain.c:914
msgid "-> Copy ->"
-msgstr "-> 複制 ->"
+msgstr "-> ƨ ->"
#: ../win32/gui/WndMain.c:915
msgid "<- Copy <-"
-msgstr "<- 複制 <-"
+msgstr "<- ƨ <-"
#: ../win32/gui/WndMain.c:916
msgid "Paste"
-msgstr "粘貼"
+msgstr "߶K"
#: ../win32/gui/WndMain.c:917
msgid "<- Un/Delete"
-msgstr "<- 刪除/恢複"
+msgstr "<- R/"
#: ../win32/gui/WndMain.c:918
msgid "Un/Delete ->"
-msgstr "刪除/恢複 ->"
+msgstr "R/ ->"
#: ../win32/gui/WndMain.c:920
msgid "Memory Card 1"
-msgstr "記憶卡 1"
+msgstr "OХd 1"
#: ../win32/gui/WndMain.c:921
msgid "Memory Card 2"
-msgstr "記憶卡 2"
+msgstr "OХd 2"
#: ../win32/gui/WndMain.c:976
msgid "Are you sure you want to paste this selection?"
-msgstr "是否確認粘貼此選中內容?"
+msgstr "O_T{߶K襤e?"
#: ../win32/gui/WndMain.c:976 ../win32/gui/WndMain.c:1087
#: ../win32/gui/WndMain.c:1094
msgid "Confirmation"
-msgstr "確認"
+msgstr "T{"
#: ../win32/gui/WndMain.c:1087 ../win32/gui/WndMain.c:1094
msgid "Are you sure you want to format this Memory Card?"
-msgstr "是否確認格式化此記憶卡?"
+msgstr "O_T{榡ƦOХd?"
#: ../win32/gui/WndMain.c:1140
msgid "Cpu Config"
-msgstr "CPU 配置"
+msgstr "CPU tm"
#: ../win32/gui/WndMain.c:1145
msgid "Disable Xa Decoding"
-msgstr "禁用 XA 解碼"
+msgstr "T XA ѽX"
#: ../win32/gui/WndMain.c:1146
msgid "Sio Irq Always Enabled"
-msgstr "SIO IRQ 總是啟用"
+msgstr "SIO IRQ `Oҥ"
#: ../win32/gui/WndMain.c:1147
msgid "Black && White Movies"
-msgstr "黑白電影"
+msgstr "¥չqv"
#: ../win32/gui/WndMain.c:1148
msgid "Disable Cd audio"
-msgstr "禁用 CD 音頻"
+msgstr "T CD W"
#: ../win32/gui/WndMain.c:1149 ../data/pcsx.glade2:1321
msgid "Autodetect"
-msgstr "自動檢測"
+msgstr "۰˴"
#: ../win32/gui/WndMain.c:1150
msgid "Enable Interpreter Cpu"
-msgstr "啟用解釋執行 CPU"
+msgstr "ҥθ CPU"
#: ../win32/gui/WndMain.c:1151 ../data/pcsx.glade2:1183
msgid "Enable Console Output"
-msgstr "啟用控制台輸出"
+msgstr "ҥαxX"
#: ../win32/gui/WndMain.c:1152
msgid "Spu Irq Always Enabled"
-msgstr "SPU IRQ 總是啟用"
+msgstr "SPU IRQ `Oҥ"
#: ../win32/gui/WndMain.c:1153 ../data/pcsx.glade2:1267
msgid "Parasite Eve 2, Vandal Hearts 1/2 Fix"
-msgstr "Parasite Eve 2, Vandal Hearts 1/2 修正"
+msgstr "Parasite Eve 2, Vandal Hearts 1/2 ץ"
#: ../win32/gui/WndMain.c:1154 ../data/pcsx.glade2:1282
msgid "InuYasha Sengoku Battle Fix"
-msgstr "InuYasha Sengoku 戰斗修正"
+msgstr "InuYasha Sengoku Ԥץ"
#: ../win32/gui/WndMain.c:1156 ../plugins/dfcdrom/interface.c:193
msgid "Options"
-msgstr "選項"
+msgstr "ﶵ"
#: ../win32/gui/WndMain.c:1157
msgid "Psx System Type"
-msgstr "Psx 系統類型"
+msgstr "Psx t"
#: ../win32/gui/WndMain.c:1229
msgid "Psx Mcd Format (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"
-msgstr "Psx 記憶卡格式 (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"
+msgstr "Psx OХd榡 (*.mcr;*.mc;*.mem;*.vgs;*.mcd;*.gme;*.ddf)"
#: ../win32/gui/WndMain.c:1234
msgid "Psx Memory Card (*.mcr;*.mc)"
-msgstr "Psx 記憶卡 (*.mcr;*.mc)"
+msgstr "Psx OХd (*.mcr;*.mc)"
#: ../win32/gui/WndMain.c:1239
msgid "CVGS Memory Card (*.mem;*.vgs)"
-msgstr "VGS 記憶卡 (*.mem;*.vgs)"
+msgstr "VGS OХd (*.mem;*.vgs)"
#: ../win32/gui/WndMain.c:1244
msgid "Bleem Memory Card (*.mcd)"
-msgstr "Bleem 記憶卡 (*.mcd)"
+msgstr "Bleem OХd (*.mcd)"
#: ../win32/gui/WndMain.c:1249
msgid "DexDrive Memory Card (*.gme)"
-msgstr "DexDrive 記憶卡 (*.gme)"
+msgstr "DexDrive OХd (*.gme)"
#: ../win32/gui/WndMain.c:1254
msgid "DataDeck Memory Card (*.ddf)"
-msgstr "DataDeck 記憶卡 (*.ddl)"
+msgstr "DataDeck OХd (*.ddl)"
#: ../win32/gui/WndMain.c:1259 ../win32/gui/WndMain.c:1340 ../gui/Cheat.c:372
#: ../gui/Gtk2Gui.c:626
msgid "All Files"
-msgstr "所有檔案"
+msgstr "Ҧɮ"
#: ../win32/gui/WndMain.c:1298
msgid "Psx Exe Format"
-msgstr "PSX EXE 格式"
+msgstr "PSX EXE 榡"
#: ../win32/gui/WndMain.c:1335
msgid "Psx Isos (*.iso;*.mdf;*.img;*.bin)"
-msgstr "Psx 鏡像檔 (*.iso;*.mdf;*.img;*.bin)"
+msgstr "Psx 蹳 (*.iso;*.mdf;*.img;*.bin)"
#: ../win32/gui/WndMain.c:1409
msgid "&File"
-msgstr "檔案(&F)"
+msgstr "ɮ(&F)"
#: ../win32/gui/WndMain.c:1410
msgid "E&xit"
-msgstr "離開(&X)"
+msgstr "}(&X)"
#: ../win32/gui/WndMain.c:1412
msgid "&States"
-msgstr "記錄(&S)"
+msgstr "O(&S)"
#: ../win32/gui/WndMain.c:1414
msgid "Run &EXE"
-msgstr "執行 EXE(&E)"
+msgstr " EXE(&E)"
#: ../win32/gui/WndMain.c:1415
msgid "Run &BIOS"
-msgstr "執行 BIOS(&B)"
+msgstr " BIOS(&B)"
#: ../win32/gui/WndMain.c:1416
msgid "Run &ISO"
-msgstr "執行 ISO(&I)"
+msgstr " ISO(&I)"
#: ../win32/gui/WndMain.c:1417
msgid "Run &CD"
-msgstr "執行光碟(&C)"
+msgstr "(&C)"
#: ../win32/gui/WndMain.c:1418
msgid "&Save"
-msgstr "存儲(&S)"
+msgstr "sx(&S)"
#: ../win32/gui/WndMain.c:1419
msgid "&Load"
-msgstr "讀取(&L)"
+msgstr "Ū(&L)"
#: ../win32/gui/WndMain.c:1420 ../win32/gui/WndMain.c:1426
msgid "&Other..."
-msgstr "其它(&O)..."
+msgstr "䥦(&O)..."
#: ../win32/gui/WndMain.c:1421 ../win32/gui/WndMain.c:1427
msgid "Slot &5"
-msgstr "記錄 5(&5)"
+msgstr "O 5(&5)"
#: ../win32/gui/WndMain.c:1422 ../win32/gui/WndMain.c:1428
msgid "Slot &4"
-msgstr "記錄 4(&4)"
+msgstr "O 4(&4)"
#: ../win32/gui/WndMain.c:1423 ../win32/gui/WndMain.c:1429
msgid "Slot &3"
-msgstr "記錄 3(&3)"
+msgstr "O 3(&3)"
#: ../win32/gui/WndMain.c:1424 ../win32/gui/WndMain.c:1430
msgid "Slot &2"
-msgstr "記錄 2(&2)"
+msgstr "O 2(&2)"
#: ../win32/gui/WndMain.c:1425 ../win32/gui/WndMain.c:1431
msgid "Slot &1"
-msgstr "記錄 1(&1)"
+msgstr "O 1(&1)"
#: ../win32/gui/WndMain.c:1433
msgid "&Emulator"
-msgstr "模擬器(&E)"
+msgstr "(&E)"
#: ../win32/gui/WndMain.c:1434
msgid "S&witch ISO"
-msgstr "更換 ISO(_W)"
+msgstr " ISO(_W)"
#: ../win32/gui/WndMain.c:1436
msgid "Re&set"
-msgstr "複位(&S)"
+msgstr "Ʀ(&S)"
#: ../win32/gui/WndMain.c:1437
msgid "&Run"
-msgstr "執行(&R)"
+msgstr "(&R)"
#: ../win32/gui/WndMain.c:1439
msgid "&Configuration"
-msgstr "配置(&C)"
+msgstr "tm(&C)"
#: ../win32/gui/WndMain.c:1440
msgid "&Memory cards"
-msgstr "記憶卡(&M)"
+msgstr "OХd(&M)"
#: ../win32/gui/WndMain.c:1441
msgid "C&PU"
@@ -670,11 +670,11 @@ msgstr "CPU(&P)"
#: ../win32/gui/WndMain.c:1443
msgid "&NetPlay"
-msgstr "聯網遊戲(&N)"
+msgstr "pC(&N)"
#: ../win32/gui/WndMain.c:1445
msgid "&Controllers"
-msgstr "控制器(&C)"
+msgstr "(&C)"
#: ../win32/gui/WndMain.c:1446
msgid "CD-&ROM"
@@ -682,173 +682,173 @@ msgstr "CD-ROM(&R)"
#: ../win32/gui/WndMain.c:1447
msgid "&Sound"
-msgstr "聲音(&S)"
+msgstr "n(&S)"
#: ../win32/gui/WndMain.c:1448
msgid "&Graphics"
-msgstr "圖像(&G)"
+msgstr "Ϲ(&G)"
#: ../win32/gui/WndMain.c:1450
msgid "&Plugins && Bios"
-msgstr "外掛及 BIOS(&P)"
+msgstr "~ BIOS(&P)"
#: ../win32/gui/WndMain.c:1452
msgid "&Language"
-msgstr "語言(&L)"
+msgstr "y(&L)"
#: ../win32/gui/WndMain.c:1476
msgid "&Help"
-msgstr "說明(&H)"
+msgstr "(&H)"
#: ../win32/gui/WndMain.c:1477
msgid "&About..."
-msgstr "關於(&A)..."
+msgstr "(&A)..."
#: ../win32/gui/WndMain.c:1654
msgid "Pcsx Msg"
-msgstr "Pcsx 消息"
+msgstr "Pcsx "
#: ../win32/gui/WndMain.c:1657
msgid "Error Loading Symbol"
-msgstr "無法加載符號"
+msgstr "Lk[Ÿ"
#: ../gui/Cheat.c:49
msgid " Yes"
-msgstr " 是"
+msgstr " O"
#: ../gui/Cheat.c:118
msgid "Add New Cheat"
-msgstr "添加新金手指"
+msgstr "K[s"
#: ../gui/Cheat.c:126 ../gui/Cheat.c:210
msgid "Cheat Description:"
-msgstr "金手指描述:"
+msgstr "yz:"
#: ../gui/Cheat.c:134 ../gui/Cheat.c:219
msgid "Cheat Code:"
-msgstr "金手指碼:"
+msgstr "X:"
#: ../gui/Cheat.c:164 ../gui/Cheat.c:259 ../gui/LnxMain.c:355
msgid "Error"
-msgstr "錯誤"
+msgstr "~"
#: ../gui/Cheat.c:164 ../gui/Cheat.c:259
msgid "Invalid cheat code!"
-msgstr "非法金手指碼!"
+msgstr "DkX!"
#: ../gui/Cheat.c:202
msgid "Edit Cheat"
-msgstr "編輯金手指"
+msgstr "s"
#: ../gui/Cheat.c:357
msgid "Open Cheat File"
-msgstr "打開金手指檔"
+msgstr "}"
#: ../gui/Cheat.c:367 ../gui/Cheat.c:407
msgid "PCSX Cheat Code Files (*.cht)"
-msgstr "PCSX 金手指檔 (*.cht)"
+msgstr "PCSX (*.cht)"
#: ../gui/Cheat.c:397
msgid "Save Cheat File"
-msgstr "儲存金手指檔"
+msgstr "xs"
#: ../gui/Cheat.c:412
msgid "All Files (*.*)"
-msgstr "所有檔案 (*.*)"
+msgstr "Ҧɮ (*.*)"
#: ../gui/Cheat.c:445 ../gui/Cheat.c:531 ../gui/Gtk2Gui.c:377
#: ../gui/Gtk2Gui.c:998
msgid "Error: Glade interface could not be loaded!"
-msgstr "錯誤:無法加載 Glade 界面!"
+msgstr "~GLk[ Glade ɭ!"
#: ../gui/Cheat.c:450
msgid "Cheat Codes"
-msgstr "金手指碼"
+msgstr "X"
#: ../gui/Cheat.c:456 ../data/pcsx.glade2:2253
msgid "Enable"
-msgstr "啟用"
+msgstr "ҥ"
#: ../gui/Cheat.c:462
msgid "Description"
-msgstr "描述"
+msgstr "yz"
#: ../gui/Cheat.c:536 ../data/pcsx.glade2:2362
#, fuzzy
msgid "Cheat Search"
-msgstr "搜尋(_S)"
+msgstr "jM(_S)"
#: ../gui/Gtk2Gui.c:385 ../data/pcsx.glade2:517
msgid "Configure PCSX"
-msgstr "配置 PCSX"
+msgstr "tm PCSX"
#: ../gui/Gtk2Gui.c:471
msgid "Select PSX EXE File"
-msgstr "選擇 PS EXE 檔案"
+msgstr " PS EXE ɮ"
#: ../gui/Gtk2Gui.c:481
msgid "PlayStation Executable Files"
-msgstr "PlayStation 執行檔"
+msgstr "PlayStation "
#: ../gui/Gtk2Gui.c:521
msgid "Not a valid PSX file"
-msgstr "不是一個合法的 PSX 檔"
+msgstr "O@ӦXk PSX "
#: ../gui/Gtk2Gui.c:521
msgid "The file does not appear to be a valid Playstation executable"
-msgstr "此文件不是一個合法的 PlayStation 執行檔"
+msgstr "󤣬O@ӦXk PlayStation "
#: ../gui/Gtk2Gui.c:552 ../gui/Gtk2Gui.c:675
msgid "CD ROM failed"
-msgstr "CD-ROM 失敗"
+msgstr "CD-ROM "
#: ../gui/Gtk2Gui.c:560
msgid "The CD ROM could not be loaded"
-msgstr "無法加載 CD-ROM"
+msgstr "Lk[ CD-ROM"
#: ../gui/Gtk2Gui.c:575
msgid "Could not run BIOS"
-msgstr "無法執行 BIOS"
+msgstr "Lk BIOS"
#: ../gui/Gtk2Gui.c:575
msgid "Running BIOS is not supported with Internal HLE BIOS."
-msgstr "內部 HLE BIOS 不支援直接執行。"
+msgstr " HLE BIOS 䴩C"
#: ../gui/Gtk2Gui.c:605
msgid "Open PSX Disc Image File"
-msgstr "打開 PSX 光碟映像檔"
+msgstr "} PSX ЬM"
#: ../gui/Gtk2Gui.c:621
msgid "PSX Image Files (*.bin, *.img, *.mdf, *.iso)"
-msgstr "PSX 鏡像檔 (*.bin, *.img, *.mdf, *.iso)"
+msgstr "PSX 蹳 (*.bin, *.img, *.mdf, *.iso)"
#: ../gui/Gtk2Gui.c:857
#, c-format
msgid "Loaded state %s."
-msgstr "已讀取記錄 %s。"
+msgstr "wŪO %sC"
#: ../gui/Gtk2Gui.c:862
#, c-format
msgid "Error loading state %s!"
-msgstr "讀取記錄 %s 時出錯。"
+msgstr "ŪO %s ɥXC"
#: ../gui/Gtk2Gui.c:873
#, c-format
msgid "Saved state %s."
-msgstr "已存儲記錄 %s"
+msgstr "wsxO %s"
#: ../gui/Gtk2Gui.c:875
#, c-format
msgid "Error saving state %s!"
-msgstr "存儲記錄 %s 時出錯。"
+msgstr "sxO %s ɥXC"
#: ../gui/Gtk2Gui.c:909 ../gui/Gtk2Gui.c:936
msgid "Select State File"
-msgstr "選擇記錄檔案"
+msgstr "ܰOɮ"
#: ../gui/Gtk2Gui.c:1040
msgid "Icon"
-msgstr "圖符"
+msgstr "ϲ"
#: ../gui/Gtk2Gui.c:1058
msgid "ID"
@@ -856,60 +856,60 @@ msgstr "ID"
#: ../gui/Gtk2Gui.c:1064
msgid "Name"
-msgstr "名稱"
+msgstr "W"
#: ../gui/Gtk2Gui.c:1224
msgid "Format this Memory Card?"
-msgstr "格式化此記憶卡?"
+msgstr "榡ƦOХd?"
#: ../gui/Gtk2Gui.c:1226
msgid ""
"If you format the memory card, the card will be empty, and any existing data "
"overwritten."
-msgstr "如果您選擇格式化記憶卡,記憶卡將被清空,並且任何現有數據都將被覆蓋。"
+msgstr "pGzܮ榡ưOХdAOХdNQMšAåB{ƾڳNQл\C"
#: ../gui/Gtk2Gui.c:1229
msgid "Format card"
-msgstr "格式化記憶卡"
+msgstr "榡ưOХd"
#: ../gui/Gtk2Gui.c:1344
msgid "No space available in the target memory card!"
-msgstr "目標記憶卡沒有空餘位置!"
+msgstr "ؼаOХdSžlm!"
#: ../gui/Gtk2Gui.c:1489
msgid "Memory Card Manager"
-msgstr "記憶卡管理器"
+msgstr "OХd޲z"
#: ../gui/Gtk2Gui.c:1758
msgid "No configuration required"
-msgstr "不需要配置"
+msgstr "ݭntm"
#: ../gui/Gtk2Gui.c:1758
msgid "This plugin doesn't need to be configured."
-msgstr "此外掛需要被配置。"
+msgstr "~ݭnQtmC"
#: ../gui/Gtk2Gui.c:2017
#, c-format
msgid "Could not open BIOS directory: '%s'\n"
-msgstr "無法開啟 BIOS 目錄: \"%s\"\n"
+msgstr "Lk} BIOS ؿ: \"%s\"\n"
#: ../gui/Gtk2Gui.c:2049 ../gui/Gtk2Gui.c:2142 ../gui/LnxMain.c:146
#, c-format
msgid "Could not open directory: '%s'\n"
-msgstr "無法開啟目錄: \"%s\"\n"
+msgstr "Lk}ҥؿ: \"%s\"\n"
#: ../gui/Gtk2Gui.c:2111
msgid "Internal HLE Bios"
-msgstr "內部 HLE-Bios"
+msgstr " HLE-Bios"
#: ../gui/Gtk2Gui.c:2203
msgid "Notice"
-msgstr "警告"
+msgstr "ĵi"
#: ../gui/LnxMain.c:65
#, c-format
msgid "Creating memory card: %s\n"
-msgstr "創建記憶卡: %s\n"
+msgstr "ЫذOХd: %s\n"
#: ../gui/LnxMain.c:262
msgid ""
@@ -924,245 +924,245 @@ msgid ""
"\t-h -help\tDisplay this message\n"
"\tfile\t\tLoads file\n"
msgstr ""
-" pcsx [選項] [檔案]\n"
-"\t選項:\n"
-"\t-runcd\t\t執行 CD-ROM\n"
-"\t-cdfile 檔案\t執行 CD 鏡像檔\n"
-"\t-nogui\t\t不開啟 GTK GUI\n"
-"\t-cfg 檔案\t加載一個特定的配置檔案 (默認為: ~/.pcsx/pcsx.cfg)\n"
-"\t-psxout\t\t啟用 PSX 輸出\n"
-"\t-load 編號\t加載指定編號的記錄 (1-5)\n"
-"\t-h -help\t顯示此信息\n"
-"\t檔案\t\t加載檔案\n"
+" pcsx [ﶵ] [ɮ]\n"
+"\tﶵ:\n"
+"\t-runcd\t\t CD-ROM\n"
+"\t-cdfile ɮ\t CD 蹳\n"
+"\t-nogui\t\t} GTK GUI\n"
+"\t-cfg ɮ\t[@ӯSwtmɮ (q{: ~/.pcsx/pcsx.cfg)\n"
+"\t-psxout\t\tҥ PSX X\n"
+"\t-load s\t[wsO (1-5)\n"
+"\t-h -help\tܦH\n"
+"\tɮ\t\t[ɮ\n"
#: ../gui/LnxMain.c:300
#, c-format
msgid ""
"PCSX cannot be configured without using the GUI -- you should restart "
"without -nogui.\n"
-msgstr "PCSX 不能在字符界面下配置 -- 請不使用 -nogui 參數重新啟動程式\n"
+msgstr "PCSX brŬɭUtm -- Фϥ -nogui ѼƭsҰʵ{\n"
#: ../gui/LnxMain.c:355
msgid "Failed loading plugins!"
-msgstr "外掛加載失敗"
+msgstr "~["
#: ../gui/LnxMain.c:372
#, c-format
msgid "Could not load CD-ROM!\n"
-msgstr "無法加載光碟。\n"
+msgstr "Lk[СC\n"
#: ../gui/LnxMain.c:411
#, c-format
msgid "PSX emulator couldn't be initialized.\n"
-msgstr "PSX 模擬器無法初期化。\n"
+msgstr "PSX LkơC\n"
#: ../gui/Plugin.c:204 ../data/pcsx.glade2:1219
#, c-format
msgid "SIO IRQ Always Enabled"
-msgstr "SIO IRQ 總是啟用"
+msgstr "SIO IRQ `Oҥ"
#: ../gui/Plugin.c:205
#, c-format
msgid "SIO IRQ Not Always Enabled"
-msgstr "SIO IRQ 不總是啟用"
+msgstr "SIO IRQ `Oҥ"
#: ../gui/Plugin.c:211
#, c-format
msgid "Black & White Mdecs Only Enabled"
-msgstr "Black & White Mdecs Only 啟用"
+msgstr "Black & White Mdecs Only ҥ"
#: ../gui/Plugin.c:212
#, c-format
msgid "Black & White Mdecs Only Disabled"
-msgstr "Black & White Mdecs Only 禁用"
+msgstr "Black & White Mdecs Only T"
#: ../gui/Plugin.c:218
#, c-format
msgid "XA Enabled"
-msgstr "XA 已啟用"
+msgstr "XA wҥ"
#: ../gui/Plugin.c:219
#, c-format
msgid "XA Disabled"
-msgstr "XA 已禁用"
+msgstr "XA wT"
#: ../gui/Plugin.c:285
msgid "Error opening CD-ROM plugin!"
-msgstr "無法開啟 CD-ROM 外掛!"
+msgstr "Lk} CD-ROM ~!"
#: ../gui/Plugin.c:287
msgid "Error opening SPU plugin!"
-msgstr "無法開啟 SPU 外掛!"
+msgstr "Lk} SPU ~!"
#: ../gui/Plugin.c:290
msgid "Error opening GPU plugin!"
-msgstr "無法開啟 GPU 外掛!"
+msgstr "Lk} GPU ~!"
#: ../gui/Plugin.c:292
msgid "Error opening Controller 1 plugin!"
-msgstr "無法開啟 \"控制器 1\" 外掛!"
+msgstr "Lk} \" 1\" ~!"
#: ../gui/Plugin.c:294
msgid "Error opening Controller 2 plugin!"
-msgstr "無法開啟 \"控制器 2\" 外掛!"
+msgstr "Lk} \" 2\" ~!"
#: ../gui/Plugin.c:374
msgid "Error closing CD-ROM plugin!"
-msgstr "無法關閉 CD-ROM 外掛!"
+msgstr "Lk CD-ROM ~!"
#: ../gui/Plugin.c:376
msgid "Error closing SPU plugin!"
-msgstr "無法關閉 SPU 外掛!"
+msgstr "Lk SPU ~!"
#: ../gui/Plugin.c:378
msgid "Error closing Controller 1 Plugin!"
-msgstr "無法關閉 \"控制器 1\" 外掛!"
+msgstr "Lk \" 1\" ~!"
#: ../gui/Plugin.c:380
msgid "Error closing Controller 2 plugin!"
-msgstr "無法關閉 \"控制器 2\" 外掛!"
+msgstr "Lk \" 2\" ~!"
#: ../gui/Plugin.c:382
msgid "Error closing GPU plugin!"
-msgstr "無法關閉 GPU 外掛!"
+msgstr "Lk GPU ~!"
#: ../libpcsxcore/cdriso.c:125
#, c-format
msgid "Could not open %s.\n"
-msgstr "無法開啟 \"%s\"\n"
+msgstr "Lk} \"%s\"\n"
#: ../libpcsxcore/cheat.c:335 ../libpcsxcore/cheat.c:454
msgid "(Untitled)"
-msgstr "(未定名)"
+msgstr "(wW)"
#: ../libpcsxcore/misc.c:372
#, c-format
msgid "Error opening file: %s"
-msgstr "開啟檔案錯誤: %s!"
+msgstr "}ɮ׿~: %s!"
#: ../libpcsxcore/misc.c:390
msgid "CPE files not supported."
-msgstr "CPE 檔案不被支援!"
+msgstr "CPE ɮפQ䴩!"
#: ../libpcsxcore/misc.c:394
msgid "COFF files not supported."
-msgstr "COFF 檔案不被支援!"
+msgstr "COFF ɮפQ䴩!"
#: ../libpcsxcore/misc.c:398
msgid "This file does not appear to be a valid PSX file."
-msgstr "此檔案不是一個合法的 PSX 檔案。"
+msgstr "ɮפO@ӦXk PSX ɮסC"
#: ../libpcsxcore/plugins.c:33
#, c-format
msgid "Error loading %s: %s"
-msgstr "無法加載 %s: %s"
+msgstr "Lk[ %s: %s"
#: ../libpcsxcore/plugins.c:162
#, c-format
msgid "Could not load GPU plugin %s!"
-msgstr "無法加載 GPU 外掛 %s!"
+msgstr "Lk[ GPU ~ %s!"
#: ../libpcsxcore/plugins.c:228
#, c-format
msgid "Could not load CD-ROM plugin %s!"
-msgstr "無法加載 CD-ROM 外掛 %s!"
+msgstr "Lk[ CD-ROM ~ %s!"
#: ../libpcsxcore/plugins.c:467
#, c-format
msgid "Could not load SPU plugin %s!"
-msgstr "無法加載 SPU 外掛 %s!"
+msgstr "Lk[ SPU ~ %s!"
#: ../libpcsxcore/plugins.c:615
#, c-format
msgid "Could not load Controller 1 plugin %s!"
-msgstr "無法加載 \"控制器1\" 外掛 %s!"
+msgstr "Lk[ \"1\" ~ %s!"
#: ../libpcsxcore/plugins.c:669
#, c-format
msgid "Could not load Controller 2 plugin %s!"
-msgstr "無法加載 \"控制器2\" 外掛 %s!"
+msgstr "Lk[ \"2\" ~ %s!"
#: ../libpcsxcore/plugins.c:712
#, c-format
msgid "Could not load NetPlay plugin %s!"
-msgstr "無法加載聯網遊戲外掛 %s!"
+msgstr "Lk[pC~ %s!"
#: ../libpcsxcore/plugins.c:775
#, c-format
msgid "Error initializing CD-ROM plugin: %d"
-msgstr "CD-ROM 外掛初始化錯誤: %d"
+msgstr "CD-ROM ~lƿ~: %d"
#: ../libpcsxcore/plugins.c:777
#, c-format
msgid "Error initializing GPU plugin: %d"
-msgstr "GPU 外掛初始化錯誤: %d"
+msgstr "GPU ~lƿ~: %d"
#: ../libpcsxcore/plugins.c:779
#, c-format
msgid "Error initializing SPU plugin: %d"
-msgstr "SPU 外掛初始化錯誤: %d"
+msgstr "SPU ~lƿ~: %d"
#: ../libpcsxcore/plugins.c:781
#, c-format
msgid "Error initializing Controller 1 plugin: %d"
-msgstr "\"控制器1\" 外掛初始化錯誤: %d"
+msgstr "\"1\" ~lƿ~: %d"
#: ../libpcsxcore/plugins.c:783
#, c-format
msgid "Error initializing Controller 2 plugin: %d"
-msgstr "\"控制器2\" 外掛初始化錯誤: %d"
+msgstr "\"2\" ~lƿ~: %d"
#: ../libpcsxcore/plugins.c:787
#, c-format
msgid "Error initializing NetPlay plugin: %d"
-msgstr "聯網遊戲外掛初始化錯誤: %d"
+msgstr "pC~lƿ~: %d"
#: ../libpcsxcore/plugins.c:790
msgid "Plugins loaded.\n"
-msgstr "外掛已加載。\n"
+msgstr "~w[C\n"
#: ../libpcsxcore/psxmem.c:69
msgid "Error allocating memory!"
-msgstr "分配內存錯誤!"
+msgstr "ts~!"
#: ../libpcsxcore/psxmem.c:109
#, c-format
msgid "Could not open BIOS:\"%s\". Enabling HLE Bios!\n"
-msgstr "無法開啟 BIOS: \"%s\"。使用內部 HLE Bios。\n"
+msgstr "Lk} BIOS: \"%s\"CϥΤ HLE BiosC\n"
#: ../libpcsxcore/r3000a.c:34
#, c-format
msgid "Running PCSX Version %s (%s).\n"
-msgstr "PCSX 版本 %s (%s) 執行中。\n"
+msgstr "PCSX %s (%s) 椤C\n"
#: ../libpcsxcore/sio.c:99
msgid "Connection closed!\n"
-msgstr "連接被關閉!\n"
+msgstr "sQ!\n"
#: ../libpcsxcore/sio.c:322
#, c-format
msgid "No memory card value was specified - creating a default card %s\n"
-msgstr "未指定記憶卡 - 創建一個新的記憶卡 %s\n"
+msgstr "wOХd - Ыؤ@ӷsOХd %s\n"
#: ../libpcsxcore/sio.c:326
#, c-format
msgid "The memory card %s doesn't exist - creating it\n"
-msgstr "記憶卡 %s 不存在 - 正在創建\n"
+msgstr "OХd %s sb - bЫ\n"
#: ../libpcsxcore/sio.c:342
#, c-format
msgid "Memory card %s failed to load!\n"
-msgstr "記憶卡 %s 讀取失敗!\n"
+msgstr "OХd %s Ū!\n"
#: ../libpcsxcore/sio.c:346
#, c-format
msgid "Loading memory card %s\n"
-msgstr "正在加載記憶卡 %s\n"
+msgstr "b[OХd %s\n"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:8
#, fuzzy
msgid "Configure X11 Video"
-msgstr "配置 PCSX"
+msgstr "tm PCSX"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:39
msgid "Initial Window Size:"
@@ -1171,7 +1171,7 @@ msgstr ""
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:50
#, fuzzy
msgid "Stretching:"
-msgstr "在此處查找外掛:"
+msgstr "bBd~:"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:63
msgid "Dithering:"
@@ -1240,7 +1240,7 @@ msgstr ""
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:219
#, fuzzy
msgid "Autodetect FPS limit"
-msgstr "自動檢測"
+msgstr "۰˴"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:235
msgid "Skip frames when rendering."
@@ -1261,7 +1261,7 @@ msgstr ""
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:295
#, fuzzy
msgid "<b>Framerate</b>"
-msgstr "<b>金手指碼</b>"
+msgstr "<b>X</b>"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:324
#: ../plugins/peopsxgl/gpucfg/interface.c:567
@@ -1287,7 +1287,7 @@ msgstr ""
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:410
#, fuzzy
msgid "Disable CPU Saving"
-msgstr "禁用 CD 音頻"
+msgstr "T CD W"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:426
msgid "Odd/even bit hack"
@@ -1333,7 +1333,7 @@ msgstr ""
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:580
#, fuzzy
msgid "Disable coordinate check"
-msgstr "禁用 XA 解碼"
+msgstr "T XA ѽX"
#: ../plugins/dfxvideo/gpucfg-0.1df/dfxvideo.glade2:596
msgid "Chrono Cross"
@@ -1397,83 +1397,83 @@ msgstr "PCSX"
#: ../data/pcsx.glade2:23
msgid "_File"
-msgstr "檔案(_F)"
+msgstr "ɮ(_F)"
#: ../data/pcsx.glade2:30
msgid "Run _CD"
-msgstr "執行光碟(_C)"
+msgstr "(_C)"
#: ../data/pcsx.glade2:46
msgid "Run _ISO"
-msgstr "執行 _ISO"
+msgstr " _ISO"
#: ../data/pcsx.glade2:62
msgid "Run _BIOS"
-msgstr "執行 _BIOS"
+msgstr " _BIOS"
#: ../data/pcsx.glade2:78
msgid "Run _EXE"
-msgstr "執行 _EXE"
+msgstr " _EXE"
#: ../data/pcsx.glade2:99
msgid "E_xit"
-msgstr "離開(_X)"
+msgstr "}(_X)"
#: ../data/pcsx.glade2:119
msgid "_Emulator"
-msgstr "模擬器(_E)"
+msgstr "(_E)"
#: ../data/pcsx.glade2:126
msgid "_Continue"
-msgstr "繼續(_C)"
+msgstr "~(_C)"
#: ../data/pcsx.glade2:141
msgid "_Reset"
-msgstr "複位(_R)"
+msgstr "Ʀ(_R)"
#: ../data/pcsx.glade2:161
msgid "_Switch ISO"
-msgstr "更換 ISO(_S)"
+msgstr " ISO(_S)"
#: ../data/pcsx.glade2:182
msgid "_Save State"
-msgstr "存儲記錄(_S)"
+msgstr "sxO(_S)"
#: ../data/pcsx.glade2:189 ../data/pcsx.glade2:268
msgid "Slot _1"
-msgstr "記錄 _1"
+msgstr "O _1"
#: ../data/pcsx.glade2:198 ../data/pcsx.glade2:277
msgid "Slot _2"
-msgstr "記錄 _2"
+msgstr "O _2"
#: ../data/pcsx.glade2:207 ../data/pcsx.glade2:286
msgid "Slot _3"
-msgstr "記錄 _3"
+msgstr "O _3"
#: ../data/pcsx.glade2:216 ../data/pcsx.glade2:295
msgid "Slot _4"
-msgstr "記錄 _4"
+msgstr "O _4"
#: ../data/pcsx.glade2:225 ../data/pcsx.glade2:304
msgid "Slot _5"
-msgstr "記錄 _5"
+msgstr "O _5"
#: ../data/pcsx.glade2:234 ../data/pcsx.glade2:313
msgid "_Other..."
-msgstr "其它(_O)..."
+msgstr "䥦(_O)..."
#: ../data/pcsx.glade2:261
msgid "_Load State"
-msgstr "讀取記錄(_L)"
+msgstr "ŪO(_L)"
#: ../data/pcsx.glade2:344
msgid "_Configuration"
-msgstr "配置(_C)"
+msgstr "tm(_C)"
#: ../data/pcsx.glade2:351
msgid "_Plugins & BIOS"
-msgstr "外掛及 BIOS(_P)"
+msgstr "~ BIOS(_P)"
#: ../data/pcsx.glade2:372
msgid "_CPU"
@@ -1481,55 +1481,55 @@ msgstr "_CPU"
#: ../data/pcsx.glade2:387
msgid "_Memory Cards"
-msgstr "記憶卡(_M)"
+msgstr "OХd(_M)"
#: ../data/pcsx.glade2:403
msgid "_Netplay"
-msgstr "聯網遊戲(_N)"
+msgstr "pC(_N)"
#: ../data/pcsx.glade2:423
msgid "Chea_t"
-msgstr "金手指(_T)"
+msgstr "(_T)"
#: ../data/pcsx.glade2:431
msgid "_Browse"
-msgstr "檢視(_B)"
+msgstr "˵(_B)"
#: ../data/pcsx.glade2:445
msgid "_Search"
-msgstr "搜尋(_S)"
+msgstr "jM(_S)"
#: ../data/pcsx.glade2:474
msgid "_Help"
-msgstr "說明(_H)"
+msgstr "(_H)"
#: ../data/pcsx.glade2:481
msgid "_About PCSX"
-msgstr "關於 PCSX(_A)"
+msgstr " PCSX(_A)"
#: ../data/pcsx.glade2:617
msgid "Select Folder to Search"
-msgstr "選擇要查找的資料夾"
+msgstr "ܭnd䪺Ƨ"
#: ../data/pcsx.glade2:633
msgid "Search in:"
-msgstr "在此處查找外掛:"
+msgstr "bBd~:"
#: ../data/pcsx.glade2:906
msgid "Graphics:"
-msgstr "圖像:"
+msgstr "Ϲ:"
#: ../data/pcsx.glade2:919
msgid "Sound:"
-msgstr "聲音:"
+msgstr "n:"
#: ../data/pcsx.glade2:934
msgid "Controller 1: "
-msgstr "控制器 1:"
+msgstr " 1:"
#: ../data/pcsx.glade2:949
msgid "Controller 2:"
-msgstr "控制器 2:"
+msgstr " 2:"
#: ../data/pcsx.glade2:964
msgid "CD-ROM:"
@@ -1537,7 +1537,7 @@ msgstr "CD-ROM:"
#: ../data/pcsx.glade2:1002
msgid "<b>Plugins</b>"
-msgstr "<b>外掛</b>"
+msgstr "<b>~</b>"
#: ../data/pcsx.glade2:1061
msgid "<b>BIOS</b>"
@@ -1545,35 +1545,35 @@ msgstr "<b>BIOS</b>"
#: ../data/pcsx.glade2:1106
msgid "Configure CPU"
-msgstr "配置 CPU"
+msgstr "tm CPU"
#: ../data/pcsx.glade2:1133
msgid "Enable Debugger"
-msgstr "啟用調試器"
+msgstr "ҥνով"
#: ../data/pcsx.glade2:1151
msgid "SPU IRQ Always Enabled"
-msgstr "SPU IRQ 總是啟用"
+msgstr "SPU IRQ `Oҥ"
#: ../data/pcsx.glade2:1167
msgid "Black & White Movies"
-msgstr "黑白電影"
+msgstr "¥չqv"
#: ../data/pcsx.glade2:1201
msgid "Enable Interpreter CPU"
-msgstr "啟用解釋執行 CPU"
+msgstr "ҥθ CPU"
#: ../data/pcsx.glade2:1235
msgid "Disable CD Audio"
-msgstr "禁用 CD 音頻"
+msgstr "T CD W"
#: ../data/pcsx.glade2:1251
msgid "Disable XA Decoding"
-msgstr "禁用 XA 解碼"
+msgstr "T XA ѽX"
#: ../data/pcsx.glade2:1298
msgid "<b>Options</b>"
-msgstr "<b>選項</b>"
+msgstr "<b>ﶵ</b>"
#: ../data/pcsx.glade2:1335
msgid ""
@@ -1585,43 +1585,43 @@ msgstr ""
#: ../data/pcsx.glade2:1349
msgid "<b>System Type</b>"
-msgstr "<b>系統類型</b>"
+msgstr "<b>t</b>"
#: ../data/pcsx.glade2:1391
msgid "Configure NetPlay"
-msgstr "配置聯網遊戲"
+msgstr "tmpC"
#: ../data/pcsx.glade2:1473
msgid "<b>NetPlay</b>"
-msgstr "<b>聯網遊戲</b>"
+msgstr "<b>pC</b>"
#: ../data/pcsx.glade2:1517
msgid "Configure Memory Cards"
-msgstr "配置記憶卡"
+msgstr "tmOХd"
#: ../data/pcsx.glade2:1587 ../data/pcsx.glade2:1951
msgid "Format"
-msgstr "格式化"
+msgstr "榡"
#: ../data/pcsx.glade2:1631 ../data/pcsx.glade2:1995
msgid "Reload"
-msgstr "重新加載"
+msgstr "s["
#: ../data/pcsx.glade2:1673
msgid "<b>Memory Card 1</b>"
-msgstr "<b>記憶卡 1</b>"
+msgstr "<b>OХd 1</b>"
#: ../data/pcsx.glade2:1728 ../data/pcsx.glade2:1772
msgid "Copy"
-msgstr "複制"
+msgstr "ƨ"
#: ../data/pcsx.glade2:1819 ../data/pcsx.glade2:1866
msgid "Un/Delete"
-msgstr "刪除/恢複"
+msgstr "R/"
#: ../data/pcsx.glade2:2037
msgid "<b>Memory Card 2</b>"
-msgstr "<b>記憶卡 2</b>"
+msgstr "<b>OХd 2</b>"
#: ../data/pcsx.glade2:2091
msgid ""
@@ -1630,14 +1630,14 @@ msgid ""
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
msgstr ""
-"(C) 1999-2003 PCSX 開發組\n"
+"(C) 1999-2003 PCSX }o\n"
"(C) 2005-2006 Ryan Schultz\n"
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
#: ../data/pcsx.glade2:2095
msgid "A PlayStation emulator."
-msgstr "一個 PlayStation 模擬器。"
+msgstr "@ PlayStation C"
#: ../data/pcsx.glade2:2097
msgid "PCSX Reloaded"
@@ -1668,11 +1668,11 @@ msgstr "Wei Mingzhi <whistler@openoffice.org>"
#: ../data/pcsx.glade2:2148
msgid "Edit Cheat Codes"
-msgstr "編輯金手指"
+msgstr "s"
#: ../data/pcsx.glade2:2185
msgid "<b>Cheat Codes</b>"
-msgstr "<b>金手指碼</b>"
+msgstr "<b>X</b>"
#: ../data/pcsx.glade2:2203
msgid "gtk-add"
@@ -1688,7 +1688,7 @@ msgstr ""
#: ../data/pcsx.glade2:2285
msgid "Disable"
-msgstr "禁用"
+msgstr "T"
#: ../data/pcsx.glade2:2303
msgid "gtk-open"
@@ -1715,7 +1715,7 @@ msgstr ""
#: ../data/pcsx.glade2:2415
#, fuzzy
msgid "Search For:"
-msgstr "在此處查找外掛:"
+msgstr "bBd~:"
#: ../data/pcsx.glade2:2425
msgid "Data Type:"
@@ -1761,22 +1761,22 @@ msgstr ""
#: ../data/pcsx.glade2:2712
#, fuzzy
msgid "Search"
-msgstr "搜尋(_S)"
+msgstr "jM(_S)"
#: ../data/pcsx.glade2:2741
#, fuzzy
msgid "Restart"
-msgstr "複位(_R)"
+msgstr "Ʀ(_R)"
#: ../data/pcsx.glade2:2768
#, fuzzy
msgid "<b>Cheat Search</b>"
-msgstr "<b>金手指碼</b>"
+msgstr "<b>X</b>"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:9
#, fuzzy
msgid "Configure Sound"
-msgstr "配置 PCSX"
+msgstr "tm PCSX"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:62
msgid "Volume:"
@@ -1816,7 +1816,7 @@ msgstr ""
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:208
#, fuzzy
msgid "<b>General</b>"
-msgstr "<b>聯網遊戲</b>"
+msgstr "<b>pC</b>"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:264
msgid "Enable or disable XA music."
@@ -1825,7 +1825,7 @@ msgstr ""
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:266
#, fuzzy
msgid "Enable XA"
-msgstr "啟用"
+msgstr "ҥ"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:284
msgid "Choose this if XA music is played too quickly."
@@ -1838,7 +1838,7 @@ msgstr ""
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:308
#, fuzzy
msgid "<b>XA Music</b>"
-msgstr "<b>外掛</b>"
+msgstr "<b>~</b>"
#: ../plugins/dfsound/spucfg-0.1df/dfsound.glade2:364
msgid "Use the asynchronous SPU interface."
@@ -1883,7 +1883,7 @@ msgstr ""
#: ../plugins/dfcdrom/interface.c:73
#, fuzzy
msgid "CDR configuration"
-msgstr "配置"
+msgstr "tm"
#: ../plugins/dfcdrom/interface.c:98
msgid "Choose your CD-ROM device or type its path if it's not listed"
@@ -1892,7 +1892,7 @@ msgstr ""
#: ../plugins/dfcdrom/interface.c:101
#, fuzzy
msgid "Select CD-ROM device"
-msgstr "選擇"
+msgstr ""
#: ../plugins/dfcdrom/interface.c:119
msgid "Select read mode:"
@@ -1921,7 +1921,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:117
#, fuzzy
msgid "OpenGL Driver configuration"
-msgstr "配置"
+msgstr "tm"
#: ../plugins/peopsxgl/gpucfg/interface.c:137
msgid "Textures"
@@ -2029,7 +2029,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:345
#, fuzzy
msgid "Framerate"
-msgstr "<b>金手指碼</b>"
+msgstr "<b>X</b>"
#: ../plugins/peopsxgl/gpucfg/interface.c:368
msgid "FPS"
@@ -2038,7 +2038,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:376
#, fuzzy
msgid "FPS limit manual"
-msgstr "自動檢測"
+msgstr "۰˴"
#: ../plugins/peopsxgl/gpucfg/interface.c:385
msgid "Show FPS display on startup"
@@ -2047,7 +2047,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:393
#, fuzzy
msgid "Use FPS limit"
-msgstr "自動檢測"
+msgstr "۰˴"
#: ../plugins/peopsxgl/gpucfg/interface.c:401
msgid "FPS limit auto-detection"
@@ -2167,7 +2167,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:607
#, fuzzy
msgid "Disable coord check"
-msgstr "禁用 XA 解碼"
+msgstr "T XA ѽX"
#: ../plugins/peopsxgl/gpucfg/interface.c:615
msgid "No blue glitches (LoD)"
@@ -2212,7 +2212,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:703
#, fuzzy
msgid "unused"
-msgstr "已使用"
+msgstr "wϥ"
#: ../plugins/peopsxgl/gpucfg/interface.c:711
msgid "Fake 'gpu busy'"
@@ -2225,7 +2225,7 @@ msgstr ""
#: ../plugins/peopsxgl/gpucfg/interface.c:742
#, fuzzy
msgid "Scanlines"
-msgstr "西班牙語"
+msgstr "Zy"
#: ../plugins/peopsxgl/gpucfg/interface.c:750
msgid "Blending (0..255, -1=dot):"
@@ -2258,7 +2258,7 @@ msgstr ""
#: ../plugins/dfinput/dfinput.glade2:7
#, fuzzy
msgid "Configure Gamepad/Keyboard"
-msgstr "配置記憶卡"
+msgstr "tmOХd"
#: ../plugins/dfinput/dfinput.glade2:25
msgid "Pad number:"
@@ -2287,40 +2287,40 @@ msgstr ""
#: ../plugins/dfinput/dfinput.glade2:155
#, fuzzy
msgid "<b>Button Configuration</b>"
-msgstr "配置"
+msgstr "tm"
#: ../plugins/dfinput/dfinput.glade2:209
-msgid "Based on PadJoy by Erich Kitzmüller (ammoq@ammoq.com)"
+msgid "Based on PadJoy by Erich Kitzmuller (ammoq@ammoq.com)"
msgstr ""
#~ msgid "_Load"
-#~ msgstr "讀取(_L)"
+#~ msgstr "Ū(_L)"
#~ msgid "_Save"
-#~ msgstr "存儲(_S)"
+#~ msgstr "sx(_S)"
#~ msgid "_Run"
-#~ msgstr "執行(_R)"
+#~ msgstr "(_R)"
#~ msgid ""
#~ "PCSX is licensed under the GNU GPL; see the included COPYING file for "
#~ "more detail."
-#~ msgstr "PCSX 在 GNU GPL 條款下發布;請參看包含的 COPYING 檔案。"
+#~ msgstr "PCSX b GNU GPL ڤUoFаѬݥ]t COPYING ɮסC"
#~ msgid "This plugin reports that it should work correctly."
-#~ msgstr "此插件報告其可正常工作。"
+#~ msgstr "ii`u@C"
#~ msgid "This plugin reports that it won't work correctly."
-#~ msgstr "此插件報告其不可正常工作。"
+#~ msgstr "i䤣i`u@C"
#~ msgid "Could not load Cdrom"
-#~ msgstr "無法加載光碟"
+#~ msgstr "Lk["
#~ msgid "Could not open plugins directory: '%s'\n"
-#~ msgstr "無法開啟插件目錄: \"%s\"\n"
+#~ msgstr "Lk}Ҵؿ: \"%s\"\n"
#~ msgid "Run CD Though &Bios"
-#~ msgstr "使用 BIOS 運行光碟(&B)"
+#~ msgstr "ϥ BIOS B(&B)"
#~ msgid "Run CD Through BIOS"
-#~ msgstr "使用 BIOS 運行光碟"
+#~ msgstr "ϥ BIOS B"