summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-28 10:58:17 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-11-28 10:58:17 +0000
commit78d783281d5381facf626b4adad4509bd276b843 (patch)
treecc75f5a17cad81dac6544a2203f34882e86021bb
parent555d07b089f1893a3ae9534dcad7397f1fd6eedf (diff)
downloadpcsxr-78d783281d5381facf626b4adad4509bd276b843.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@38376 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--ChangeLog10
-rw-r--r--data/pcsx.glade2245
-rw-r--r--gui/Cheat.c4
-rw-r--r--gui/Gtk2Gui.c567
-rw-r--r--gui/Makefile.am1
-rw-r--r--gui/Makefile.in4
-rw-r--r--gui/MemcardDlg.c723
-rw-r--r--gui/MemcardDlg.h24
-rw-r--r--po/pcsx.pot285
-rw-r--r--po/pt_BR.po554
-rw-r--r--po/zh_CN.po330
-rw-r--r--po/zh_TW.po330
12 files changed, 1599 insertions, 1478 deletions
diff --git a/ChangeLog b/ChangeLog
index 1adad9f7..94ab35e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+November 28, 2009 Wei Mingzhi <weimingzhi@gmail.com>
+
+ * data/pcsx.glade2: Adjusted Memcard dialog.
+ * po/pt_BR.po, po/zh_CN.po, po/zh_TW.po, po/pcsx.pot: Updated.
+ * gui/Cheat.c: Fixed memory leaks.
+ * gui/Gtk2Gui.c: Moved memcard dialog stuff into MemcardDlg.c.
+ * gui/MemcardDlg.c: Added.
+ * gui/MemcardDlg.h: Likewise.
+ * gui/Makefile.am: Added MemcardDlg.c.
+
November 27, 2009 Wei Mingzhi <weimingzhi@gmail.com>
* plugins/dfcdrom/cdrcfg-0.1df/main.c: Rewritten the configuration utility
diff --git a/data/pcsx.glade2 b/data/pcsx.glade2
index 694851b3..a528bf61 100644
--- a/data/pcsx.glade2
+++ b/data/pcsx.glade2
@@ -1741,6 +1741,56 @@ PAL</property>
<property name="border_width">5</property>
<property name="spacing">5</property>
<child>
+ <widget class="GtkButton" id="GtkButton_New1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <signal name="clicked" handler="OnMcd_Reload1"/>
+ <child>
+ <widget class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <widget class="GtkHBox" id="hbox57">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkImage" id="image324">
+ <property name="visible">True</property>
+ <property name="stock">gtk-new</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkButton" id="GtkButton_Format1">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -1787,29 +1837,29 @@ PAL</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="GtkButton_Reload1">
+ <widget class="GtkButton" id="GtkButton_Delete1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Reload1"/>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="OnMcd_Delete1"/>
<child>
- <widget class="GtkAlignment" id="alignment1">
+ <widget class="GtkAlignment" id="alignment45">
<property name="visible">True</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <widget class="GtkHBox" id="hbox57">
+ <widget class="GtkHBox" id="hbox63">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image324">
+ <widget class="GtkImage" id="image330">
<property name="visible">True</property>
- <property name="stock">gtk-redo</property>
+ <property name="stock">gtk-delete</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -1818,9 +1868,9 @@ PAL</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label1">
+ <widget class="GtkLabel" id="label105">
<property name="visible">True</property>
- <property name="label" translatable="yes">Reload</property>
+ <property name="label" translatable="yes">Un/Delete</property>
<property name="use_underline">True</property>
</widget>
<packing>
@@ -1837,7 +1887,7 @@ PAL</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
@@ -1892,6 +1942,7 @@ PAL</property>
<child>
<widget class="GtkVButtonBox" id="vbuttonbox2">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<property name="spacing">6</property>
<property name="layout_style">spread</property>
<child>
@@ -1994,106 +2045,6 @@ PAL</property>
<property name="position">1</property>
</packing>
</child>
- <child>
- <widget class="GtkButton" id="GtkButton_Delete2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Delete2"/>
- <child>
- <widget class="GtkAlignment" id="alignment44">
- <property name="visible">True</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <widget class="GtkHBox" id="hbox62">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkImage" id="image329">
- <property name="visible">True</property>
- <property name="stock">gtk-go-forward</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label104">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Un/Delete</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="GtkButton_Delete1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Delete1"/>
- <child>
- <widget class="GtkAlignment" id="alignment45">
- <property name="visible">True</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <child>
- <widget class="GtkHBox" id="hbox63">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkImage" id="image330">
- <property name="visible">True</property>
- <property name="stock">gtk-go-back</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label105">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Un/Delete</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
</widget>
</child>
</widget>
@@ -2139,6 +2090,56 @@ PAL</property>
<property name="border_width">5</property>
<property name="spacing">5</property>
<child>
+ <widget class="GtkButton" id="GtkButton_New2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <signal name="clicked" handler="OnMcd_Reload2"/>
+ <child>
+ <widget class="GtkAlignment" id="alignment48">
+ <property name="visible">True</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <widget class="GtkHBox" id="hbox66">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkImage" id="image333">
+ <property name="visible">True</property>
+ <property name="stock">gtk-new</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label108">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">New</property>
+ <property name="use_underline">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkButton" id="GtkButton_Format2">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -2185,29 +2186,29 @@ PAL</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="GtkButton_Reload2">
+ <widget class="GtkButton" id="GtkButton_Delete2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="receives_default">False</property>
- <signal name="clicked" handler="OnMcd_Reload2"/>
+ <property name="receives_default">True</property>
+ <signal name="clicked" handler="OnMcd_Delete2"/>
<child>
- <widget class="GtkAlignment" id="alignment48">
+ <widget class="GtkAlignment" id="alignment44">
<property name="visible">True</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
- <widget class="GtkHBox" id="hbox66">
+ <widget class="GtkHBox" id="hbox62">
<property name="visible">True</property>
<property name="spacing">2</property>
<child>
- <widget class="GtkImage" id="image333">
+ <widget class="GtkImage" id="image329">
<property name="visible">True</property>
- <property name="stock">gtk-redo</property>
+ <property name="stock">gtk-delete</property>
</widget>
<packing>
<property name="expand">False</property>
@@ -2216,9 +2217,9 @@ PAL</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label108">
+ <widget class="GtkLabel" id="label104">
<property name="visible">True</property>
- <property name="label" translatable="yes">Reload</property>
+ <property name="label" translatable="yes">Un/Delete</property>
<property name="use_underline">True</property>
</widget>
<packing>
@@ -2235,7 +2236,7 @@ PAL</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</widget>
diff --git a/gui/Cheat.c b/gui/Cheat.c
index 0bd9bcae..0bec52a3 100644
--- a/gui/Cheat.c
+++ b/gui/Cheat.c
@@ -85,6 +85,7 @@ static void CheatList_TreeSelectionChanged(GtkTreeSelection *selection, gpointer
if (selected) {
path = gtk_tree_model_get_path(model, &iter);
i = *gtk_tree_path_get_indices(path);
+ gtk_tree_path_free(path);
// If a row was selected, and the row is not blank, we can now enable
// some of the disabled widgets
@@ -189,6 +190,7 @@ static void OnCheatListDlg_EditClicked(GtkWidget *widget, gpointer user_data) {
path = gtk_tree_model_get_path(model, &iter);
index = *gtk_tree_path_get_indices(path);
+ gtk_tree_path_free(path);
dlg = gtk_dialog_new_with_buttons(_("Edit Cheat"), GTK_WINDOW(CheatListDlg),
GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
@@ -277,6 +279,7 @@ static void OnCheatListDlg_DelClicked(GtkWidget *widget, gpointer user_data) {
if (selected) {
path = gtk_tree_model_get_path(model, &iter);
i = *gtk_tree_path_get_indices(path);
+ gtk_tree_path_free(path);
RemoveCheat(i);
}
@@ -610,6 +613,7 @@ static int GetSelectedResultIndex() {
path = gtk_tree_model_get_path(model, &iter);
i = *gtk_tree_path_get_indices(path);
+ gtk_tree_path_free(path);
assert(i < NumSearchResults);
return i;
diff --git a/gui/Gtk2Gui.c b/gui/Gtk2Gui.c
index 0ae4ccc7..f023a7c4 100644
--- a/gui/Gtk2Gui.c
+++ b/gui/Gtk2Gui.c
@@ -36,6 +36,8 @@
#include "../libpcsxcore/sio.h"
#include "../libpcsxcore/cheat.h"
+#include "MemcardDlg.h"
+
extern int UseGui;
PSEgetLibType PSE_getLibType = NULL;
@@ -46,13 +48,11 @@ PSEgetLibName PSE_getLibName = NULL;
void UpdatePluginsBIOS();
void UpdatePluginsBIOS_UpdateGUI(GladeXML *xml);
void FindNetPlugin(GladeXML *xml);
-void copy_memcard_data (char *from, char *to, gint *i, gchar *str);
void OnNet_Conf(GtkWidget *widget, gpointer user_data);
void OnNet_About(GtkWidget *widget, gpointer user_data);
// Functions Callbacks
-/*make them getting the right params, will be used later*/
void OnFile_RunCd();
void OnFile_RunBios();
void OnFile_RunExe();
@@ -64,7 +64,6 @@ void OnConf_Graphics();
void OnConf_Sound();
void OnConf_CdRom();
void OnConf_Pad();
-void OnConf_Mcds();
void OnConf_Cpu();
void OnConf_Net();
void OnHelp_Help();
@@ -98,7 +97,6 @@ GtkWidget *controlwidget;
int destroy = 0;
#define MAX_SLOTS 5
-#define MAX_MEMCARD_BLOCKS 15
#define FindComboText(combo, list, conf) \
if (strlen(conf) > 0) { \
@@ -1038,457 +1036,6 @@ void OnConf_Net() {
GTK_SIGNAL_FUNC(OnNet_About), xml, NULL, G_CONNECT_AFTER);
}
-McdBlock Blocks[2][MAX_MEMCARD_BLOCKS]; /* Assuming 2 cards, 15 blocks? */
-int IconC[2][MAX_MEMCARD_BLOCKS];
-enum {
- CL_ICON,
- CL_TITLE,
- CL_STAT,
- CL_ID,
- CL_NAME,
- NUM_CL
-};
-
-GtkWidget *GtkCList_McdList1, *GtkCList_McdList2;
-GtkTreeSelection *sel1, *sel2;
-gint mcd1_row, mcd2_row;
-
-static void add_columns (GtkTreeView *treeview) {
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
-
- /* column for icon */
- renderer = gtk_cell_renderer_pixbuf_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Icon"),
- renderer, "pixbuf", CL_ICON, NULL);
- gtk_tree_view_append_column (treeview, column);
-
- /* column for title */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Title"),
- renderer, "text", CL_TITLE, NULL);
- gtk_tree_view_append_column (treeview, column);
-
- /* column for status */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Status"),
- renderer, "text", CL_STAT, NULL);
- gtk_tree_view_append_column (treeview, column);
-
- /* column for id */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("ID"),
- renderer, "text", CL_ID, NULL);
- gtk_tree_view_append_column (treeview, column);
-
- /* column for Name */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Name"),
- renderer, "text", CL_NAME, NULL);
- gtk_tree_view_append_column (treeview, column);
-}
-
-GdkPixbuf *SetIcon(GtkWidget *dialog, short *icon, int i) {
- GdkPixmap *pixmap;
- GdkImage *image;
- GdkVisual *visual;
- GdkGC *gc;
- int x, y, c;
-
- visual = gdk_window_get_visual(dialog->window);
-
- if (visual->depth == 8) return NULL;
-
- image = gdk_image_new(GDK_IMAGE_NORMAL, visual, 16, 16);
-
- for (y=0; y<16; y++) {
- for (x=0; x<16; x++) {
- c = icon[y*16+x];
- c = ((c&0x001f) << 10) | ((c&0x7c00) >> 10) | (c&0x03e0);
- if (visual->depth == 16)
- c = (c&0x001f) | ((c&0x7c00) << 1) | ((c&0x03e0) << 1);
- else if (visual->depth == 24 || visual->depth == 32)
- c = ((c&0x001f) << 3) | ((c&0x03e0) << 6) | ((c&0x7c00) << 9);
-
- gdk_image_put_pixel(image, x, y, c);
- }
- }
-
- pixmap = gdk_pixmap_new(dialog->window, 16, 16, visual->depth);
-
- gc = gdk_gc_new(pixmap);
- gdk_draw_image(pixmap, gc, image, 0, 0, 0, 0, 16, 16);
- gdk_gc_destroy(gc);
- gdk_image_destroy(image);
-
- return gdk_pixbuf_get_from_drawable (NULL,
- GDK_PIXMAP (pixmap),
- NULL,
- 0,0,0,0,-1,-1);
-}
-
-void LoadListItems(int mcd, GtkWidget *List, GtkWidget *dialog) {
- int i;
-
- GtkListStore *store= gtk_list_store_new (NUM_CL,GDK_TYPE_PIXBUF, G_TYPE_STRING,
- G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING);
- GtkTreeIter iter;
- GdkPixbuf *pixbuf;
-
- for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
- McdBlock *Info;
- gchar *state;
-
- Info = &Blocks[mcd-1][i];
- IconC[mcd-1][i] = 0;
-
- if ((Info->Flags & 0xF0) == 0xA0) {
- if ((Info->Flags & 0xF) >= 1 &&
- (Info->Flags & 0xF) <= 3) {
- state = _("Deleted");
- } else
- state = _("Free");
- } else if ((Info->Flags & 0xF0) == 0x50)
- state = _("Used");
- else
- state = _("Free");
-
-// if (Info->IconCount == 0) continue;
-
- pixbuf = SetIcon(dialog, Info->Icon, i+1);
-
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- CL_ICON, pixbuf,
- CL_TITLE, Info->Title,
- CL_STAT, state,
- CL_NAME, Info->Name,
- CL_ID, Info->ID,
- -1);
- }
-
- gtk_tree_view_set_model (GTK_TREE_VIEW (List), GTK_TREE_MODEL (store));
- g_object_unref (G_OBJECT (store));
- gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (List), TRUE);
- gtk_widget_show(List);
-}
-
-void UpdateMcdDlg(GtkWidget *widget) {
- int i;
- GladeXML *xml;
- GtkWidget *list1, *list2, *dialog;
-
- for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
- GetMcdBlockInfo(1, i+1, &Blocks[0][i]);
- GetMcdBlockInfo(2, i+1, &Blocks[1][i]);
- }
-
- xml = glade_get_widget_tree (widget);
- list1 = glade_xml_get_widget (xml, "GtkCList_McdList1");
- list2 = glade_xml_get_widget (xml, "GtkCList_McdList2");
- dialog = glade_xml_get_widget (xml, "McdsDlg");
- LoadListItems(1, list1, dialog);
- LoadListItems(2, list2, dialog);
-}
-
-void OnMcd_Clicked (GtkDialog *dialog, gint arg1, gpointer user_data) {
- GladeXML *xml = user_data;
-
- if (arg1 == GTK_RESPONSE_OK) {
- gchar *tmp;
- GtkWidget *widget;
-
- widget = glade_xml_get_widget (xml, "GtkMcd1FSButton");
- if ((tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget))) != NULL) {
- strcpy(Config.Mcd1, tmp);
- g_free (tmp);
- }
-
- widget = glade_xml_get_widget (xml, "GtkMcd2FSButton");
- if ((tmp = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget))) != NULL) {
- strcpy(Config.Mcd2, tmp);
- g_free (tmp);
- }
-
- SaveConfig();
- }
-
- LoadMcds(Config.Mcd1, Config.Mcd2);
- gtk_widget_destroy(GTK_WIDGET (dialog));
-}
-
-void on_memcard_file_changed (GtkWidget *widget, gpointer user_data) {
- gint memcard = (int) user_data;
- gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
-
- if (filename != NULL) {
- LoadMcd(memcard, filename);
- UpdateMcdDlg(widget);
- gtk_widget_set_sensitive (widget, TRUE);
- }
-
- g_free (filename);
-}
-
-void OnMcd_Format(GtkWidget *widget, gpointer user_data) {
- GladeXML *xml;
- GtkWidget *memcard_fs;
- GtkWidget *message_dialog;
- gint result;
- gchar *str;
-
- gint memcard = (int) user_data;
-
- /* TODO Check if the memory card actually has data on it before displaying this */
-
- message_dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL,
- GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
- _("Format this Memory Card?"));
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
- _("If you format the memory card, the card will be empty, and any existing data overwritten."));
- gtk_dialog_add_buttons (GTK_DIALOG (message_dialog),
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- _("Format card"), GTK_RESPONSE_YES,
- NULL);
-
- result = gtk_dialog_run (GTK_DIALOG (message_dialog));
- gtk_widget_destroy (message_dialog);
-
- if (result == GTK_RESPONSE_YES) {
- xml = glade_get_widget_tree (widget);
- if (memcard == 1)
- memcard_fs = glade_xml_get_widget (xml, "GtkMcd1FSButton");
- else
- memcard_fs = glade_xml_get_widget (xml, "GtkMcd2FSButton");
-
- str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (memcard_fs));
-
- CreateMcd(str);
- LoadMcd(memcard, str);
- UpdateMcdDlg(widget);
- g_free (str);
- }
-}
-
-void OnMcd_Reload (GtkWidget *widget, gpointer user_data) {
- GladeXML *xml;
- GtkWidget *memcard_fs;
- gchar *str;
-
- gint memcard = (int) user_data;
-
- xml = glade_get_widget_tree (widget);
-
- if (memcard == 1) {
- memcard_fs = glade_xml_get_widget (xml, "GtkMcd1FSButton");
- str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (memcard_fs));
- } else {
- memcard_fs = glade_xml_get_widget (xml, "GtkMcd2FSButton");
- str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (memcard_fs));
- }
-
- LoadMcd (memcard, str);
- UpdateMcdDlg(widget);
-
- g_free (str);
-}
-
-static int copy = 0, copymcd = 0;
-
-static int get_free_memcard_slot (int target_card) {
- McdBlock *Info;
- gboolean found = FALSE;
-
- int i = 0;
- while (i < 15 && found == FALSE) {
- Info = &Blocks[target_card][i];
- if (g_ascii_strcasecmp (Info->Title, "") == 0) {
- found = TRUE;
- } else {
- i++;
- }
- }
-
- if (found == TRUE)
- return i;
-
- // no free slots, try to find a deleted one
- i = 0;
- while (i < 15 && found == FALSE) {
- Info = &Blocks[target_card][i];
- if ((Info->Flags & 0xF0) != 0x50) {
- found = TRUE;
- } else {
- i++;
- }
- }
-
- if (found == TRUE)
- return i;
-
- return -1;
-}
-
-void OnMcd_CopyTo(GtkWidget *widget, gpointer user_data) {
- gint mcd = (gint)user_data;
-
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkTreePath *path;
- gint *i;
- GladeXML *xml;
- GtkTreeSelection *treesel;
- gchar *str;
- char *source, *destination;
-
- int first_free_slot;
-
- xml = glade_get_widget_tree(widget);
-
- if (mcd == 1)
- treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(GtkCList_McdList1));
- else
- treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(GtkCList_McdList2));
-
- /* If the item selected is not reported as a 'Free' slot */
- if (gtk_tree_selection_get_selected(treesel, &model, &iter)) {
- path = gtk_tree_model_get_path(model, &iter);
- i = gtk_tree_path_get_indices(path);
- copy = *i;
- copymcd = mcd;
- gtk_tree_path_free(path);
- }
-
- /* Determine the first free slot in the target memory card */
- first_free_slot = get_free_memcard_slot(mcd - 1);
- if (first_free_slot == -1) {
- /* No free slots available on the destination card */
- SysMessage(_("No space available in the target memory card!"));
- return;
- }
- xml = glade_get_widget_tree (GtkCList_McdList1);
-
- if (mcd == 1) {
- str = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(glade_xml_get_widget (xml, "GtkMcd1FSButton")));
- source = Mcd2Data;
- copy = mcd2_row;
- destination = Mcd1Data;
- } else {
- str = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(glade_xml_get_widget (xml, "GtkMcd2FSButton")));
- source = Mcd1Data;
- copy = mcd1_row;
- destination = Mcd2Data;
- }
-
- copy_memcard_data (source, destination, &first_free_slot, str);
- UpdateMcdDlg(widget);
-}
-
-void copy_memcard_data (char *from, char *to, gint *i, gchar *str) {
- memcpy(to + (*i+1) * 128, from + (copy+1) * 128, 128);
- SaveMcd((char*)str, to, (*i+1) * 128, 128);
- memcpy(to + (*i+1) * 1024 * 8, from + (copy+1) * 1024 * 8, 1024 * 8);
- SaveMcd((char*)str, to, (*i+1) * 1024 * 8, 1024 * 8);
-}
-
-void tree_selection_changed_cb (GtkTreeSelection *selection, gpointer user_data) {
- GladeXML *xml;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkTreePath *path;
-
- gboolean selected;
- int i;
- char *data;
-
- gint memcard = (int) user_data;
-
- if (memcard == 1) {
- selected = gtk_tree_selection_get_selected (selection, &model, &iter);
- data = Mcd1Data;
- } else {
- selected = gtk_tree_selection_get_selected (selection, &model, &iter);
- data = Mcd2Data;
- }
-
- if (selected) {
- path = gtk_tree_model_get_path (model, &iter);
- i = *gtk_tree_path_get_indices (path);
-
- /* If a row was selected, and the row is not blank, we can now enable
- some of the disabled widgets */
- /* Check LoadListItems for determining state */
- xml = glade_get_widget_tree (GtkCList_McdList1);
- GtkWidget *disable, *enable;
- if (memcard == 1) {
- mcd1_row = i;
- enable = glade_xml_get_widget (xml, "GtkButton_CopyTo2");
- disable = glade_xml_get_widget (xml, "GtkButton_CopyTo1");
- } else {
- mcd2_row = i;
- enable = glade_xml_get_widget (xml, "GtkButton_CopyTo1");
- disable = glade_xml_get_widget (xml, "GtkButton_CopyTo2");
- }
- gtk_widget_set_sensitive (enable, TRUE);
- gtk_widget_set_sensitive (disable, FALSE);
- }
-}
-
-void on_memcard_delete (GtkWidget *widget, gpointer user_data) {
- McdBlock *Info;
- int i, xor = 0, j;
- char *data, *ptr;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GtkTreePath *path;
- gchar *filename;
- GladeXML *xml;
- gboolean selected;
- GtkWidget *tree;
- GtkTreeSelection *sel;
-
- gint memcard = (int) user_data;
-
- xml = glade_get_widget_tree (widget);
- if (memcard == 1) {
- tree = glade_xml_get_widget (xml, "GtkCList_McdList1");
- sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
- selected = gtk_tree_selection_get_selected (sel, &model, &iter);
- data = Mcd1Data;
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (glade_xml_get_widget (xml, "GtkMcd1FSButton")));
- } else {
- tree = glade_xml_get_widget (xml, "GtkCList_McdList2");
- sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
- selected = gtk_tree_selection_get_selected (sel, &model, &iter);
- data = Mcd2Data;
- filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (glade_xml_get_widget (xml, "GtkMcd2FSButton")));
- }
-
- if (selected) {
- path = gtk_tree_model_get_path (model, &iter);
- i = *gtk_tree_path_get_indices (path);
-
- i++;
- ptr = data + i * 128;
- Info = &Blocks[memcard-1][i-1];
-
- if ((Info->Flags & 0xF0) == 0xA0) {
- if ((Info->Flags & 0xF) >= 1 &&
- (Info->Flags & 0xF) <= 3) { // deleted
- *ptr = 0x50 | (Info->Flags & 0xF);
- } else return;
- } else if ((Info->Flags & 0xF0) == 0x50) { // used
- *ptr = 0xA0 | (Info->Flags & 0xF);
- } else { return; }
-
- for (j=0; j<127; j++) xor^=*ptr++;
- *ptr = xor;
-
- SaveMcd((char*)filename, data, i * 128, 128);
- UpdateMcdDlg(widget);
- }
-}
-
void OnConf_Graphics() {
void *drv;
GPUconfigure conf;
@@ -1588,116 +1135,6 @@ void OnConf_Pad() {
}
}
-void OnConf_Mcds() {
- GladeXML *xml;
- GtkWidget *dialog;
- GtkWidget *widget;
- GtkTreeSelection *treesel1, *treesel2;
- gchar *str;
- int i;
-
- xml = glade_xml_new(PACKAGE_DATA_DIR "pcsx.glade2", "McdsDlg", NULL);
-
- if (!xml) {
- g_warning("We could not load the interface!");
- return;
- }
-
- dialog = glade_xml_get_widget(xml, "McdsDlg");
-
- gtk_window_set_title(GTK_WINDOW(dialog), _("Memory Card Manager"));
-
- /* Assign default memory cards */
- if (!strlen(Config.Mcd1)) {
- str = g_strconcat (getenv("HOME"), DEFAULT_MEM_CARD_1, NULL);
- strcpy(Config.Mcd1, str);
- g_free (str);
- }
-
- if (!strlen(Config.Mcd2)) {
- str = g_strconcat (getenv("HOME"), DEFAULT_MEM_CARD_2, NULL);
- strcpy(Config.Mcd2, str);
- g_free (str);
- }
-
- GtkCList_McdList1 = glade_xml_get_widget(xml, "GtkCList_McdList1");
- add_columns(GTK_TREE_VIEW (GtkCList_McdList1));
- GtkCList_McdList2 = glade_xml_get_widget(xml, "GtkCList_McdList2");
- add_columns(GTK_TREE_VIEW (GtkCList_McdList2));
-
- treesel1 = gtk_tree_view_get_selection (GTK_TREE_VIEW (GtkCList_McdList1));
- gtk_tree_selection_set_mode (treesel1, GTK_SELECTION_SINGLE);
- g_signal_connect_data (G_OBJECT (treesel1), "changed",
- G_CALLBACK (tree_selection_changed_cb),
- (gpointer) 1, NULL,
- G_CONNECT_AFTER);
-
- treesel2 = gtk_tree_view_get_selection (GTK_TREE_VIEW (GtkCList_McdList2));
- gtk_tree_selection_set_mode (treesel2, GTK_SELECTION_SINGLE);
- g_signal_connect_data (G_OBJECT (treesel2), "changed",
- G_CALLBACK (tree_selection_changed_cb),
- (gpointer) 2, NULL,
- G_CONNECT_AFTER);
-
- for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
- GetMcdBlockInfo (1, i+1, &Blocks[0][i]);
- GetMcdBlockInfo (2, i+1, &Blocks[1][i]);
- }
-
- LoadListItems(1, GtkCList_McdList1, dialog);
- LoadListItems(2, GtkCList_McdList2, dialog);
-
- /* Setup a handler for when Close or Cancel is clicked */
- g_signal_connect_data(GTK_OBJECT(dialog), "response",
- GTK_SIGNAL_FUNC(OnMcd_Clicked), xml, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkButton_Format1");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnMcd_Format), (gpointer) 1, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkButton_Format2");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnMcd_Format), (gpointer) 2, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkMcd1FSButton");
- g_signal_connect_data(GTK_OBJECT(widget), "selection-changed",
- GTK_SIGNAL_FUNC(on_memcard_file_changed), (gpointer) 1, NULL, G_CONNECT_AFTER);
- gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (widget), Config.Mcd1);
-
- widget = glade_xml_get_widget(xml, "GtkMcd2FSButton");
- g_signal_connect_data(GTK_OBJECT(widget), "selection-changed",
- GTK_SIGNAL_FUNC(on_memcard_file_changed), (gpointer) 2, NULL, G_CONNECT_AFTER);
- gtk_file_chooser_select_filename (GTK_FILE_CHOOSER (widget), Config.Mcd2);
-
- widget = glade_xml_get_widget(xml, "GtkButton_Reload1");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnMcd_Reload), (gpointer) 1, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkButton_Reload2");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnMcd_Reload), (gpointer) 2, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkButton_CopyTo1");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnMcd_CopyTo), (gpointer) 1, NULL, G_CONNECT_AFTER);
- gtk_widget_set_sensitive (GTK_WIDGET (widget), FALSE);
-
- widget = glade_xml_get_widget(xml, "GtkButton_CopyTo2");
- g_signal_connect_data(GTK_OBJECT(widget), "clicked",
- GTK_SIGNAL_FUNC(OnMcd_CopyTo), (gpointer) 2, NULL, G_CONNECT_AFTER);
- gtk_widget_set_sensitive (GTK_WIDGET (widget), FALSE);
-
- widget = glade_xml_get_widget(xml, "GtkButton_Delete1");
- g_signal_connect_data (GTK_OBJECT (widget), "clicked",
- GTK_SIGNAL_FUNC (on_memcard_delete), (gpointer) 1, NULL, G_CONNECT_AFTER);
-
- widget = glade_xml_get_widget(xml, "GtkButton_Delete2");
- g_signal_connect_data (GTK_OBJECT (widget), "clicked",
- GTK_SIGNAL_FUNC (on_memcard_delete), (gpointer) 2, NULL, G_CONNECT_AFTER);
-
- while (gtk_events_pending()) gtk_main_iteration();
-}
-
GtkWidget *CpuDlg;
GtkWidget *PsxCombo;
GList *psxglist;
diff --git a/gui/Makefile.am b/gui/Makefile.am
index 77c0c46b..c649e4f2 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -13,6 +13,7 @@ pcsx_SOURCES = \
Plugin.c \
Config.c \
Gtk2Gui.c \
+ MemcardDlg.c \
Cheat.c
pcsx_LDADD = \
diff --git a/gui/Makefile.in b/gui/Makefile.in
index 0c29fe75..db624692 100644
--- a/gui/Makefile.in
+++ b/gui/Makefile.in
@@ -47,7 +47,7 @@ am__installdirs = "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am_pcsx_OBJECTS = LnxMain.$(OBJEXT) Plugin.$(OBJEXT) Config.$(OBJEXT) \
- Gtk2Gui.$(OBJEXT) Cheat.$(OBJEXT)
+ Gtk2Gui.$(OBJEXT) MemcardDlg.$(OBJEXT) Cheat.$(OBJEXT)
pcsx_OBJECTS = $(am_pcsx_OBJECTS)
am__DEPENDENCIES_1 =
pcsx_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -231,6 +231,7 @@ pcsx_SOURCES = \
Plugin.c \
Config.c \
Gtk2Gui.c \
+ MemcardDlg.c \
Cheat.c
pcsx_LDADD = \
@@ -312,6 +313,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Config.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Gtk2Gui.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LnxMain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MemcardDlg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Plugin.Po@am__quote@
.c.o:
diff --git a/gui/MemcardDlg.c b/gui/MemcardDlg.c
new file mode 100644
index 00000000..255838d0
--- /dev/null
+++ b/gui/MemcardDlg.c
@@ -0,0 +1,723 @@
+/* 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., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <signal.h>
+#include <sys/time.h>
+
+#include "Linux.h"
+#include "../libpcsxcore/sio.h"
+
+#define MAX_MEMCARD_BLOCKS 15
+
+McdBlock Blocks[2][MAX_MEMCARD_BLOCKS]; // Assuming 2 cards, 15 blocks?
+int IconC[2][MAX_MEMCARD_BLOCKS];
+enum {
+ CL_ICON,
+ CL_TITLE,
+ CL_STAT,
+ CL_ID,
+ CL_NAME,
+ NUM_CL
+};
+
+GtkWidget *GtkCList_McdList1, *GtkCList_McdList2;
+
+static void AddColumns(GtkTreeView *treeview) {
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ // column for icon
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ column = gtk_tree_view_column_new_with_attributes(_("Icon"),
+ renderer, "pixbuf", CL_ICON, NULL);
+ gtk_tree_view_append_column(treeview, column);
+
+ // column for title
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes(_("Title"),
+ renderer, "text", CL_TITLE, NULL);
+ gtk_tree_view_append_column(treeview, column);
+
+ // column for status
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes(_("Status"),
+ renderer, "text", CL_STAT, NULL);
+ gtk_tree_view_append_column(treeview, column);
+
+ // column for id
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes(_("ID"),
+ renderer, "text", CL_ID, NULL);
+ gtk_tree_view_append_column(treeview, column);
+
+ // column for Name
+ renderer = gtk_cell_renderer_text_new();
+ column = gtk_tree_view_column_new_with_attributes(_("Name"),
+ renderer, "text", CL_NAME, NULL);
+ gtk_tree_view_append_column(treeview, column);
+}
+
+static GdkPixbuf *SetIcon(GtkWidget *dialog, short *icon, int i) {
+ GdkPixmap *pixmap;
+ GdkImage *image;
+ GdkVisual *visual;
+ GdkGC *gc;
+ int x, y, c;
+
+ visual = gdk_window_get_visual(dialog->window);
+
+ if (visual->depth == 8) return NULL;
+
+ image = gdk_image_new(GDK_IMAGE_NORMAL, visual, 16, 16);
+
+ for (y = 0; y < 16; y++) {
+ for (x = 0; x < 16; x++) {
+ c = icon[y * 16 + x];
+ c = ((c & 0x001f) << 10) | ((c & 0x7c00) >> 10) | (c & 0x03e0);
+ if (visual->depth == 16)
+ c = (c & 0x001f) | ((c & 0x7c00) << 1) | ((c & 0x03e0) << 1);
+ else if (visual->depth == 24 || visual->depth == 32)
+ c = ((c & 0x001f) << 3) | ((c & 0x03e0) << 6) | ((c & 0x7c00) << 9);
+
+ gdk_image_put_pixel(image, x, y, c);
+ }
+ }
+
+ pixmap = gdk_pixmap_new(dialog->window, 16, 16, visual->depth);
+
+ gc = gdk_gc_new(pixmap);
+ gdk_draw_image(pixmap, gc, image, 0, 0, 0, 0, 16, 16);
+ gdk_gc_destroy(gc);
+ gdk_image_destroy(image);
+
+ return gdk_pixbuf_get_from_drawable(NULL, GDK_PIXMAP (pixmap), NULL,
+ 0, 0, 0, 0, -1, -1);
+}
+
+static int GetSelection(int memcard) {
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreePath *path;
+ GtkTreeSelection *selection;
+ int r;
+
+ gboolean selected;
+
+ if (memcard == 1)
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(GtkCList_McdList1));
+ else
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(GtkCList_McdList2));
+
+ selected = gtk_tree_selection_get_selected(selection, &model, &iter);
+
+ if (selected) {
+ path = gtk_tree_model_get_path(model, &iter);
+ r = *gtk_tree_path_get_indices(path);
+ gtk_tree_path_free(path);
+ return r;
+ }
+
+ return -1;
+}
+
+static void LoadListItems(int mcd, GtkWidget *widget) {
+ int i;
+ GladeXML *xml;
+ GtkWidget *List;
+ GtkWidget *dialog;
+ GtkListStore *store;
+ GtkTreeIter iter;
+ GdkPixbuf *pixbuf;
+
+ store = gtk_list_store_new(NUM_CL, GDK_TYPE_PIXBUF, G_TYPE_STRING,
+ G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+
+ xml = glade_get_widget_tree(widget);
+ dialog = glade_xml_get_widget(xml, "McdsDlg");
+
+ if (mcd == 1) List = glade_xml_get_widget(xml, "GtkCList_McdList1");
+ else List = glade_xml_get_widget(xml, "GtkCList_McdList2");
+
+ for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
+ McdBlock *Info;
+ gchar *state;
+
+ Info = &Blocks[mcd - 1][i];
+ IconC[mcd - 1][i] = 0;
+
+ if ((Info->Flags & 0xF0) == 0xA0) {
+ if ((Info->Flags & 0xF) >= 1 &&
+ (Info->Flags & 0xF) <= 3) {
+ state = _("Deleted");
+ } else
+ state = _("Free");
+ } else if ((Info->Flags & 0xF0) == 0x50)
+ state = _("Used");
+ else
+ state = _("Free");
+
+// if (Info->IconCount == 0) continue;
+
+ pixbuf = SetIcon(dialog, Info->Icon, i + 1);
+
+ gtk_list_store_append(store, &iter);
+ gtk_list_store_set(store, &iter,
+ CL_ICON, pixbuf,
+ CL_TITLE, Info->Title,
+ CL_STAT, state,
+ CL_NAME, Info->Name,
+ CL_ID, Info->ID,
+ -1);
+ }
+
+ gtk_tree_view_set_model(GTK_TREE_VIEW(List), GTK_TREE_MODEL(store));
+ g_object_unref(G_OBJECT(store));
+ gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(List), TRUE);
+ gtk_widget_show(List);
+}
+
+static void LoadMcdDlg(GtkWidget *widget) {
+ int i;
+
+ for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
+ GetMcdBlockInfo(1, i + 1, &Blocks[0][i]);
+ GetMcdBlockInfo(2, i + 1, &Blocks[1][i]);
+ }
+
+ LoadListItems(1, widget);
+ LoadListItems(2, widget);
+}
+
+static void OnTreeSelectionChanged(GtkTreeSelection *selection, gpointer user_data);
+
+static void UpdateListItems(int mcd, GtkWidget *widget) {
+ GladeXML *xml;
+ GtkWidget *List;
+ GtkWidget *dialog;
+ GtkListStore *store;
+ GtkTreeIter iter;
+ GdkPixbuf *pixbuf;
+ int i;
+
+ xml = glade_get_widget_tree(widget);
+ dialog = glade_xml_get_widget(xml, "McdsDlg");
+
+ if (mcd == 1) List = glade_xml_get_widget(xml, "GtkCList_McdList1");
+ else List = glade_xml_get_widget(xml, "GtkCList_McdList2");
+
+ store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(List)));
+ gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter);
+
+ for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
+ McdBlock *Info;
+ gchar *state;
+
+ Info = &Blocks[mcd - 1][i];
+ IconC[mcd - 1][i] = 0;
+
+ if ((Info->Flags & 0xF0) == 0xA0) {
+ if ((Info->Flags & 0xF) >= 1 &&
+ (Info->Flags & 0xF) <= 3) {
+ state = _("Deleted");
+ } else
+ state = _("Free");
+ } else if ((Info->Flags & 0xF0) == 0x50)
+ state = _("Used");
+ else
+ state = _("Free");
+
+// if (Info->IconCount == 0) continue;
+
+ pixbuf = SetIcon(dialog, Info->Icon, i + 1);
+
+ gtk_list_store_set(store, &iter,
+ CL_ICON, pixbuf,
+ CL_TITLE, Info->Title,
+ CL_STAT, state,
+ CL_NAME, Info->Name,
+ CL_ID, Info->ID,
+ -1);
+
+ gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter);
+ }
+
+ gtk_widget_show(List);
+
+ OnTreeSelectionChanged(gtk_tree_view_get_selection(GTK_TREE_VIEW(List)), (gpointer)mcd);
+}
+
+static void UpdateMcdDlg(GtkWidget *widget) {
+ int i;
+
+ for (i = 0; i < MAX_MEMCARD_BLOCKS; i++) {
+ GetMcdBlockInfo(1, i + 1, &Blocks[0][i]);
+ GetMcdBlockInfo(2, i + 1, &Blocks[1][i]);
+ }
+
+ UpdateListItems(1, widget);
+ UpdateListItems(2, widget);
+}
+
+static void OnMcd_Clicked(GtkDialog *dialog, gint arg1, gpointer user_data) {
+ GladeXML *xml = user_data;
+
+ if (arg1 == GTK_RESPONSE_OK) {
+ gchar *tmp;
+ GtkWidget *widget;
+
+ widget = glade_xml_get_widget(xml, "GtkMcd1FSButton");
+ if ((tmp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget))) != NULL) {
+ strcpy(Config.Mcd1, tmp);
+ g_free(tmp);
+ }
+
+ widget = glade_xml_get_widget(xml, "GtkMcd2FSButton");
+ if ((tmp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (widget))) != NULL) {
+ strcpy(Config.Mcd2, tmp);
+ g_free(tmp);
+ }
+
+ SaveConfig();
+ LoadMcds(Config.Mcd1, Config.Mcd2);
+ }
+
+ gtk_widget_destroy(GTK_WIDGET(dialog));
+}
+
+static void OnMemcardFileChanged(GtkWidget *widget, gpointer user_data) {
+ gint memcard = (int) user_data;
+ gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget));
+
+ if (filename != NULL) {
+ LoadMcd(memcard, filename);
+ UpdateMcdDlg(widget);
+ gtk_widget_set_sensitive(widget, TRUE);
+ }
+
+ g_free(filename);
+}
+
+// create a new, formatted memory card
+static void OnMcd_Format(GtkWidget *widget, gpointer user_data) {
+ GladeXML *xml;
+ GtkWidget *memcard_fs;
+ GtkWidget *message_dialog;
+ gint result;
+ gchar *str;
+
+ gint memcard = (int)user_data;
+
+ message_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
+ GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+ _("Format this Memory Card?"));
+ gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(message_dialog),
+ _("If you format the memory card, the card will be empty, and any existing data overwritten."));
+ gtk_dialog_add_buttons(GTK_DIALOG (message_dialog),
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ _("Format card"), GTK_RESPONSE_YES, NULL);
+
+ result = gtk_dialog_run(GTK_DIALOG(message_dialog));
+ gtk_widget_destroy(message_dialog);
+
+ if (result == GTK_RESPONSE_YES) {
+ xml = glade_get_widget_tree(widget);
+ if (memcard == 1)
+ memcard_fs = glade_xml_get_widget(xml, "GtkMcd1FSButton");
+ else
+ memcard_fs = glade_xml_get_widget(xml, "GtkMcd2FSButton");
+
+ str = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(memcard_fs));
+
+ CreateMcd(str);
+ LoadMcd(memcard, str);
+ UpdateMcdDlg(widget);
+ g_free(str);
+ }
+}
+
+static void OnMcd_New(GtkWidget *widget, gpointer user_data) {
+ GtkWidget *chooser;
+ gchar *path;
+
+ // Ask for name of new memory card
+ chooser = gtk_file_chooser_dialog_new(_("Create a new Memory Card"),
+ NULL, GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_OK,
+ NULL);
+
+ // Card should be put into $HOME/.pcsx/memcards
+ path = g_build_filename(g_get_home_dir(), ".pcsx", "memcards", NULL);
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), path);
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), "new.mcd");
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(chooser), TRUE);
+
+ if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_OK) {
+ gchar *name;
+ gchar *widget_name;
+ GladeXML *xml;
+
+ gtk_widget_hide(chooser);
+
+ name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
+
+ CreateMcd(name);
+
+ // Set the name on the FileChooserButton - this will trigger the
+ // callback to load the card and update the dialog
+ widget_name = g_strdup_printf("GtkMcd%dFSButton", (int)user_data);
+
+ xml = glade_get_widget_tree(widget);
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(glade_xml_get_widget(xml, widget_name)), name);
+
+ g_free(widget_name);
+ g_free(name);
+
+ UpdateMcdDlg(widget);
+ }
+
+ gtk_widget_destroy(chooser);
+ g_free(path);
+}
+
+static int copy = 0, copymcd = 0;
+
+static int GetFreeMemcardSlot(int target_card) {
+ McdBlock *Info;
+ gboolean found = FALSE;
+
+ int i = 0;
+ while (i < 15 && found == FALSE) {
+ Info = &Blocks[target_card][i];
+ if (g_ascii_strcasecmp(Info->Title, "") == 0) {
+ found = TRUE;
+ } else {
+ i++;
+ }
+ }
+
+ if (found == TRUE)
+ return i;
+
+ // no free slots, try to find a deleted one
+ i = 0;
+ while (i < 15 && found == FALSE) {
+ Info = &Blocks[target_card][i];
+ if ((Info->Flags & 0xF0) != 0x50) {
+ found = TRUE;
+ } else {
+ i++;
+ }
+ }
+
+ if (found == TRUE)
+ return i;
+
+ return -1;
+}
+
+static void CopyMemcardData(char *from, char *to, gint *i, gchar *str) {
+ memcpy(to + (*i + 1) * 128, from + (copy + 1) * 128, 128);
+ SaveMcd((char *)str, to, (*i + 1) * 128, 128);
+ memcpy(to + (*i + 1) * 1024 * 8, from + (copy+1) * 1024 * 8, 1024 * 8);
+ SaveMcd((char *)str, to, (*i + 1) * 1024 * 8, 1024 * 8);
+}
+
+static void OnMcd_CopyTo(GtkWidget *widget, gpointer user_data) {
+ gint mcd = (gint)user_data;
+
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreePath *path;
+ gint *i;
+ GladeXML *xml;
+ GtkTreeSelection *treesel;
+ gchar *str;
+ char *source, *destination;
+
+ int first_free_slot;
+
+ xml = glade_get_widget_tree(widget);
+
+ if (mcd == 1)
+ treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(GtkCList_McdList2));
+ else
+ treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(GtkCList_McdList1));
+
+ // If the item selected is not reported as a 'Free' slot
+ if (gtk_tree_selection_get_selected(treesel, &model, &iter)) {
+ path = gtk_tree_model_get_path(model, &iter);
+ i = gtk_tree_path_get_indices(path);
+ copy = *i;
+ copymcd = mcd;
+ gtk_tree_path_free(path);
+ }
+
+ // Determine the first free slot in the target memory card
+ first_free_slot = GetFreeMemcardSlot(mcd - 1);
+ if (first_free_slot == -1) {
+ // No free slots available on the destination card
+ SysErrorMessage(_("No free space on memory card"),
+ _("There are no free slots available on the target memory card. Please delete a slot first."));
+ return;
+ }
+
+ xml = glade_get_widget_tree(GtkCList_McdList1);
+
+ if (mcd == 1) {
+ str = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(glade_xml_get_widget(xml, "GtkMcd1FSButton")));
+ source = Mcd2Data;
+ destination = Mcd1Data;
+ } else {
+ str = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(glade_xml_get_widget(xml, "GtkMcd2FSButton")));
+ source = Mcd1Data;
+ destination = Mcd2Data;
+ }
+
+ CopyMemcardData(source, destination, &first_free_slot, str);
+ UpdateMcdDlg(widget);
+}
+
+static void OnMemcardDelete(GtkWidget *widget, gpointer user_data) {
+ McdBlock *Info;
+ int i, xor = 0, j;
+ char *data, *ptr;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreePath *path;
+ gchar *filename;
+ GladeXML *xml;
+ gboolean selected;
+ GtkWidget *tree;
+ GtkTreeSelection *sel;
+
+ gint memcard = (int)user_data;
+
+ xml = glade_get_widget_tree(widget);
+
+ if (memcard == 1) {
+ tree = glade_xml_get_widget(xml, "GtkCList_McdList1");
+ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW (tree));
+ selected = gtk_tree_selection_get_selected (sel, &model, &iter);
+ data = Mcd1Data;
+ filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(glade_xml_get_widget(xml, "GtkMcd1FSButton")));
+ } else {
+ tree = glade_xml_get_widget(xml, "GtkCList_McdList2");
+ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW (tree));
+ selected = gtk_tree_selection_get_selected(sel, &model, &iter);
+ data = Mcd2Data;
+ filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(glade_xml_get_widget(xml, "GtkMcd2FSButton")));
+ }
+
+ if (selected) {
+ path = gtk_tree_model_get_path(model, &iter);
+ i = *gtk_tree_path_get_indices(path);
+
+ i++;
+ ptr = data + i * 128;
+ Info = &Blocks[memcard - 1][i - 1];
+
+ if ((Info->Flags & 0xF0) == 0xA0) {
+ if ((Info->Flags & 0xF) >= 1 &&
+ (Info->Flags & 0xF) <= 3) { // deleted
+ *ptr = 0x50 | (Info->Flags & 0xF);
+ } else return;
+ } else if ((Info->Flags & 0xF0) == 0x50) { // used
+ *ptr = 0xA0 | (Info->Flags & 0xF);
+ } else { return; }
+
+ for (j = 0; j < 127; j++) xor ^= *ptr++;
+ *ptr = xor;
+
+ SaveMcd((char *)filename, data, i * 128, 128);
+ UpdateMcdDlg(widget);
+ }
+}
+
+static void OnTreeSelectionChanged(GtkTreeSelection *selection, gpointer user_data) {
+ GladeXML *xml;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GtkTreePath *path;
+
+ gboolean selected;
+ int i;
+ McdBlock b;
+
+ gint memcard = (int)user_data;
+
+ xml = glade_get_widget_tree(GtkCList_McdList1);
+ selected = gtk_tree_selection_get_selected(selection, &model, &iter);
+
+ if (selected) {
+ path = gtk_tree_model_get_path(model, &iter);
+ i = *gtk_tree_path_get_indices(path);
+ gtk_tree_path_free(path);
+
+ // If a row was selected, and the row is not blank, we can now enable
+ // some of the disabled widgets
+ if (memcard == 1) {
+ GetMcdBlockInfo(1, i + 1, &b);
+
+ if ((b.Flags >= 0xA1 && b.Flags <= 0xA3) || ((b.Flags & 0xF0) == 0x50)) {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_Delete1"), TRUE);
+ } else {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_Delete1"), FALSE);
+ }
+
+ if ((b.Flags & 0xF0) == 0x50) {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_CopyTo2"), TRUE);
+ } else {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_CopyTo2"), FALSE);
+ }
+ } else {
+ GetMcdBlockInfo(2, i + 1, &b);
+
+ if ((b.Flags >= 0xA0 && b.Flags <= 0xA3) || ((b.Flags & 0xF0) == 0x50)) {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_Delete2"), TRUE);
+ } else {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_Delete2"), FALSE);
+ }
+
+ if ((b.Flags & 0xF0) == 0x50) {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_CopyTo1"), TRUE);
+ } else {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_CopyTo1"), FALSE);
+ }
+ }
+ } else {
+ if (memcard == 1) {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_CopyTo2"), FALSE);
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_Delete1"), FALSE);
+ } else {
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_CopyTo1"), FALSE);
+ gtk_widget_set_sensitive(glade_xml_get_widget(xml, "GtkButton_Delete2"), FALSE);
+ }
+ }
+}
+
+void OnConf_Mcds() {
+ GladeXML *xml;
+ GtkWidget *dialog;
+ GtkWidget *widget;
+ GtkTreeSelection *treesel1, *treesel2;
+ gchar *str;
+ int i;
+
+ xml = glade_xml_new(PACKAGE_DATA_DIR "pcsx.glade2", "McdsDlg", NULL);
+
+ if (!xml) {
+ g_warning("We could not load the interface!");
+ return;
+ }
+
+ dialog = glade_xml_get_widget(xml, "McdsDlg");
+
+ gtk_window_set_title(GTK_WINDOW(dialog), _("Memory Card Manager"));
+
+ // Assign default memory cards
+ if (!strlen(Config.Mcd1)) {
+ str = g_strconcat(getenv("HOME"), DEFAULT_MEM_CARD_1, NULL);
+ strcpy(Config.Mcd1, str);
+ g_free(str);
+ }
+
+ if (!strlen(Config.Mcd2)) {
+ str = g_strconcat(getenv("HOME"), DEFAULT_MEM_CARD_2, NULL);
+ strcpy(Config.Mcd2, str);
+ g_free(str);
+ }
+
+ GtkCList_McdList1 = glade_xml_get_widget(xml, "GtkCList_McdList1");
+ AddColumns(GTK_TREE_VIEW(GtkCList_McdList1));
+ GtkCList_McdList2 = glade_xml_get_widget(xml, "GtkCList_McdList2");
+ AddColumns(GTK_TREE_VIEW(GtkCList_McdList2));
+
+ treesel1 = gtk_tree_view_get_selection(GTK_TREE_VIEW (GtkCList_McdList1));
+ gtk_tree_selection_set_mode(treesel1, GTK_SELECTION_SINGLE);
+ g_signal_connect_data(G_OBJECT(treesel1), "changed",
+ G_CALLBACK(OnTreeSelectionChanged),
+ (gpointer)1, NULL, G_CONNECT_AFTER);
+
+ treesel2 = gtk_tree_view_get_selection(GTK_TREE_VIEW (GtkCList_McdList2));
+ gtk_tree_selection_set_mode(treesel2, GTK_SELECTION_SINGLE);
+ g_signal_connect_data(G_OBJECT(treesel2), "changed",
+ G_CALLBACK(OnTreeSelectionChanged),
+ (gpointer)2, NULL, G_CONNECT_AFTER);
+
+ LoadMcdDlg(dialog);
+
+ // Setup a handler for when Close or Cancel is clicked
+ g_signal_connect_data(GTK_OBJECT(dialog), "response",
+ GTK_SIGNAL_FUNC(OnMcd_Clicked), xml, (GClosureNotify)g_object_unref, G_CONNECT_AFTER);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_Format1");
+ g_signal_connect_data(GTK_OBJECT(widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMcd_Format), (gpointer)1, NULL, G_CONNECT_AFTER);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_Format2");
+ g_signal_connect_data(GTK_OBJECT(widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMcd_Format), (gpointer)2, NULL, G_CONNECT_AFTER);
+
+ widget = glade_xml_get_widget(xml, "GtkMcd1FSButton");
+ g_signal_connect_data(GTK_OBJECT(widget), "selection-changed",
+ GTK_SIGNAL_FUNC(OnMemcardFileChanged), (gpointer)1, NULL, G_CONNECT_AFTER);
+ gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(widget), Config.Mcd1);
+
+ widget = glade_xml_get_widget(xml, "GtkMcd2FSButton");
+ g_signal_connect_data(GTK_OBJECT(widget), "selection-changed",
+ GTK_SIGNAL_FUNC(OnMemcardFileChanged), (gpointer) 2, NULL, G_CONNECT_AFTER);
+ gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(widget), Config.Mcd2);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_New1");
+ g_signal_connect_data(GTK_OBJECT(widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMcd_New), (gpointer)1, NULL, G_CONNECT_AFTER);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_New2");
+ g_signal_connect_data(GTK_OBJECT(widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMcd_New), (gpointer)2, NULL, G_CONNECT_AFTER);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_CopyTo1");
+ g_signal_connect_data(GTK_OBJECT(widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMcd_CopyTo), (gpointer)1, NULL, G_CONNECT_AFTER);
+ gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_CopyTo2");
+ g_signal_connect_data(GTK_OBJECT(widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMcd_CopyTo), (gpointer)2, NULL, G_CONNECT_AFTER);
+ gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_Delete1");
+ g_signal_connect_data (GTK_OBJECT (widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMemcardDelete), (gpointer)1, NULL, G_CONNECT_AFTER);
+ gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE);
+
+ widget = glade_xml_get_widget(xml, "GtkButton_Delete2");
+ g_signal_connect_data (GTK_OBJECT (widget), "clicked",
+ GTK_SIGNAL_FUNC(OnMemcardDelete), (gpointer)2, NULL, G_CONNECT_AFTER);
+ gtk_widget_set_sensitive(GTK_WIDGET(widget), FALSE);
+
+ while (gtk_events_pending()) gtk_main_iteration();
+}
diff --git a/gui/MemcardDlg.h b/gui/MemcardDlg.h
new file mode 100644
index 00000000..ae583d6d
--- /dev/null
+++ b/gui/MemcardDlg.h
@@ -0,0 +1,24 @@
+/* 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., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA
+ */
+
+#ifndef MEMCARDDLG_H
+#define MEMCARDDLG_H
+
+void OnConf_Mcds();
+
+#endif
diff --git a/po/pcsx.pot b/po/pcsx.pot
index badc7d58..ff0bee22 100644
--- a/po/pcsx.pot
+++ b/po/pcsx.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-26 23:05+0800\n"
+"POT-Creation-Date: 2009-11-28 18:23+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -66,16 +66,16 @@ msgstr ""
msgid "No"
msgstr ""
-#: ../win32/gui/CheatDlg.c:67 ../gui/Cheat.c:193
+#: ../win32/gui/CheatDlg.c:67 ../gui/Cheat.c:195
msgid "Edit Cheat"
msgstr ""
-#: ../win32/gui/CheatDlg.c:68 ../win32/gui/CheatDlg.c:118 ../gui/Cheat.c:633
+#: ../win32/gui/CheatDlg.c:68 ../win32/gui/CheatDlg.c:118 ../gui/Cheat.c:637
msgid "Description:"
msgstr ""
-#: ../win32/gui/CheatDlg.c:69 ../win32/gui/CheatDlg.c:119 ../gui/Cheat.c:125
-#: ../gui/Cheat.c:210
+#: ../win32/gui/CheatDlg.c:69 ../win32/gui/CheatDlg.c:119 ../gui/Cheat.c:126
+#: ../gui/Cheat.c:212
msgid "Cheat Code:"
msgstr ""
@@ -86,16 +86,16 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: ../win32/gui/CheatDlg.c:92 ../win32/gui/CheatDlg.c:133 ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
+#: ../win32/gui/CheatDlg.c:92 ../win32/gui/CheatDlg.c:133 ../gui/Cheat.c:156
+#: ../gui/Cheat.c:252
msgid "Invalid cheat code!"
msgstr ""
-#: ../win32/gui/CheatDlg.c:117 ../gui/Cheat.c:109
+#: ../win32/gui/CheatDlg.c:117 ../gui/Cheat.c:110
msgid "Add New Cheat"
msgstr ""
-#: ../win32/gui/CheatDlg.c:167 ../data/pcsx.glade2:2401
+#: ../win32/gui/CheatDlg.c:167 ../data/pcsx.glade2:2402
msgid "Edit Cheat Codes"
msgstr ""
@@ -127,7 +127,7 @@ msgstr ""
msgid "&Close"
msgstr ""
-#: ../win32/gui/CheatDlg.c:186 ../gui/Cheat.c:411
+#: ../win32/gui/CheatDlg.c:186 ../gui/Cheat.c:414
msgid "Description"
msgstr ""
@@ -175,7 +175,7 @@ msgstr ""
msgid "No Change"
msgstr ""
-#: ../win32/gui/CheatDlg.c:449 ../gui/Cheat.c:583
+#: ../win32/gui/CheatDlg.c:449 ../gui/Cheat.c:586
msgid "Enter the values and start your search."
msgstr ""
@@ -183,31 +183,31 @@ msgstr ""
msgid "No addresses found."
msgstr ""
-#: ../win32/gui/CheatDlg.c:458 ../gui/Cheat.c:541
+#: ../win32/gui/CheatDlg.c:458 ../gui/Cheat.c:544
msgid "Too many addresses found."
msgstr ""
-#: ../win32/gui/CheatDlg.c:467 ../gui/Cheat.c:550
+#: ../win32/gui/CheatDlg.c:467 ../gui/Cheat.c:553
#, c-format
msgid "%.8X Current: %u (%.2X), Previous: %u (%.2X)"
msgstr ""
-#: ../win32/gui/CheatDlg.c:472 ../gui/Cheat.c:555
+#: ../win32/gui/CheatDlg.c:472 ../gui/Cheat.c:558
#, c-format
msgid "%.8X Current: %u (%.4X), Previous: %u (%.4X)"
msgstr ""
-#: ../win32/gui/CheatDlg.c:477 ../gui/Cheat.c:560
+#: ../win32/gui/CheatDlg.c:477 ../gui/Cheat.c:563
#, c-format
msgid "%.8X Current: %u (%.8X), Previous: %u (%.8X)"
msgstr ""
-#: ../win32/gui/CheatDlg.c:493 ../gui/Cheat.c:575
+#: ../win32/gui/CheatDlg.c:493 ../gui/Cheat.c:578
#, c-format
msgid "Founded Addresses: %d"
msgstr ""
-#: ../win32/gui/CheatDlg.c:505 ../data/pcsx.glade2:2800
+#: ../win32/gui/CheatDlg.c:505 ../data/pcsx.glade2:2801
msgid "Freeze"
msgstr ""
@@ -216,7 +216,7 @@ msgid "Address:"
msgstr ""
#: ../win32/gui/CheatDlg.c:507 ../win32/gui/CheatDlg.c:598
-#: ../win32/gui/CheatDlg.c:683 ../gui/Cheat.c:644 ../data/pcsx.glade2:2644
+#: ../win32/gui/CheatDlg.c:683 ../gui/Cheat.c:648 ../data/pcsx.glade2:2645
msgid "Value:"
msgstr ""
@@ -225,27 +225,27 @@ msgstr ""
msgid "Freeze %.8X"
msgstr ""
-#: ../win32/gui/CheatDlg.c:596 ../data/pcsx.glade2:2836
+#: ../win32/gui/CheatDlg.c:596 ../data/pcsx.glade2:2837
msgid "Modify"
msgstr ""
-#: ../win32/gui/CheatDlg.c:679 ../gui/Cheat.c:1126 ../data/pcsx.glade2:2572
+#: ../win32/gui/CheatDlg.c:679 ../gui/Cheat.c:1130 ../data/pcsx.glade2:2573
msgid "Cheat Search"
msgstr ""
-#: ../win32/gui/CheatDlg.c:681 ../data/pcsx.glade2:2622
+#: ../win32/gui/CheatDlg.c:681 ../data/pcsx.glade2:2623
msgid "Search For:"
msgstr ""
-#: ../win32/gui/CheatDlg.c:682 ../data/pcsx.glade2:2632
+#: ../win32/gui/CheatDlg.c:682 ../data/pcsx.glade2:2633
msgid "Data Type:"
msgstr ""
-#: ../win32/gui/CheatDlg.c:684 ../data/pcsx.glade2:2656
+#: ../win32/gui/CheatDlg.c:684 ../data/pcsx.glade2:2657
msgid "Data Base:"
msgstr ""
-#: ../win32/gui/CheatDlg.c:685 ../data/pcsx.glade2:2716
+#: ../win32/gui/CheatDlg.c:685 ../data/pcsx.glade2:2717
msgid "To:"
msgstr ""
@@ -293,7 +293,7 @@ msgstr ""
msgid "Hexadecimal"
msgstr ""
-#: ../win32/gui/ConfigurePlugins.c:206 ../gui/Gtk2Gui.c:2228
+#: ../win32/gui/ConfigurePlugins.c:206 ../gui/Gtk2Gui.c:1665
msgid "Internal HLE Bios"
msgstr ""
@@ -301,8 +301,8 @@ msgstr ""
msgid "Configuration not OK!"
msgstr ""
-#: ../win32/gui/ConfigurePlugins.c:292 ../gui/Cheat.c:155 ../gui/Cheat.c:250
-#: ../gui/LnxMain.c:405
+#: ../win32/gui/ConfigurePlugins.c:292 ../gui/Cheat.c:156 ../gui/Cheat.c:252
+#: ../gui/LnxMain.c:407
msgid "Error"
msgstr ""
@@ -615,13 +615,13 @@ msgstr ""
msgid "*PCSX*: Error Saving State %s"
msgstr ""
-#: ../win32/gui/WndMain.c:426 ../win32/gui/WndMain.c:475 ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../win32/gui/WndMain.c:426 ../win32/gui/WndMain.c:475 ../gui/Gtk2Gui.c:573
+#: ../gui/Gtk2Gui.c:698
msgid "The CD does not appear to be a valid Playstation CD"
msgstr ""
-#: ../win32/gui/WndMain.c:432 ../win32/gui/WndMain.c:481 ../gui/Gtk2Gui.c:583
-#: ../gui/Gtk2Gui.c:708
+#: ../win32/gui/WndMain.c:432 ../win32/gui/WndMain.c:481 ../gui/Gtk2Gui.c:581
+#: ../gui/Gtk2Gui.c:706
msgid "Could not load CD-ROM!"
msgstr ""
@@ -629,11 +629,11 @@ msgstr ""
msgid "Running BIOS is not supported with Internal HLE Bios."
msgstr ""
-#: ../win32/gui/WndMain.c:661 ../gui/Gtk2Gui.c:1068
+#: ../win32/gui/WndMain.c:661 ../gui/MemcardDlg.c:59
msgid "Title"
msgstr ""
-#: ../win32/gui/WndMain.c:667 ../gui/Gtk2Gui.c:1074
+#: ../win32/gui/WndMain.c:667 ../gui/MemcardDlg.c:65
msgid "Status"
msgstr ""
@@ -653,16 +653,17 @@ msgstr ""
msgid "terminiting link block"
msgstr ""
-#: ../win32/gui/WndMain.c:864 ../gui/Gtk2Gui.c:1148
+#: ../win32/gui/WndMain.c:864 ../gui/MemcardDlg.c:173 ../gui/MemcardDlg.c:243
msgid "Deleted"
msgstr ""
-#: ../win32/gui/WndMain.c:865 ../win32/gui/WndMain.c:868 ../gui/Gtk2Gui.c:1150
-#: ../gui/Gtk2Gui.c:1154
+#: ../win32/gui/WndMain.c:865 ../win32/gui/WndMain.c:868
+#: ../gui/MemcardDlg.c:175 ../gui/MemcardDlg.c:179 ../gui/MemcardDlg.c:245
+#: ../gui/MemcardDlg.c:249
msgid "Free"
msgstr ""
-#: ../win32/gui/WndMain.c:867 ../gui/Gtk2Gui.c:1152
+#: ../win32/gui/WndMain.c:867 ../gui/MemcardDlg.c:177 ../gui/MemcardDlg.c:247
msgid "Used"
msgstr ""
@@ -805,8 +806,8 @@ msgstr ""
msgid "DataDeck Memory Card (*.ddf)"
msgstr ""
-#: ../win32/gui/WndMain.c:1350 ../win32/gui/WndMain.c:1431 ../gui/Cheat.c:319
-#: ../gui/Gtk2Gui.c:512 ../gui/Gtk2Gui.c:651
+#: ../win32/gui/WndMain.c:1350 ../win32/gui/WndMain.c:1431 ../gui/Cheat.c:322
+#: ../gui/Gtk2Gui.c:510 ../gui/Gtk2Gui.c:649
msgid "All Files"
msgstr ""
@@ -958,187 +959,153 @@ msgstr ""
msgid "Error Loading Symbol"
msgstr ""
-#: ../gui/Cheat.c:117 ../gui/Cheat.c:201
+#: ../gui/Cheat.c:118 ../gui/Cheat.c:203
msgid "Cheat Description:"
msgstr ""
-#: ../gui/Cheat.c:304
+#: ../gui/Cheat.c:307
msgid "Open Cheat File"
msgstr ""
-#: ../gui/Cheat.c:314 ../gui/Cheat.c:354
+#: ../gui/Cheat.c:317 ../gui/Cheat.c:357
msgid "PCSX Cheat Code Files (*.cht)"
msgstr ""
-#: ../gui/Cheat.c:344
+#: ../gui/Cheat.c:347
msgid "Save Cheat File"
msgstr ""
-#: ../gui/Cheat.c:359
+#: ../gui/Cheat.c:362
msgid "All Files (*.*)"
msgstr ""
-#: ../gui/Cheat.c:392 ../gui/Cheat.c:1121 ../gui/Gtk2Gui.c:400
-#: ../gui/Gtk2Gui.c:1020
+#: ../gui/Cheat.c:395 ../gui/Cheat.c:1125 ../gui/Gtk2Gui.c:398
+#: ../gui/Gtk2Gui.c:1018
msgid "Error: Glade interface could not be loaded!"
msgstr ""
-#: ../gui/Cheat.c:397
+#: ../gui/Cheat.c:400
msgid "Cheat Codes"
msgstr ""
-#: ../gui/Cheat.c:403
+#: ../gui/Cheat.c:406
msgid "Enable"
msgstr ""
-#: ../gui/Cheat.c:627
+#: ../gui/Cheat.c:631
msgid "Freeze value"
msgstr ""
-#: ../gui/Cheat.c:726
+#: ../gui/Cheat.c:730
msgid "Modify value"
msgstr ""
-#: ../gui/Cheat.c:734
+#: ../gui/Cheat.c:738
msgid "New value:"
msgstr ""
-#: ../gui/Cheat.c:1131
+#: ../gui/Cheat.c:1135
msgid "Search Results"
msgstr ""
-#: ../gui/Gtk2Gui.c:408 ../data/pcsx.glade2:605
+#: ../gui/Gtk2Gui.c:406 ../data/pcsx.glade2:605
msgid "Configure PCSX"
msgstr ""
-#: ../gui/Gtk2Gui.c:494
+#: ../gui/Gtk2Gui.c:492
msgid "Select PSX EXE File"
msgstr ""
-#: ../gui/Gtk2Gui.c:508
+#: ../gui/Gtk2Gui.c:506
msgid "PlayStation Executable Files"
msgstr ""
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "Not a valid PSX file"
msgstr ""
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "The file does not appear to be a valid Playstation executable"
msgstr ""
-#: ../gui/Gtk2Gui.c:575 ../gui/Gtk2Gui.c:700
+#: ../gui/Gtk2Gui.c:573 ../gui/Gtk2Gui.c:698
msgid "CD ROM failed"
msgstr ""
-#: ../gui/Gtk2Gui.c:583
+#: ../gui/Gtk2Gui.c:581
msgid "The CD ROM could not be loaded"
msgstr ""
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Could not run BIOS"
msgstr ""
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Running BIOS is not supported with Internal HLE BIOS."
msgstr ""
-#: ../gui/Gtk2Gui.c:626
+#: ../gui/Gtk2Gui.c:624
msgid "Open PSX Disc Image File"
msgstr ""
-#: ../gui/Gtk2Gui.c:646
+#: ../gui/Gtk2Gui.c:644
msgid "PSX Image Files (*.bin, *.img, *.mdf, *.iso)"
msgstr ""
-#: ../gui/Gtk2Gui.c:880
+#: ../gui/Gtk2Gui.c:878
#, c-format
msgid "Loaded state %s."
msgstr ""
-#: ../gui/Gtk2Gui.c:884
+#: ../gui/Gtk2Gui.c:882
#, c-format
msgid "Error loading state %s!"
msgstr ""
-#: ../gui/Gtk2Gui.c:895
+#: ../gui/Gtk2Gui.c:893
#, c-format
msgid "Saved state %s."
msgstr ""
-#: ../gui/Gtk2Gui.c:897
+#: ../gui/Gtk2Gui.c:895
#, c-format
msgid "Error saving state %s!"
msgstr ""
-#: ../gui/Gtk2Gui.c:931 ../gui/Gtk2Gui.c:958
+#: ../gui/Gtk2Gui.c:929 ../gui/Gtk2Gui.c:956
msgid "Select State File"
msgstr ""
-#: ../gui/Gtk2Gui.c:1062
-msgid "Icon"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1080
-msgid "ID"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1086
-msgid "Name"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1246
-msgid "Format this Memory Card?"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1248
-msgid ""
-"If you format the memory card, the card will be empty, and any existing data "
-"overwritten."
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1251
-msgid "Format card"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1366
-msgid "No space available in the target memory card!"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:1508 ../gui/Gtk2Gui.c:1529 ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571 ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055 ../gui/Gtk2Gui.c:1076 ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118 ../gui/Gtk2Gui.c:1317
msgid "No configuration required"
msgstr ""
-#: ../gui/Gtk2Gui.c:1508 ../gui/Gtk2Gui.c:1529 ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571 ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055 ../gui/Gtk2Gui.c:1076 ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118 ../gui/Gtk2Gui.c:1317
msgid "This plugin doesn't need to be configured."
msgstr ""
-#: ../gui/Gtk2Gui.c:1608
-msgid "Memory Card Manager"
-msgstr ""
-
-#: ../gui/Gtk2Gui.c:2134
+#: ../gui/Gtk2Gui.c:1571
#, c-format
msgid "Could not open BIOS directory: '%s'\n"
msgstr ""
-#: ../gui/Gtk2Gui.c:2164 ../gui/Gtk2Gui.c:2257 ../gui/LnxMain.c:170
+#: ../gui/Gtk2Gui.c:1601 ../gui/Gtk2Gui.c:1694 ../gui/LnxMain.c:172
#, c-format
msgid "Could not open directory: '%s'\n"
msgstr ""
-#: ../gui/Gtk2Gui.c:2318
+#: ../gui/Gtk2Gui.c:1755
msgid "Notice"
msgstr ""
-#: ../gui/LnxMain.c:65
+#: ../gui/LnxMain.c:67
#, c-format
msgid "Creating memory card: %s\n"
msgstr ""
-#: ../gui/LnxMain.c:312
+#: ../gui/LnxMain.c:314
msgid ""
" pcsx [options] [file]\n"
"\toptions:\n"
@@ -1152,27 +1119,67 @@ msgid ""
"\tfile\t\tLoads file\n"
msgstr ""
-#: ../gui/LnxMain.c:350
+#: ../gui/LnxMain.c:352
#, c-format
msgid ""
"PCSX cannot be configured without using the GUI -- you should restart "
"without -nogui.\n"
msgstr ""
-#: ../gui/LnxMain.c:405
+#: ../gui/LnxMain.c:407
msgid "Failed loading plugins!"
msgstr ""
-#: ../gui/LnxMain.c:422
+#: ../gui/LnxMain.c:424
#, c-format
msgid "Could not load CD-ROM!\n"
msgstr ""
-#: ../gui/LnxMain.c:461
+#: ../gui/LnxMain.c:463
#, c-format
msgid "PSX emulator couldn't be initialized.\n"
msgstr ""
+#: ../gui/MemcardDlg.c:53
+msgid "Icon"
+msgstr ""
+
+#: ../gui/MemcardDlg.c:71
+msgid "ID"
+msgstr ""
+
+#: ../gui/MemcardDlg.c:77
+msgid "Name"
+msgstr ""
+
+#: ../gui/MemcardDlg.c:333
+msgid "Format this Memory Card?"
+msgstr ""
+
+#: ../gui/MemcardDlg.c:335
+msgid ""
+"If you format the memory card, the card will be empty, and any existing data "
+"overwritten."
+msgstr ""
+
+#: ../gui/MemcardDlg.c:338
+msgid "Format card"
+msgstr ""
+
+#: ../gui/MemcardDlg.c:441
+msgid "No free space on memory card"
+msgstr ""
+
+#: ../gui/MemcardDlg.c:442
+msgid ""
+"There are no free slots available on the target memory card. Please delete a "
+"slot first."
+msgstr ""
+
+#: ../gui/MemcardDlg.c:597
+msgid "Memory Card Manager"
+msgstr ""
+
#: ../gui/Plugin.c:204 ../data/pcsx.glade2:1336
#, c-format
msgid "SIO IRQ Always Enabled"
@@ -1835,31 +1842,31 @@ msgstr ""
msgid "Configure Memory Cards"
msgstr ""
-#: ../data/pcsx.glade2:1773 ../data/pcsx.glade2:2171
+#: ../data/pcsx.glade2:1773 ../data/pcsx.glade2:2122
+msgid "New"
+msgstr ""
+
+#: ../data/pcsx.glade2:1823 ../data/pcsx.glade2:2172
msgid "Format"
msgstr ""
-#: ../data/pcsx.glade2:1823 ../data/pcsx.glade2:2221
-msgid "Reload"
+#: ../data/pcsx.glade2:1873 ../data/pcsx.glade2:2222
+msgid "Un/Delete"
msgstr ""
-#: ../data/pcsx.glade2:1867
+#: ../data/pcsx.glade2:1917
msgid "<b>Memory Card 1</b>"
msgstr ""
-#: ../data/pcsx.glade2:1927 ../data/pcsx.glade2:1977 ../data/pcsx.glade2:2872
+#: ../data/pcsx.glade2:1978 ../data/pcsx.glade2:2028 ../data/pcsx.glade2:2873
msgid "Copy"
msgstr ""
-#: ../data/pcsx.glade2:2027 ../data/pcsx.glade2:2077
-msgid "Un/Delete"
-msgstr ""
-
-#: ../data/pcsx.glade2:2265
+#: ../data/pcsx.glade2:2266
msgid "<b>Memory Card 2</b>"
msgstr ""
-#: ../data/pcsx.glade2:2343
+#: ../data/pcsx.glade2:2344
msgid ""
"(C) 1999-2003 PCSX Team\n"
"(C) 2005-2006 Ryan Schultz\n"
@@ -1867,11 +1874,11 @@ msgid ""
"(C) 2008-2009 Wei Mingzhi"
msgstr ""
-#: ../data/pcsx.glade2:2347
+#: ../data/pcsx.glade2:2348
msgid "A PlayStation emulator."
msgstr ""
-#: ../data/pcsx.glade2:2350
+#: ../data/pcsx.glade2:2351
msgid ""
"This program is free software; you can redistribute it\n"
"and/or modify it under the terms of the GNU General\n"
@@ -1890,22 +1897,22 @@ msgid ""
"the Free Software Foundation, Inc."
msgstr ""
-#: ../data/pcsx.glade2:2379
+#: ../data/pcsx.glade2:2380
msgid "translator-credits"
msgstr ""
-#: ../data/pcsx.glade2:2441
+#: ../data/pcsx.glade2:2442
msgid "<b>Cheat Codes</b>"
msgstr ""
-#: ../data/pcsx.glade2:2607
+#: ../data/pcsx.glade2:2608
msgid ""
"8-bit\n"
"16-bit\n"
"32-bit"
msgstr ""
-#: ../data/pcsx.glade2:2670
+#: ../data/pcsx.glade2:2671
msgid ""
"Equal Value\n"
"Not Equal Value\n"
@@ -1918,25 +1925,25 @@ msgid ""
"No Change"
msgstr ""
-#: ../data/pcsx.glade2:2702
+#: ../data/pcsx.glade2:2703
msgid ""
"Decimal\n"
"Hexadecimal"
msgstr ""
-#: ../data/pcsx.glade2:2905
+#: ../data/pcsx.glade2:2906
msgid "label_resultsfound"
msgstr ""
-#: ../data/pcsx.glade2:2940
+#: ../data/pcsx.glade2:2941
msgid "Search"
msgstr ""
-#: ../data/pcsx.glade2:2976
+#: ../data/pcsx.glade2:2977
msgid "Restart"
msgstr ""
-#: ../data/pcsx.glade2:3005
+#: ../data/pcsx.glade2:3006
msgid "<b>Cheat Search</b>"
msgstr ""
@@ -2041,7 +2048,7 @@ msgstr ""
msgid "Play only one channel for a performance boost."
msgstr ""
-#: ../plugins/dfcdrom/cdr-linux.c:48
+#: ../plugins/dfcdrom/cdr-linux.c:60
msgid "CD-ROM Drive Reader"
msgstr ""
@@ -2049,7 +2056,7 @@ msgstr ""
msgid "CDR NULL Plugin"
msgstr ""
-#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:166
+#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:175
#: ../plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2:8
msgid "CDR configuration"
msgstr ""
diff --git a/po/pt_BR.po b/po/pt_BR.po
index bb6a1a01..cd43bb33 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pcsx-df\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-26 23:05+0800\n"
+"POT-Creation-Date: 2009-11-28 18:23+0800\n"
"PO-Revision-Date: 2009-11-27 18:24+0700\n"
"Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n"
"Language-Team: PoBRE <romhackers@gmail.com>\n"
@@ -52,19 +52,14 @@ msgstr ""
"\n"
"http://www.codeplex.com/pcsxr"
-#: ../win32/gui/AboutDlg.c:46
-#: ../plugins/peopsxgl/gpucfg/interface.c:831
+#: ../win32/gui/AboutDlg.c:46 ../plugins/peopsxgl/gpucfg/interface.c:831
msgid "About"
msgstr "Sobre"
-#: ../win32/gui/AboutDlg.c:48
-#: ../win32/gui/AboutDlg.c:52
-#: ../win32/gui/CheatDlg.c:70
-#: ../win32/gui/CheatDlg.c:120
-#: ../win32/gui/ConfigurePlugins.c:470
-#: ../win32/gui/ConfigurePlugins.c:601
-#: ../win32/gui/WndMain.c:963
-#: ../win32/gui/WndMain.c:1199
+#: ../win32/gui/AboutDlg.c:48 ../win32/gui/AboutDlg.c:52
+#: ../win32/gui/CheatDlg.c:70 ../win32/gui/CheatDlg.c:120
+#: ../win32/gui/ConfigurePlugins.c:470 ../win32/gui/ConfigurePlugins.c:601
+#: ../win32/gui/WndMain.c:963 ../win32/gui/WndMain.c:1199
#: ../plugins/peopsxgl/gpucfg/interface.c:130
#: ../plugins/peopsxgl/gpucfg/interface.c:843
msgid "OK"
@@ -74,60 +69,46 @@ msgstr "OK"
msgid "PCSX EMU\n"
msgstr "EMULADOR PCSX\n"
-#: ../win32/gui/CheatDlg.c:52
-#: ../win32/gui/CheatDlg.c:224
+#: ../win32/gui/CheatDlg.c:52 ../win32/gui/CheatDlg.c:224
#: ../win32/gui/CheatDlg.c:271
msgid "Yes"
msgstr "Sim"
-#: ../win32/gui/CheatDlg.c:52
-#: ../win32/gui/CheatDlg.c:224
+#: ../win32/gui/CheatDlg.c:52 ../win32/gui/CheatDlg.c:224
#: ../win32/gui/CheatDlg.c:271
msgid "No"
msgstr "Não"
-#: ../win32/gui/CheatDlg.c:67
-#: ../gui/Cheat.c:193
+#: ../win32/gui/CheatDlg.c:67 ../gui/Cheat.c:195
msgid "Edit Cheat"
msgstr "Editar Trapaça"
-#: ../win32/gui/CheatDlg.c:68
-#: ../win32/gui/CheatDlg.c:118
-#: ../gui/Cheat.c:633
+#: ../win32/gui/CheatDlg.c:68 ../win32/gui/CheatDlg.c:118 ../gui/Cheat.c:637
msgid "Description:"
msgstr "Descrição:"
-#: ../win32/gui/CheatDlg.c:69
-#: ../win32/gui/CheatDlg.c:119
-#: ../gui/Cheat.c:125
-#: ../gui/Cheat.c:210
+#: ../win32/gui/CheatDlg.c:69 ../win32/gui/CheatDlg.c:119 ../gui/Cheat.c:126
+#: ../gui/Cheat.c:212
msgid "Cheat Code:"
msgstr "Código de Trapaça:"
-#: ../win32/gui/CheatDlg.c:71
-#: ../win32/gui/CheatDlg.c:121
-#: ../win32/gui/ConfigurePlugins.c:471
-#: ../win32/gui/ConfigurePlugins.c:602
-#: ../win32/gui/WndMain.c:964
-#: ../win32/gui/WndMain.c:1200
+#: ../win32/gui/CheatDlg.c:71 ../win32/gui/CheatDlg.c:121
+#: ../win32/gui/ConfigurePlugins.c:471 ../win32/gui/ConfigurePlugins.c:602
+#: ../win32/gui/WndMain.c:964 ../win32/gui/WndMain.c:1200
#: ../plugins/peopsxgl/gpucfg/interface.c:338
msgid "Cancel"
msgstr "Cancelar"
-#: ../win32/gui/CheatDlg.c:92
-#: ../win32/gui/CheatDlg.c:133
-#: ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
+#: ../win32/gui/CheatDlg.c:92 ../win32/gui/CheatDlg.c:133 ../gui/Cheat.c:156
+#: ../gui/Cheat.c:252
msgid "Invalid cheat code!"
msgstr "Código de trapaça inválido!"
-#: ../win32/gui/CheatDlg.c:117
-#: ../gui/Cheat.c:109
+#: ../win32/gui/CheatDlg.c:117 ../gui/Cheat.c:110
msgid "Add New Cheat"
msgstr "Adicionar nova Trapaça"
-#: ../win32/gui/CheatDlg.c:167
-#: ../data/pcsx.glade2:2401
+#: ../win32/gui/CheatDlg.c:167 ../data/pcsx.glade2:2402
msgid "Edit Cheat Codes"
msgstr "Editar Códigos de Trapaça"
@@ -159,8 +140,7 @@ msgstr "&Salvar como..."
msgid "&Close"
msgstr "&Fechar"
-#: ../win32/gui/CheatDlg.c:186
-#: ../gui/Cheat.c:411
+#: ../win32/gui/CheatDlg.c:186 ../gui/Cheat.c:414
msgid "Description"
msgstr "Descrição"
@@ -168,8 +148,7 @@ msgstr "Descrição"
msgid "Enabled"
msgstr "Ligado"
-#: ../win32/gui/CheatDlg.c:283
-#: ../win32/gui/CheatDlg.c:312
+#: ../win32/gui/CheatDlg.c:283 ../win32/gui/CheatDlg.c:312
msgid "PCSX Cheat Code Files"
msgstr "Arquivos de trapaça do PCSX"
@@ -209,8 +188,7 @@ msgstr "Diferentes"
msgid "No Change"
msgstr "Sem mudanças"
-#: ../win32/gui/CheatDlg.c:449
-#: ../gui/Cheat.c:583
+#: ../win32/gui/CheatDlg.c:449 ../gui/Cheat.c:586
msgid "Enter the values and start your search."
msgstr "Digite algum número para começar a pesquisa."
@@ -218,50 +196,40 @@ msgstr "Digite algum número para começar a pesquisa."
msgid "No addresses found."
msgstr "Nenhum endereço encontrado com esse número."
-#: ../win32/gui/CheatDlg.c:458
-#: ../gui/Cheat.c:541
+#: ../win32/gui/CheatDlg.c:458 ../gui/Cheat.c:544
msgid "Too many addresses found."
msgstr "Muitos endereços encontrados com esse número, refine a pesquisa."
-#: ../win32/gui/CheatDlg.c:467
-#: ../gui/Cheat.c:550
+#: ../win32/gui/CheatDlg.c:467 ../gui/Cheat.c:553
#, c-format
msgid "%.8X Current: %u (%.2X), Previous: %u (%.2X)"
msgstr "%.8X Atual: %u (%.2X), Anterior: %u (%.2X)"
-#: ../win32/gui/CheatDlg.c:472
-#: ../gui/Cheat.c:555
+#: ../win32/gui/CheatDlg.c:472 ../gui/Cheat.c:558
#, c-format
msgid "%.8X Current: %u (%.4X), Previous: %u (%.4X)"
msgstr "%.8X Atual: %u (%.4X), Anterior: %u (%.4X)"
-#: ../win32/gui/CheatDlg.c:477
-#: ../gui/Cheat.c:560
+#: ../win32/gui/CheatDlg.c:477 ../gui/Cheat.c:563
#, c-format
msgid "%.8X Current: %u (%.8X), Previous: %u (%.8X)"
msgstr "%.8X Atual: %u (%.8X), Anterior: %u (%.8X)"
-#: ../win32/gui/CheatDlg.c:493
-#: ../gui/Cheat.c:575
+#: ../win32/gui/CheatDlg.c:493 ../gui/Cheat.c:578
#, c-format
msgid "Founded Addresses: %d"
msgstr "Endereços com o número: %d"
-#: ../win32/gui/CheatDlg.c:505
-#: ../data/pcsx.glade2:2800
+#: ../win32/gui/CheatDlg.c:505 ../data/pcsx.glade2:2801
msgid "Freeze"
msgstr "Parar"
-#: ../win32/gui/CheatDlg.c:506
-#: ../win32/gui/CheatDlg.c:597
+#: ../win32/gui/CheatDlg.c:506 ../win32/gui/CheatDlg.c:597
msgid "Address:"
msgstr "Endereço:"
-#: ../win32/gui/CheatDlg.c:507
-#: ../win32/gui/CheatDlg.c:598
-#: ../win32/gui/CheatDlg.c:683
-#: ../gui/Cheat.c:644
-#: ../data/pcsx.glade2:2644
+#: ../win32/gui/CheatDlg.c:507 ../win32/gui/CheatDlg.c:598
+#: ../win32/gui/CheatDlg.c:683 ../gui/Cheat.c:648 ../data/pcsx.glade2:2645
msgid "Value:"
msgstr "Valor:"
@@ -270,34 +238,27 @@ msgstr "Valor:"
msgid "Freeze %.8X"
msgstr "Parar %.8X"
-#: ../win32/gui/CheatDlg.c:596
-#: ../data/pcsx.glade2:2836
+#: ../win32/gui/CheatDlg.c:596 ../data/pcsx.glade2:2837
msgid "Modify"
msgstr "Modificar"
-#: ../win32/gui/CheatDlg.c:679
-#: ../gui/Cheat.c:1126
-#: ../data/pcsx.glade2:2572
+#: ../win32/gui/CheatDlg.c:679 ../gui/Cheat.c:1130 ../data/pcsx.glade2:2573
msgid "Cheat Search"
msgstr "Procurar por trapaça"
-#: ../win32/gui/CheatDlg.c:681
-#: ../data/pcsx.glade2:2622
+#: ../win32/gui/CheatDlg.c:681 ../data/pcsx.glade2:2623
msgid "Search For:"
msgstr "Buscar por:"
-#: ../win32/gui/CheatDlg.c:682
-#: ../data/pcsx.glade2:2632
+#: ../win32/gui/CheatDlg.c:682 ../data/pcsx.glade2:2633
msgid "Data Type:"
msgstr "Tipo de dados:"
-#: ../win32/gui/CheatDlg.c:684
-#: ../data/pcsx.glade2:2656
+#: ../win32/gui/CheatDlg.c:684 ../data/pcsx.glade2:2657
msgid "Data Base:"
msgstr "Banco de dados:"
-#: ../win32/gui/CheatDlg.c:685
-#: ../data/pcsx.glade2:2716
+#: ../win32/gui/CheatDlg.c:685 ../data/pcsx.glade2:2717
msgid "To:"
msgstr "Para:"
@@ -345,8 +306,7 @@ msgstr "Decimal"
msgid "Hexadecimal"
msgstr "Hexadecimal"
-#: ../win32/gui/ConfigurePlugins.c:206
-#: ../gui/Gtk2Gui.c:2228
+#: ../win32/gui/ConfigurePlugins.c:206 ../gui/Gtk2Gui.c:1665
msgid "Internal HLE Bios"
msgstr "BIOS HLE interna"
@@ -354,10 +314,8 @@ msgstr "BIOS HLE interna"
msgid "Configuration not OK!"
msgstr "Não configurou corretamente!"
-#: ../win32/gui/ConfigurePlugins.c:292
-#: ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
-#: ../gui/LnxMain.c:405
+#: ../win32/gui/ConfigurePlugins.c:292 ../gui/Cheat.c:156 ../gui/Cheat.c:252
+#: ../gui/LnxMain.c:407
msgid "Error"
msgstr "Erro"
@@ -413,30 +371,21 @@ msgstr "Escolher o diretório da BIOS"
msgid "Set Plugins Directory"
msgstr "Escolher o diretório das extensões"
-#: ../win32/gui/ConfigurePlugins.c:480
-#: ../win32/gui/ConfigurePlugins.c:483
-#: ../win32/gui/ConfigurePlugins.c:486
-#: ../win32/gui/ConfigurePlugins.c:489
-#: ../win32/gui/ConfigurePlugins.c:492
-#: ../win32/gui/ConfigurePlugins.c:604
+#: ../win32/gui/ConfigurePlugins.c:480 ../win32/gui/ConfigurePlugins.c:483
+#: ../win32/gui/ConfigurePlugins.c:486 ../win32/gui/ConfigurePlugins.c:489
+#: ../win32/gui/ConfigurePlugins.c:492 ../win32/gui/ConfigurePlugins.c:604
msgid "Configure..."
msgstr "Configurar..."
-#: ../win32/gui/ConfigurePlugins.c:481
-#: ../win32/gui/ConfigurePlugins.c:484
-#: ../win32/gui/ConfigurePlugins.c:487
-#: ../win32/gui/ConfigurePlugins.c:490
-#: ../win32/gui/ConfigurePlugins.c:493
-#: ../win32/gui/ConfigurePlugins.c:605
+#: ../win32/gui/ConfigurePlugins.c:481 ../win32/gui/ConfigurePlugins.c:484
+#: ../win32/gui/ConfigurePlugins.c:487 ../win32/gui/ConfigurePlugins.c:490
+#: ../win32/gui/ConfigurePlugins.c:493 ../win32/gui/ConfigurePlugins.c:605
msgid "Test..."
msgstr "Testar..."
-#: ../win32/gui/ConfigurePlugins.c:482
-#: ../win32/gui/ConfigurePlugins.c:485
-#: ../win32/gui/ConfigurePlugins.c:488
-#: ../win32/gui/ConfigurePlugins.c:491
-#: ../win32/gui/ConfigurePlugins.c:494
-#: ../win32/gui/ConfigurePlugins.c:606
+#: ../win32/gui/ConfigurePlugins.c:482 ../win32/gui/ConfigurePlugins.c:485
+#: ../win32/gui/ConfigurePlugins.c:488 ../win32/gui/ConfigurePlugins.c:491
+#: ../win32/gui/ConfigurePlugins.c:494 ../win32/gui/ConfigurePlugins.c:606
msgid "About..."
msgstr "Sobre..."
@@ -449,29 +398,28 @@ msgid "NetPlay"
msgstr "Jogo em rede"
#: ../win32/gui/ConfigurePlugins.c:607
-msgid "Note: The NetPlay Plugin Directory should be the same as the other Plugins."
-msgstr "Observação: o diretório da extensão de jogo em rede deve ser o mesmo que odas outras extensões."
+msgid ""
+"Note: The NetPlay Plugin Directory should be the same as the other Plugins."
+msgstr ""
+"Observação: o diretório da extensão de jogo em rede deve ser o mesmo que "
+"odas outras extensões."
-#: ../win32/gui/plugin.c:90
-#: ../win32/gui/WndMain.c:278
+#: ../win32/gui/plugin.c:90 ../win32/gui/WndMain.c:278
#, c-format
msgid "*PCSX*: Saved State %d"
msgstr "PCSX: Estado \"%d\" salvo."
-#: ../win32/gui/plugin.c:91
-#: ../win32/gui/WndMain.c:279
+#: ../win32/gui/plugin.c:91 ../win32/gui/WndMain.c:279
#, c-format
msgid "*PCSX*: Error Saving State %d"
msgstr "PCSX: Erro ao salvar o estado \"%d\"!"
-#: ../win32/gui/plugin.c:107
-#: ../win32/gui/WndMain.c:256
+#: ../win32/gui/plugin.c:107 ../win32/gui/WndMain.c:256
#, c-format
msgid "*PCSX*: Loaded State %d"
msgstr "PCSX: Estado \"%d\" carregado."
-#: ../win32/gui/plugin.c:108
-#: ../win32/gui/WndMain.c:257
+#: ../win32/gui/plugin.c:108 ../win32/gui/WndMain.c:257
#, c-format
msgid "*PCSX*: Error Loading State %d"
msgstr "PCSX: Erro ao carregar o estado \"%d\"!"
@@ -518,8 +466,7 @@ msgstr "PCSX: Bandeja do CDROM fechada."
msgid "Connecting..."
msgstr "Conectando..."
-#: ../win32/gui/plugin.c:179
-#: ../win32/gui/plugin.c:186
+#: ../win32/gui/plugin.c:179 ../win32/gui/plugin.c:186
#, c-format
msgid "Please wait while connecting... %c\n"
msgstr "Por favor, espere enquanto o emulador se conecta... %c\n"
@@ -614,8 +561,7 @@ msgstr "Alemão"
msgid "Greek"
msgstr "Grego"
-#: ../win32/gui/WndMain.c:80
-#: ../win32/gui/WndMain.c:1556
+#: ../win32/gui/WndMain.c:80 ../win32/gui/WndMain.c:1556
#: ../win32/gui/WndMain.c:1558
msgid "English"
msgstr "Inglês"
@@ -660,8 +606,7 @@ msgstr "Japonês"
msgid "Korean"
msgstr "Coreano"
-#: ../win32/gui/WndMain.c:297
-#: ../win32/gui/WndMain.c:349
+#: ../win32/gui/WndMain.c:297 ../win32/gui/WndMain.c:349
msgid "PCSX State Format"
msgstr "Formato dos estados salvos do PCSX"
@@ -685,17 +630,13 @@ msgstr "PCSX: Arquivo de estado \"%s\" salvo."
msgid "*PCSX*: Error Saving State %s"
msgstr "PCSX: Erro ao salvar o arquivo de estado \"%s\"!"
-#: ../win32/gui/WndMain.c:426
-#: ../win32/gui/WndMain.c:475
-#: ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../win32/gui/WndMain.c:426 ../win32/gui/WndMain.c:475 ../gui/Gtk2Gui.c:573
+#: ../gui/Gtk2Gui.c:698
msgid "The CD does not appear to be a valid Playstation CD"
msgstr "Esse CD não parece ser um CD de PlayStation!"
-#: ../win32/gui/WndMain.c:432
-#: ../win32/gui/WndMain.c:481
-#: ../gui/Gtk2Gui.c:583
-#: ../gui/Gtk2Gui.c:708
+#: ../win32/gui/WndMain.c:432 ../win32/gui/WndMain.c:481 ../gui/Gtk2Gui.c:581
+#: ../gui/Gtk2Gui.c:706
msgid "Could not load CD-ROM!"
msgstr "Não pôde carregar o CDROM!"
@@ -703,13 +644,11 @@ msgstr "Não pôde carregar o CDROM!"
msgid "Running BIOS is not supported with Internal HLE Bios."
msgstr "Iniciar pela BIOS não é suportado com a BIOS HLE interna."
-#: ../win32/gui/WndMain.c:661
-#: ../gui/Gtk2Gui.c:1068
+#: ../win32/gui/WndMain.c:661 ../gui/MemcardDlg.c:59
msgid "Title"
msgstr "Título"
-#: ../win32/gui/WndMain.c:667
-#: ../gui/Gtk2Gui.c:1074
+#: ../win32/gui/WndMain.c:667 ../gui/MemcardDlg.c:65
msgid "Status"
msgstr "Estado"
@@ -729,20 +668,17 @@ msgstr "bloco de ligação intermediário"
msgid "terminiting link block"
msgstr "bloco final da ligação"
-#: ../win32/gui/WndMain.c:864
-#: ../gui/Gtk2Gui.c:1148
+#: ../win32/gui/WndMain.c:864 ../gui/MemcardDlg.c:173 ../gui/MemcardDlg.c:243
msgid "Deleted"
msgstr "Apagado"
-#: ../win32/gui/WndMain.c:865
-#: ../win32/gui/WndMain.c:868
-#: ../gui/Gtk2Gui.c:1150
-#: ../gui/Gtk2Gui.c:1154
+#: ../win32/gui/WndMain.c:865 ../win32/gui/WndMain.c:868
+#: ../gui/MemcardDlg.c:175 ../gui/MemcardDlg.c:179 ../gui/MemcardDlg.c:245
+#: ../gui/MemcardDlg.c:249
msgid "Free"
msgstr "Liberado"
-#: ../win32/gui/WndMain.c:867
-#: ../gui/Gtk2Gui.c:1152
+#: ../win32/gui/WndMain.c:867 ../gui/MemcardDlg.c:177 ../gui/MemcardDlg.c:247
msgid "Used"
msgstr "Usado"
@@ -750,18 +686,15 @@ msgstr "Usado"
msgid "Memcard Manager"
msgstr "Gerenciador de cartões de memória"
-#: ../win32/gui/WndMain.c:965
-#: ../win32/gui/WndMain.c:968
+#: ../win32/gui/WndMain.c:965 ../win32/gui/WndMain.c:968
msgid "Select Mcd"
msgstr "Selecionar cartão"
-#: ../win32/gui/WndMain.c:966
-#: ../win32/gui/WndMain.c:969
+#: ../win32/gui/WndMain.c:966 ../win32/gui/WndMain.c:969
msgid "Format Mcd"
msgstr "Formatar cartão"
-#: ../win32/gui/WndMain.c:967
-#: ../win32/gui/WndMain.c:970
+#: ../win32/gui/WndMain.c:967 ../win32/gui/WndMain.c:970
msgid "Reload Mcd"
msgstr "Reiniciar cartão"
@@ -797,14 +730,12 @@ msgstr "Cartão de memória 2"
msgid "Are you sure you want to paste this selection?"
msgstr "Você tem certeza que quer colar o selecionado?"
-#: ../win32/gui/WndMain.c:1033
-#: ../win32/gui/WndMain.c:1144
+#: ../win32/gui/WndMain.c:1033 ../win32/gui/WndMain.c:1144
#: ../win32/gui/WndMain.c:1151
msgid "Confirmation"
msgstr "Confirmação"
-#: ../win32/gui/WndMain.c:1144
-#: ../win32/gui/WndMain.c:1151
+#: ../win32/gui/WndMain.c:1144 ../win32/gui/WndMain.c:1151
msgid "Are you sure you want to format this Memory Card?"
msgstr "Você tem certeza que quer formatar esse Cartão de Memória?"
@@ -828,8 +759,7 @@ msgstr "Filmes em preto e branco"
msgid "Disable Cd audio"
msgstr "Desativar áudio de CD"
-#: ../win32/gui/WndMain.c:1206
-#: ../data/pcsx.glade2:1444
+#: ../win32/gui/WndMain.c:1206 ../data/pcsx.glade2:1444
msgid "Autodetect"
msgstr "Detectar Automaticamente"
@@ -837,13 +767,11 @@ msgstr "Detectar Automaticamente"
msgid "Enable Interpreter Cpu"
msgstr "Ativar interpretador da CPU"
-#: ../win32/gui/WndMain.c:1208
-#: ../data/pcsx.glade2:1300
+#: ../win32/gui/WndMain.c:1208 ../data/pcsx.glade2:1300
msgid "Enable Console Output"
msgstr "Ativar saída no terminal"
-#: ../win32/gui/WndMain.c:1209
-#: ../data/pcsx.glade2:1250
+#: ../win32/gui/WndMain.c:1209 ../data/pcsx.glade2:1250
msgid "Enable Debugger"
msgstr "Ligar debugger"
@@ -851,13 +779,11 @@ msgstr "Ligar debugger"
msgid "Spu Irq Always Enabled"
msgstr "IRQ da SPU sempre ligada"
-#: ../win32/gui/WndMain.c:1211
-#: ../data/pcsx.glade2:1387
+#: ../win32/gui/WndMain.c:1211 ../data/pcsx.glade2:1387
msgid "Parasite Eve 2, Vandal Hearts 1/2 Fix"
msgstr "Correção para Parasite Eve 2, Vandal Hearts..."
-#: ../win32/gui/WndMain.c:1212
-#: ../data/pcsx.glade2:1402
+#: ../win32/gui/WndMain.c:1212 ../data/pcsx.glade2:1402
msgid "InuYasha Sengoku Battle Fix"
msgstr "Correção para InuYasha, Sengoku Battle..."
@@ -895,11 +821,8 @@ msgstr "Cartão de memória do DexDrive (*.gme)"
msgid "DataDeck Memory Card (*.ddf)"
msgstr "Cartão de memória do DataDeck (*.ddf)"
-#: ../win32/gui/WndMain.c:1350
-#: ../win32/gui/WndMain.c:1431
-#: ../gui/Cheat.c:319
-#: ../gui/Gtk2Gui.c:512
-#: ../gui/Gtk2Gui.c:651
+#: ../win32/gui/WndMain.c:1350 ../win32/gui/WndMain.c:1431 ../gui/Cheat.c:322
+#: ../gui/Gtk2Gui.c:510 ../gui/Gtk2Gui.c:649
msgid "All Files"
msgstr "Todos os arquivos"
@@ -963,33 +886,27 @@ msgstr "&Salvar"
msgid "&Load"
msgstr "&Carregar"
-#: ../win32/gui/WndMain.c:1519
-#: ../win32/gui/WndMain.c:1525
+#: ../win32/gui/WndMain.c:1519 ../win32/gui/WndMain.c:1525
msgid "&Other..."
msgstr "&Outros..."
-#: ../win32/gui/WndMain.c:1520
-#: ../win32/gui/WndMain.c:1526
+#: ../win32/gui/WndMain.c:1520 ../win32/gui/WndMain.c:1526
msgid "Slot &5"
msgstr "Unidade &5"
-#: ../win32/gui/WndMain.c:1521
-#: ../win32/gui/WndMain.c:1527
+#: ../win32/gui/WndMain.c:1521 ../win32/gui/WndMain.c:1527
msgid "Slot &4"
msgstr "Unidade &4"
-#: ../win32/gui/WndMain.c:1522
-#: ../win32/gui/WndMain.c:1528
+#: ../win32/gui/WndMain.c:1522 ../win32/gui/WndMain.c:1528
msgid "Slot &3"
msgstr "Unidade &3"
-#: ../win32/gui/WndMain.c:1523
-#: ../win32/gui/WndMain.c:1529
+#: ../win32/gui/WndMain.c:1523 ../win32/gui/WndMain.c:1529
msgid "Slot &2"
msgstr "Unidade &2"
-#: ../win32/gui/WndMain.c:1524
-#: ../win32/gui/WndMain.c:1530
+#: ../win32/gui/WndMain.c:1524 ../win32/gui/WndMain.c:1530
msgid "Slot &1"
msgstr "Unidade &1"
@@ -1057,200 +974,153 @@ msgstr "Mensagens do PCSX"
msgid "Error Loading Symbol"
msgstr "Erro ao carregar símbolo"
-#: ../gui/Cheat.c:117
-#: ../gui/Cheat.c:201
+#: ../gui/Cheat.c:118 ../gui/Cheat.c:203
msgid "Cheat Description:"
msgstr "Descrição da trapaça:"
-#: ../gui/Cheat.c:304
+#: ../gui/Cheat.c:307
msgid "Open Cheat File"
msgstr "Abrir arquivo de trapaça"
-#: ../gui/Cheat.c:314
-#: ../gui/Cheat.c:354
+#: ../gui/Cheat.c:317 ../gui/Cheat.c:357
msgid "PCSX Cheat Code Files (*.cht)"
msgstr "Arquivos de trapaça do PCSX (*.cht)"
-#: ../gui/Cheat.c:344
+#: ../gui/Cheat.c:347
msgid "Save Cheat File"
msgstr "Salvar um arquivo de trapaça"
-#: ../gui/Cheat.c:359
+#: ../gui/Cheat.c:362
msgid "All Files (*.*)"
msgstr "Todos os arquivos (*.*)"
-#: ../gui/Cheat.c:392
-#: ../gui/Cheat.c:1121
-#: ../gui/Gtk2Gui.c:400
-#: ../gui/Gtk2Gui.c:1020
+#: ../gui/Cheat.c:395 ../gui/Cheat.c:1125 ../gui/Gtk2Gui.c:398
+#: ../gui/Gtk2Gui.c:1018
msgid "Error: Glade interface could not be loaded!"
msgstr "Erro: o ambiente Glade não pôde ser carregado!"
-#: ../gui/Cheat.c:397
+#: ../gui/Cheat.c:400
msgid "Cheat Codes"
msgstr "Códigos de trapaça"
-#: ../gui/Cheat.c:403
+#: ../gui/Cheat.c:406
msgid "Enable"
msgstr "Ligar"
-#: ../gui/Cheat.c:627
+#: ../gui/Cheat.c:631
msgid "Freeze value"
msgstr "Congelar valor"
-#: ../gui/Cheat.c:726
+#: ../gui/Cheat.c:730
msgid "Modify value"
msgstr "Modificar valor"
-#: ../gui/Cheat.c:734
+#: ../gui/Cheat.c:738
msgid "New value:"
msgstr "Novo valor:"
-#: ../gui/Cheat.c:1131
+#: ../gui/Cheat.c:1135
msgid "Search Results"
msgstr "Resultados da busca"
-#: ../gui/Gtk2Gui.c:408
-#: ../data/pcsx.glade2:605
+#: ../gui/Gtk2Gui.c:406 ../data/pcsx.glade2:605
msgid "Configure PCSX"
msgstr "Configurar PCSX"
-#: ../gui/Gtk2Gui.c:494
+#: ../gui/Gtk2Gui.c:492
msgid "Select PSX EXE File"
msgstr "Selecione o arquivo executável de PSX"
-#: ../gui/Gtk2Gui.c:508
+#: ../gui/Gtk2Gui.c:506
msgid "PlayStation Executable Files"
msgstr "Arquivos executáveis do PlayStation"
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "Not a valid PSX file"
msgstr "Não é um arquivo válido de PSX"
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "The file does not appear to be a valid Playstation executable"
msgstr "Esse arquivo não parece ser um executável válido de PlayStation!"
-#: ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../gui/Gtk2Gui.c:573 ../gui/Gtk2Gui.c:698
msgid "CD ROM failed"
msgstr "CDROM falhou"
-#: ../gui/Gtk2Gui.c:583
+#: ../gui/Gtk2Gui.c:581
msgid "The CD ROM could not be loaded"
msgstr "O CDROM não pôde ser carregado!"
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Could not run BIOS"
msgstr "Não conseguiu iniciar a BIOS"
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Running BIOS is not supported with Internal HLE BIOS."
msgstr "Iniciar pela BIOS não é suportado com a BIOS HLE interno."
-#: ../gui/Gtk2Gui.c:626
+#: ../gui/Gtk2Gui.c:624
msgid "Open PSX Disc Image File"
msgstr "Abrir arquivo de imagem de CD de PSX"
-#: ../gui/Gtk2Gui.c:646
+#: ../gui/Gtk2Gui.c:644
msgid "PSX Image Files (*.bin, *.img, *.mdf, *.iso)"
msgstr "Arquivo de imagens de CD de PSX (*.bin, *.img, *.mdf, *.iso)"
-#: ../gui/Gtk2Gui.c:880
+#: ../gui/Gtk2Gui.c:878
#, c-format
msgid "Loaded state %s."
msgstr "Arquivo de estado \"%s\" carregado."
-#: ../gui/Gtk2Gui.c:884
+#: ../gui/Gtk2Gui.c:882
#, c-format
msgid "Error loading state %s!"
msgstr "Erro ao carregar o arquivo de estado \"%s\"!"
-#: ../gui/Gtk2Gui.c:895
+#: ../gui/Gtk2Gui.c:893
#, c-format
msgid "Saved state %s."
msgstr "Arquivo de estado \"%s\" salvo."
-#: ../gui/Gtk2Gui.c:897
+#: ../gui/Gtk2Gui.c:895
#, c-format
msgid "Error saving state %s!"
msgstr "Erro ao salvar o arquivo de estado \"%s\"!"
-#: ../gui/Gtk2Gui.c:931
-#: ../gui/Gtk2Gui.c:958
+#: ../gui/Gtk2Gui.c:929 ../gui/Gtk2Gui.c:956
msgid "Select State File"
msgstr "Selecione o arquivo de estado"
-#: ../gui/Gtk2Gui.c:1062
-msgid "Icon"
-msgstr "Ícone"
-
-#: ../gui/Gtk2Gui.c:1080
-msgid "ID"
-msgstr "ID"
-
-#: ../gui/Gtk2Gui.c:1086
-msgid "Name"
-msgstr "Nome"
-
-#: ../gui/Gtk2Gui.c:1246
-msgid "Format this Memory Card?"
-msgstr "Formatar esse cartão de memória?"
-
-#: ../gui/Gtk2Gui.c:1248
-msgid "If you format the memory card, the card will be empty, and any existing data overwritten."
-msgstr "Ao formatar o cartão de memória, todo o conteúdo será zerado."
-
-#: ../gui/Gtk2Gui.c:1251
-msgid "Format card"
-msgstr "Formatar cartão"
-
-#: ../gui/Gtk2Gui.c:1366
-msgid "No space available in the target memory card!"
-msgstr "Não há espaço suficiente no cartão de memória selecionado!"
-
-#: ../gui/Gtk2Gui.c:1508
-#: ../gui/Gtk2Gui.c:1529
-#: ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571
-#: ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055 ../gui/Gtk2Gui.c:1076 ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118 ../gui/Gtk2Gui.c:1317
msgid "No configuration required"
msgstr "Não necessita de configuração"
-#: ../gui/Gtk2Gui.c:1508
-#: ../gui/Gtk2Gui.c:1529
-#: ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571
-#: ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055 ../gui/Gtk2Gui.c:1076 ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118 ../gui/Gtk2Gui.c:1317
msgid "This plugin doesn't need to be configured."
msgstr "Esta extensão não pode ser configurada."
-#: ../gui/Gtk2Gui.c:1608
-msgid "Memory Card Manager"
-msgstr "Gerenciador de cartões de memória"
-
-#: ../gui/Gtk2Gui.c:2134
+#: ../gui/Gtk2Gui.c:1571
#, c-format
msgid "Could not open BIOS directory: '%s'\n"
msgstr "Não conseguiu abrir o diretório \"%s\", da BIOS!\n"
-#: ../gui/Gtk2Gui.c:2164
-#: ../gui/Gtk2Gui.c:2257
-#: ../gui/LnxMain.c:170
+#: ../gui/Gtk2Gui.c:1601 ../gui/Gtk2Gui.c:1694 ../gui/LnxMain.c:172
#, c-format
msgid "Could not open directory: '%s'\n"
msgstr "Não conseguiu abrir o diretório \"%s\"!\n"
-#: ../gui/Gtk2Gui.c:2318
+#: ../gui/Gtk2Gui.c:1755
msgid "Notice"
msgstr "Aviso"
-#: ../gui/LnxMain.c:65
+#: ../gui/LnxMain.c:67
#, c-format
msgid "Creating memory card: %s\n"
msgstr "Criando cartão de memória \"%s\"\n"
-#: ../gui/LnxMain.c:312
+#: ../gui/LnxMain.c:314
msgid ""
" pcsx [options] [file]\n"
"\toptions:\n"
@@ -1268,33 +1138,77 @@ msgstr ""
"\t-runcd\t\tExecuta direto pelo CD-ROM\n"
"\t-cdfile ARQUIVO\tRoda um arquivo de imagem de CD\n"
"\t-nogui\t\tNão abre o GUI da GTK\n"
-"\t-cfg ARQUIVO\tCarrega uma configuração alternativa (padrão: ~/.pcsx/pcsx.cfg)\n"
+"\t-cfg ARQUIVO\tCarrega uma configuração alternativa (padrão: ~/.pcsx/pcsx."
+"cfg)\n"
"\t-psxout\t\tAtiva a saída do PSX no console\n"
"\t-load NÚMERO_ESTADO\tCarrega um estado entre 1-5\n"
"\t-h -help\tMostra essa mensagem\n"
"\t[arquivo]\t\tCarrega um arquivo.\n"
-#: ../gui/LnxMain.c:350
+#: ../gui/LnxMain.c:352
#, c-format
-msgid "PCSX cannot be configured without using the GUI -- you should restart without -nogui.\n"
-msgstr "PCSX não pode ser configurado sem o GUI -- reinicie sem a opção -nogui.\n"
+msgid ""
+"PCSX cannot be configured without using the GUI -- you should restart "
+"without -nogui.\n"
+msgstr ""
+"PCSX não pode ser configurado sem o GUI -- reinicie sem a opção -nogui.\n"
-#: ../gui/LnxMain.c:405
+#: ../gui/LnxMain.c:407
msgid "Failed loading plugins!"
msgstr "Não conseguiu carregar as extensões!"
-#: ../gui/LnxMain.c:422
+#: ../gui/LnxMain.c:424
#, c-format
msgid "Could not load CD-ROM!\n"
msgstr "Não pôde carregar o CD-ROM!\n"
-#: ../gui/LnxMain.c:461
+#: ../gui/LnxMain.c:463
#, c-format
msgid "PSX emulator couldn't be initialized.\n"
msgstr "O emulador não pôde ser inicializado.\n"
-#: ../gui/Plugin.c:204
-#: ../data/pcsx.glade2:1336
+#: ../gui/MemcardDlg.c:53
+msgid "Icon"
+msgstr "Ícone"
+
+#: ../gui/MemcardDlg.c:71
+msgid "ID"
+msgstr "ID"
+
+#: ../gui/MemcardDlg.c:77
+msgid "Name"
+msgstr "Nome"
+
+#: ../gui/MemcardDlg.c:333
+msgid "Format this Memory Card?"
+msgstr "Formatar esse cartão de memória?"
+
+#: ../gui/MemcardDlg.c:335
+msgid ""
+"If you format the memory card, the card will be empty, and any existing data "
+"overwritten."
+msgstr "Ao formatar o cartão de memória, todo o conteúdo será zerado."
+
+#: ../gui/MemcardDlg.c:338
+msgid "Format card"
+msgstr "Formatar cartão"
+
+#: ../gui/MemcardDlg.c:441
+#, fuzzy
+msgid "No free space on memory card"
+msgstr "Criando cartão de memória \"%s\"\n"
+
+#: ../gui/MemcardDlg.c:442
+msgid ""
+"There are no free slots available on the target memory card. Please delete a "
+"slot first."
+msgstr ""
+
+#: ../gui/MemcardDlg.c:597
+msgid "Memory Card Manager"
+msgstr "Gerenciador de cartões de memória"
+
+#: ../gui/Plugin.c:204 ../data/pcsx.glade2:1336
#, c-format
msgid "SIO IRQ Always Enabled"
msgstr "IRQ SIO sempre ativada"
@@ -1379,8 +1293,7 @@ msgstr "Trapaças de \"%s\" carregadas.\n"
msgid "Cheats saved to: %s\n"
msgstr "Trapaças salvas para \"%s\".\n"
-#: ../libpcsxcore/cheat.c:323
-#: ../libpcsxcore/cheat.c:444
+#: ../libpcsxcore/cheat.c:323 ../libpcsxcore/cheat.c:444
msgid "(Untitled)"
msgstr "(Sem título)"
@@ -1807,33 +1720,27 @@ msgstr "_Trocar de imagem de CD..."
msgid "_Save State"
msgstr "_Salvar estado"
-#: ../data/pcsx.glade2:200
-#: ../data/pcsx.glade2:281
+#: ../data/pcsx.glade2:200 ../data/pcsx.glade2:281
msgid "Slot _1"
msgstr "Unidade _1"
-#: ../data/pcsx.glade2:209
-#: ../data/pcsx.glade2:290
+#: ../data/pcsx.glade2:209 ../data/pcsx.glade2:290
msgid "Slot _2"
msgstr "Unidade _2"
-#: ../data/pcsx.glade2:218
-#: ../data/pcsx.glade2:299
+#: ../data/pcsx.glade2:218 ../data/pcsx.glade2:299
msgid "Slot _3"
msgstr "Unidade _3"
-#: ../data/pcsx.glade2:227
-#: ../data/pcsx.glade2:308
+#: ../data/pcsx.glade2:227 ../data/pcsx.glade2:308
msgid "Slot _4"
msgstr "Unidade _4"
-#: ../data/pcsx.glade2:236
-#: ../data/pcsx.glade2:317
+#: ../data/pcsx.glade2:236 ../data/pcsx.glade2:317
msgid "Slot _5"
msgstr "Unidade _5"
-#: ../data/pcsx.glade2:244
-#: ../data/pcsx.glade2:325
+#: ../data/pcsx.glade2:244 ../data/pcsx.glade2:325
msgid "_Other..."
msgstr "_Outros..."
@@ -1985,36 +1892,31 @@ msgstr "<b>Jogo em rede</b>"
msgid "Configure Memory Cards"
msgstr "Configurar cartões de memória"
-#: ../data/pcsx.glade2:1773
-#: ../data/pcsx.glade2:2171
+#: ../data/pcsx.glade2:1773 ../data/pcsx.glade2:2122
+msgid "New"
+msgstr ""
+
+#: ../data/pcsx.glade2:1823 ../data/pcsx.glade2:2172
msgid "Format"
msgstr "Formatar"
-#: ../data/pcsx.glade2:1823
-#: ../data/pcsx.glade2:2221
-msgid "Reload"
-msgstr "Recarregar"
+#: ../data/pcsx.glade2:1873 ../data/pcsx.glade2:2222
+msgid "Un/Delete"
+msgstr "Apagar/Desfazer"
-#: ../data/pcsx.glade2:1867
+#: ../data/pcsx.glade2:1917
msgid "<b>Memory Card 1</b>"
msgstr "<b>Cartão de memória 1</b>"
-#: ../data/pcsx.glade2:1927
-#: ../data/pcsx.glade2:1977
-#: ../data/pcsx.glade2:2872
+#: ../data/pcsx.glade2:1978 ../data/pcsx.glade2:2028 ../data/pcsx.glade2:2873
msgid "Copy"
msgstr "Copiar"
-#: ../data/pcsx.glade2:2027
-#: ../data/pcsx.glade2:2077
-msgid "Un/Delete"
-msgstr "Apagar/Desfazer"
-
-#: ../data/pcsx.glade2:2265
+#: ../data/pcsx.glade2:2266
msgid "<b>Memory Card 2</b>"
msgstr "<b>Cartão de memória 2</b>"
-#: ../data/pcsx.glade2:2343
+#: ../data/pcsx.glade2:2344
msgid ""
"(C) 1999-2003 PCSX Team\n"
"(C) 2005-2006 Ryan Schultz\n"
@@ -2026,11 +1928,11 @@ msgstr ""
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
-#: ../data/pcsx.glade2:2347
+#: ../data/pcsx.glade2:2348
msgid "A PlayStation emulator."
msgstr "Um emulador de PlayStation."
-#: ../data/pcsx.glade2:2350
+#: ../data/pcsx.glade2:2351
msgid ""
"This program is free software; you can redistribute it\n"
"and/or modify it under the terms of the GNU General\n"
@@ -2064,15 +1966,16 @@ msgstr ""
"Public License along with this program; if not, write to\n"
"the Free Software Foundation, Inc."
-#: ../data/pcsx.glade2:2379
+#: ../data/pcsx.glade2:2380
msgid "translator-credits"
-msgstr "Tradução para português brasileiro por Tibério Vítor (tvtoon@gmail.com)"
+msgstr ""
+"Tradução para português brasileiro por Tibério Vítor (tvtoon@gmail.com)"
-#: ../data/pcsx.glade2:2441
+#: ../data/pcsx.glade2:2442
msgid "<b>Cheat Codes</b>"
msgstr "<b>Códigos de trapaça</b>"
-#: ../data/pcsx.glade2:2607
+#: ../data/pcsx.glade2:2608
msgid ""
"8-bit\n"
"16-bit\n"
@@ -2082,7 +1985,7 @@ msgstr ""
"16-bit\n"
"32-bit"
-#: ../data/pcsx.glade2:2670
+#: ../data/pcsx.glade2:2671
msgid ""
"Equal Value\n"
"Not Equal Value\n"
@@ -2104,7 +2007,7 @@ msgstr ""
"Diferente\n"
"Sem mudanças"
-#: ../data/pcsx.glade2:2702
+#: ../data/pcsx.glade2:2703
msgid ""
"Decimal\n"
"Hexadecimal"
@@ -2112,19 +2015,19 @@ msgstr ""
"Decimal\n"
"Hexadecimal"
-#: ../data/pcsx.glade2:2905
+#: ../data/pcsx.glade2:2906
msgid "label_resultsfound"
msgstr "Resultados encontrados:"
-#: ../data/pcsx.glade2:2940
+#: ../data/pcsx.glade2:2941
msgid "Search"
msgstr "Buscar"
-#: ../data/pcsx.glade2:2976
+#: ../data/pcsx.glade2:2977
msgid "Restart"
msgstr "Reiniciar"
-#: ../data/pcsx.glade2:3005
+#: ../data/pcsx.glade2:3006
msgid "<b>Cheat Search</b>"
msgstr "<b>Busca de trapaças</b>"
@@ -2242,7 +2145,7 @@ msgstr "Som em canal único"
msgid "Play only one channel for a performance boost."
msgstr "Tocar apenas um canal para melhorar o desempenho."
-#: ../plugins/dfcdrom/cdr-linux.c:48
+#: ../plugins/dfcdrom/cdr-linux.c:60
msgid "CD-ROM Drive Reader"
msgstr "Leitor de unidade de CDROM"
@@ -2250,14 +2153,15 @@ msgstr "Leitor de unidade de CDROM"
msgid "CDR NULL Plugin"
msgstr "Sem unidade de CDROM"
-#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:166
+#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:175
#: ../plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2:8
msgid "CDR configuration"
msgstr "Configuração do CDROM"
#: ../plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2:33
msgid "Choose your CD-ROM device or type its path if it's not listed"
-msgstr "Escolha sua unidade de CDROM ou digite o dispositivo caso não esteja listado."
+msgstr ""
+"Escolha sua unidade de CDROM ou digite o dispositivo caso não esteja listado."
#: ../plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2:44
msgid "Select CD-ROM device"
@@ -2806,8 +2710,7 @@ msgstr ""
msgid "Keyboard:"
msgstr ""
-#: ../plugins/dfinput/cfg-gtk2.c:132
-#: ../plugins/dfinput/cfg-gtk2.c:140
+#: ../plugins/dfinput/cfg-gtk2.c:132 ../plugins/dfinput/cfg-gtk2.c:140
#, c-format
msgid "(Not Set)"
msgstr ""
@@ -2845,13 +2748,11 @@ msgstr ""
msgid "Gamepad/Keyboard Input Configuration"
msgstr ""
-#: ../plugins/dfinput/cfg-gtk2.c:530
-#: ../plugins/dfinput/cfg-gtk2.c:550
+#: ../plugins/dfinput/cfg-gtk2.c:530 ../plugins/dfinput/cfg-gtk2.c:550
msgid "Key"
msgstr ""
-#: ../plugins/dfinput/cfg-gtk2.c:536
-#: ../plugins/dfinput/cfg-gtk2.c:556
+#: ../plugins/dfinput/cfg-gtk2.c:536 ../plugins/dfinput/cfg-gtk2.c:556
msgid "Button"
msgstr ""
@@ -2863,30 +2764,25 @@ msgstr ""
msgid "Gamepad/Keyboard Input"
msgstr "Entrada do gamepad ou teclado"
-#: ../plugins/dfinput/dfinput.glade2:35
-#: ../plugins/dfinput/dfinput.glade2:232
+#: ../plugins/dfinput/dfinput.glade2:35 ../plugins/dfinput/dfinput.glade2:232
msgid "Device:"
msgstr ""
-#: ../plugins/dfinput/dfinput.glade2:66
-#: ../plugins/dfinput/dfinput.glade2:263
+#: ../plugins/dfinput/dfinput.glade2:66 ../plugins/dfinput/dfinput.glade2:263
msgid "Type:"
msgstr ""
-#: ../plugins/dfinput/dfinput.glade2:78
-#: ../plugins/dfinput/dfinput.glade2:275
+#: ../plugins/dfinput/dfinput.glade2:78 ../plugins/dfinput/dfinput.glade2:275
msgid ""
"Digital Pad\n"
"Analog Pad"
msgstr ""
-#: ../plugins/dfinput/dfinput.glade2:149
-#: ../plugins/dfinput/dfinput.glade2:346
+#: ../plugins/dfinput/dfinput.glade2:149 ../plugins/dfinput/dfinput.glade2:346
msgid "Change"
msgstr ""
-#: ../plugins/dfinput/dfinput.glade2:185
-#: ../plugins/dfinput/dfinput.glade2:382
+#: ../plugins/dfinput/dfinput.glade2:185 ../plugins/dfinput/dfinput.glade2:382
msgid "Reset"
msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 29388b5a..2104991a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pcsxr 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-26 23:05+0800\n"
-"PO-Revision-Date: 2009-11-26 23:08+0700\n"
+"POT-Creation-Date: 2009-11-28 18:23+0800\n"
+"PO-Revision-Date: 2009-11-28 18:25+0700\n"
"Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n"
"Language-Team: Simplified Chinese <whistler@openoffice.org>\n"
"MIME-Version: 1.0\n"
@@ -88,20 +88,20 @@ msgid "No"
msgstr "否"
#: ../win32/gui/CheatDlg.c:67
-#: ../gui/Cheat.c:193
+#: ../gui/Cheat.c:195
msgid "Edit Cheat"
msgstr "编辑作弊码"
#: ../win32/gui/CheatDlg.c:68
#: ../win32/gui/CheatDlg.c:118
-#: ../gui/Cheat.c:633
+#: ../gui/Cheat.c:637
msgid "Description:"
msgstr "描述:"
#: ../win32/gui/CheatDlg.c:69
#: ../win32/gui/CheatDlg.c:119
-#: ../gui/Cheat.c:125
-#: ../gui/Cheat.c:210
+#: ../gui/Cheat.c:126
+#: ../gui/Cheat.c:212
msgid "Cheat Code:"
msgstr "作弊码:"
@@ -117,18 +117,18 @@ msgstr "取消"
#: ../win32/gui/CheatDlg.c:92
#: ../win32/gui/CheatDlg.c:133
-#: ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
+#: ../gui/Cheat.c:156
+#: ../gui/Cheat.c:252
msgid "Invalid cheat code!"
msgstr "非法作弊码!"
#: ../win32/gui/CheatDlg.c:117
-#: ../gui/Cheat.c:109
+#: ../gui/Cheat.c:110
msgid "Add New Cheat"
msgstr "添加新作弊码"
#: ../win32/gui/CheatDlg.c:167
-#: ../data/pcsx.glade2:2401
+#: ../data/pcsx.glade2:2402
msgid "Edit Cheat Codes"
msgstr "编辑作弊码"
@@ -161,7 +161,7 @@ msgid "&Close"
msgstr "关闭(&C)"
#: ../win32/gui/CheatDlg.c:186
-#: ../gui/Cheat.c:411
+#: ../gui/Cheat.c:414
msgid "Description"
msgstr "描述"
@@ -211,7 +211,7 @@ msgid "No Change"
msgstr "无改变"
#: ../win32/gui/CheatDlg.c:449
-#: ../gui/Cheat.c:583
+#: ../gui/Cheat.c:586
msgid "Enter the values and start your search."
msgstr "输入数值并开始查找。"
@@ -220,36 +220,36 @@ msgid "No addresses found."
msgstr "未找到地址。"
#: ../win32/gui/CheatDlg.c:458
-#: ../gui/Cheat.c:541
+#: ../gui/Cheat.c:544
msgid "Too many addresses found."
msgstr "找到过多的地址。"
#: ../win32/gui/CheatDlg.c:467
-#: ../gui/Cheat.c:550
+#: ../gui/Cheat.c:553
#, c-format
msgid "%.8X Current: %u (%.2X), Previous: %u (%.2X)"
msgstr "%.8X 当前值: %u (%.2X), 前次值: %u (%.2X)"
#: ../win32/gui/CheatDlg.c:472
-#: ../gui/Cheat.c:555
+#: ../gui/Cheat.c:558
#, c-format
msgid "%.8X Current: %u (%.4X), Previous: %u (%.4X)"
msgstr "%.8X 当前值: %u (%.4X), 前次值: %u (%.4X)"
#: ../win32/gui/CheatDlg.c:477
-#: ../gui/Cheat.c:560
+#: ../gui/Cheat.c:563
#, c-format
msgid "%.8X Current: %u (%.8X), Previous: %u (%.8X)"
msgstr "%.8X 当前值: %u (%.8X), 前次值: %u (%.8X)"
#: ../win32/gui/CheatDlg.c:493
-#: ../gui/Cheat.c:575
+#: ../gui/Cheat.c:578
#, c-format
msgid "Founded Addresses: %d"
msgstr "找到地址个数: %d"
#: ../win32/gui/CheatDlg.c:505
-#: ../data/pcsx.glade2:2800
+#: ../data/pcsx.glade2:2801
msgid "Freeze"
msgstr "固定"
@@ -261,8 +261,8 @@ msgstr "地址:"
#: ../win32/gui/CheatDlg.c:507
#: ../win32/gui/CheatDlg.c:598
#: ../win32/gui/CheatDlg.c:683
-#: ../gui/Cheat.c:644
-#: ../data/pcsx.glade2:2644
+#: ../gui/Cheat.c:648
+#: ../data/pcsx.glade2:2645
msgid "Value:"
msgstr "值:"
@@ -272,33 +272,33 @@ msgid "Freeze %.8X"
msgstr "固定 %.8X"
#: ../win32/gui/CheatDlg.c:596
-#: ../data/pcsx.glade2:2836
+#: ../data/pcsx.glade2:2837
msgid "Modify"
msgstr "修改"
#: ../win32/gui/CheatDlg.c:679
-#: ../gui/Cheat.c:1126
-#: ../data/pcsx.glade2:2572
+#: ../gui/Cheat.c:1130
+#: ../data/pcsx.glade2:2573
msgid "Cheat Search"
msgstr "查找作弊码"
#: ../win32/gui/CheatDlg.c:681
-#: ../data/pcsx.glade2:2622
+#: ../data/pcsx.glade2:2623
msgid "Search For:"
msgstr "查找:"
#: ../win32/gui/CheatDlg.c:682
-#: ../data/pcsx.glade2:2632
+#: ../data/pcsx.glade2:2633
msgid "Data Type:"
msgstr "数据类型:"
#: ../win32/gui/CheatDlg.c:684
-#: ../data/pcsx.glade2:2656
+#: ../data/pcsx.glade2:2657
msgid "Data Base:"
msgstr "数据基:"
#: ../win32/gui/CheatDlg.c:685
-#: ../data/pcsx.glade2:2716
+#: ../data/pcsx.glade2:2717
msgid "To:"
msgstr "到:"
@@ -347,7 +347,7 @@ msgid "Hexadecimal"
msgstr "十六进制"
#: ../win32/gui/ConfigurePlugins.c:206
-#: ../gui/Gtk2Gui.c:2228
+#: ../gui/Gtk2Gui.c:1665
msgid "Internal HLE Bios"
msgstr "内部 HLE-Bios"
@@ -356,9 +356,9 @@ msgid "Configuration not OK!"
msgstr "配置不正确!"
#: ../win32/gui/ConfigurePlugins.c:292
-#: ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
-#: ../gui/LnxMain.c:405
+#: ../gui/Cheat.c:156
+#: ../gui/Cheat.c:252
+#: ../gui/LnxMain.c:407
msgid "Error"
msgstr "错误"
@@ -688,15 +688,15 @@ msgstr "*PCSX*: Error Saving State %s"
#: ../win32/gui/WndMain.c:426
#: ../win32/gui/WndMain.c:475
-#: ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../gui/Gtk2Gui.c:573
+#: ../gui/Gtk2Gui.c:698
msgid "The CD does not appear to be a valid Playstation CD"
msgstr "此光盘不是一张合法的 PlayStation 光盘。"
#: ../win32/gui/WndMain.c:432
#: ../win32/gui/WndMain.c:481
-#: ../gui/Gtk2Gui.c:583
-#: ../gui/Gtk2Gui.c:708
+#: ../gui/Gtk2Gui.c:581
+#: ../gui/Gtk2Gui.c:706
msgid "Could not load CD-ROM!"
msgstr "无法加载光盘!"
@@ -705,12 +705,12 @@ msgid "Running BIOS is not supported with Internal HLE Bios."
msgstr "内部 HLE BIOS 不支持直接运行。"
#: ../win32/gui/WndMain.c:661
-#: ../gui/Gtk2Gui.c:1068
+#: ../gui/MemcardDlg.c:59
msgid "Title"
msgstr "标题"
#: ../win32/gui/WndMain.c:667
-#: ../gui/Gtk2Gui.c:1074
+#: ../gui/MemcardDlg.c:65
msgid "Status"
msgstr "状态"
@@ -731,19 +731,23 @@ msgid "terminiting link block"
msgstr "terminiting link block"
#: ../win32/gui/WndMain.c:864
-#: ../gui/Gtk2Gui.c:1148
+#: ../gui/MemcardDlg.c:173
+#: ../gui/MemcardDlg.c:243
msgid "Deleted"
msgstr "已删除"
#: ../win32/gui/WndMain.c:865
#: ../win32/gui/WndMain.c:868
-#: ../gui/Gtk2Gui.c:1150
-#: ../gui/Gtk2Gui.c:1154
+#: ../gui/MemcardDlg.c:175
+#: ../gui/MemcardDlg.c:179
+#: ../gui/MemcardDlg.c:245
+#: ../gui/MemcardDlg.c:249
msgid "Free"
msgstr "空闲"
#: ../win32/gui/WndMain.c:867
-#: ../gui/Gtk2Gui.c:1152
+#: ../gui/MemcardDlg.c:177
+#: ../gui/MemcardDlg.c:247
msgid "Used"
msgstr "已使用"
@@ -898,9 +902,9 @@ msgstr "DataDeck 记忆卡 (*.ddl)"
#: ../win32/gui/WndMain.c:1350
#: ../win32/gui/WndMain.c:1431
-#: ../gui/Cheat.c:319
-#: ../gui/Gtk2Gui.c:512
-#: ../gui/Gtk2Gui.c:651
+#: ../gui/Cheat.c:322
+#: ../gui/Gtk2Gui.c:510
+#: ../gui/Gtk2Gui.c:649
msgid "All Files"
msgstr "所有文件"
@@ -1058,200 +1062,168 @@ msgstr "PCSX 消息"
msgid "Error Loading Symbol"
msgstr "无法加载符号"
-#: ../gui/Cheat.c:117
-#: ../gui/Cheat.c:201
+#: ../gui/Cheat.c:118
+#: ../gui/Cheat.c:203
msgid "Cheat Description:"
msgstr "作弊码描述:"
-#: ../gui/Cheat.c:304
+#: ../gui/Cheat.c:307
msgid "Open Cheat File"
msgstr "打开作弊码文件"
-#: ../gui/Cheat.c:314
-#: ../gui/Cheat.c:354
+#: ../gui/Cheat.c:317
+#: ../gui/Cheat.c:357
msgid "PCSX Cheat Code Files (*.cht)"
msgstr "PCSX 作弊码文件 (*.cht)"
-#: ../gui/Cheat.c:344
+#: ../gui/Cheat.c:347
msgid "Save Cheat File"
msgstr "保存作弊码文件"
-#: ../gui/Cheat.c:359
+#: ../gui/Cheat.c:362
msgid "All Files (*.*)"
msgstr "所有文件 (*.*)"
-#: ../gui/Cheat.c:392
-#: ../gui/Cheat.c:1121
-#: ../gui/Gtk2Gui.c:400
-#: ../gui/Gtk2Gui.c:1020
+#: ../gui/Cheat.c:395
+#: ../gui/Cheat.c:1125
+#: ../gui/Gtk2Gui.c:398
+#: ../gui/Gtk2Gui.c:1018
msgid "Error: Glade interface could not be loaded!"
msgstr "错误:无法加载 Glade 界面!"
-#: ../gui/Cheat.c:397
+#: ../gui/Cheat.c:400
msgid "Cheat Codes"
msgstr "作弊码"
-#: ../gui/Cheat.c:403
+#: ../gui/Cheat.c:406
msgid "Enable"
msgstr "启用"
-#: ../gui/Cheat.c:627
+#: ../gui/Cheat.c:631
msgid "Freeze value"
msgstr "固定数值"
-#: ../gui/Cheat.c:726
+#: ../gui/Cheat.c:730
msgid "Modify value"
msgstr "修改数值"
-#: ../gui/Cheat.c:734
+#: ../gui/Cheat.c:738
msgid "New value:"
msgstr "新值:"
-#: ../gui/Cheat.c:1131
+#: ../gui/Cheat.c:1135
msgid "Search Results"
msgstr "查找结果"
-#: ../gui/Gtk2Gui.c:408
+#: ../gui/Gtk2Gui.c:406
#: ../data/pcsx.glade2:605
msgid "Configure PCSX"
msgstr "配置 PCSX"
-#: ../gui/Gtk2Gui.c:494
+#: ../gui/Gtk2Gui.c:492
msgid "Select PSX EXE File"
msgstr "选择 PSX EXE 文件"
-#: ../gui/Gtk2Gui.c:508
+#: ../gui/Gtk2Gui.c:506
msgid "PlayStation Executable Files"
msgstr "PlayStation 可执行文件"
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "Not a valid PSX file"
msgstr "不是一个合法的 PSX 文件"
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "The file does not appear to be a valid Playstation executable"
msgstr "此文件不是一个合法的 PlayStation 可执行文件"
-#: ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../gui/Gtk2Gui.c:573
+#: ../gui/Gtk2Gui.c:698
msgid "CD ROM failed"
msgstr "CD-ROM 失败"
-#: ../gui/Gtk2Gui.c:583
+#: ../gui/Gtk2Gui.c:581
msgid "The CD ROM could not be loaded"
msgstr "无法加载 CD-ROM"
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Could not run BIOS"
msgstr "无法运行 BIOS"
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Running BIOS is not supported with Internal HLE BIOS."
msgstr "内部 HLE BIOS 不支持直接运行。"
-#: ../gui/Gtk2Gui.c:626
+#: ../gui/Gtk2Gui.c:624
msgid "Open PSX Disc Image File"
msgstr "打开 PSX 光盘镜像文件"
-#: ../gui/Gtk2Gui.c:646
+#: ../gui/Gtk2Gui.c:644
msgid "PSX Image Files (*.bin, *.img, *.mdf, *.iso)"
msgstr "PS 镜像文件 (*.bin, *.img, *.mdf, *.iso)"
-#: ../gui/Gtk2Gui.c:880
+#: ../gui/Gtk2Gui.c:878
#, c-format
msgid "Loaded state %s."
msgstr "已读取存档 %s。"
-#: ../gui/Gtk2Gui.c:884
+#: ../gui/Gtk2Gui.c:882
#, c-format
msgid "Error loading state %s!"
msgstr "读取存档 %s 时出错。"
-#: ../gui/Gtk2Gui.c:895
+#: ../gui/Gtk2Gui.c:893
#, c-format
msgid "Saved state %s."
msgstr "已保存存档 %s"
-#: ../gui/Gtk2Gui.c:897
+#: ../gui/Gtk2Gui.c:895
#, c-format
msgid "Error saving state %s!"
msgstr "保存存档 %s 时出错。"
-#: ../gui/Gtk2Gui.c:931
-#: ../gui/Gtk2Gui.c:958
+#: ../gui/Gtk2Gui.c:929
+#: ../gui/Gtk2Gui.c:956
msgid "Select State File"
msgstr "选择存档文件"
-#: ../gui/Gtk2Gui.c:1062
-msgid "Icon"
-msgstr "图标"
-
-#: ../gui/Gtk2Gui.c:1080
-msgid "ID"
-msgstr "ID"
-
-#: ../gui/Gtk2Gui.c:1086
-msgid "Name"
-msgstr "名称"
-
-#: ../gui/Gtk2Gui.c:1246
-msgid "Format this Memory Card?"
-msgstr "格式化此记忆卡?"
-
-#: ../gui/Gtk2Gui.c:1248
-msgid "If you format the memory card, the card will be empty, and any existing data overwritten."
-msgstr "如果您选择格式化记忆卡,记忆卡将被清空,并且任何现有数据都将被覆盖。"
-
-#: ../gui/Gtk2Gui.c:1251
-msgid "Format card"
-msgstr "格式化记忆卡"
-
-#: ../gui/Gtk2Gui.c:1366
-msgid "No space available in the target memory card!"
-msgstr "目标记忆卡没有空余位置!"
-
-#: ../gui/Gtk2Gui.c:1508
-#: ../gui/Gtk2Gui.c:1529
-#: ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571
-#: ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055
+#: ../gui/Gtk2Gui.c:1076
+#: ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118
+#: ../gui/Gtk2Gui.c:1317
msgid "No configuration required"
msgstr "不需要配置"
-#: ../gui/Gtk2Gui.c:1508
-#: ../gui/Gtk2Gui.c:1529
-#: ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571
-#: ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055
+#: ../gui/Gtk2Gui.c:1076
+#: ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118
+#: ../gui/Gtk2Gui.c:1317
msgid "This plugin doesn't need to be configured."
msgstr "此插件需要被配置。"
-#: ../gui/Gtk2Gui.c:1608
-msgid "Memory Card Manager"
-msgstr "记忆卡管理器"
-
-#: ../gui/Gtk2Gui.c:2134
+#: ../gui/Gtk2Gui.c:1571
#, c-format
msgid "Could not open BIOS directory: '%s'\n"
msgstr "无法打开 BIOS 目录: \"%s\"\n"
-#: ../gui/Gtk2Gui.c:2164
-#: ../gui/Gtk2Gui.c:2257
-#: ../gui/LnxMain.c:170
+#: ../gui/Gtk2Gui.c:1601
+#: ../gui/Gtk2Gui.c:1694
+#: ../gui/LnxMain.c:172
#, c-format
msgid "Could not open directory: '%s'\n"
msgstr "无法打开目录: \"%s\"\n"
-#: ../gui/Gtk2Gui.c:2318
+#: ../gui/Gtk2Gui.c:1755
msgid "Notice"
msgstr "警告"
-#: ../gui/LnxMain.c:65
+#: ../gui/LnxMain.c:67
#, c-format
msgid "Creating memory card: %s\n"
msgstr "建立记忆卡: %s\n"
-#: ../gui/LnxMain.c:312
+#: ../gui/LnxMain.c:314
msgid ""
" pcsx [options] [file]\n"
"\toptions:\n"
@@ -1275,25 +1247,61 @@ msgstr ""
"\t-h -help\t显示此信息\n"
"\t文件\t\t加载文件\n"
-#: ../gui/LnxMain.c:350
+#: ../gui/LnxMain.c:352
#, c-format
msgid "PCSX cannot be configured without using the GUI -- you should restart without -nogui.\n"
msgstr "PCSX 不能在字符界面下配置 -- 请不使用 -nogui 参数重新启动程序\n"
-#: ../gui/LnxMain.c:405
+#: ../gui/LnxMain.c:407
msgid "Failed loading plugins!"
msgstr "加载插件失败!"
-#: ../gui/LnxMain.c:422
+#: ../gui/LnxMain.c:424
#, c-format
msgid "Could not load CD-ROM!\n"
msgstr "无法加载光盘。\n"
-#: ../gui/LnxMain.c:461
+#: ../gui/LnxMain.c:463
#, c-format
msgid "PSX emulator couldn't be initialized.\n"
msgstr "无法初始化 PSX 模拟器。\n"
+#: ../gui/MemcardDlg.c:53
+msgid "Icon"
+msgstr "图标"
+
+#: ../gui/MemcardDlg.c:71
+msgid "ID"
+msgstr "ID"
+
+#: ../gui/MemcardDlg.c:77
+msgid "Name"
+msgstr "名称"
+
+#: ../gui/MemcardDlg.c:333
+msgid "Format this Memory Card?"
+msgstr "格式化此记忆卡?"
+
+#: ../gui/MemcardDlg.c:335
+msgid "If you format the memory card, the card will be empty, and any existing data overwritten."
+msgstr "如果您选择格式化记忆卡,记忆卡将被清空,并且任何现有数据都将被覆盖。"
+
+#: ../gui/MemcardDlg.c:338
+msgid "Format card"
+msgstr "格式化记忆卡"
+
+#: ../gui/MemcardDlg.c:441
+msgid "No free space on memory card"
+msgstr "记忆卡无空余位置"
+
+#: ../gui/MemcardDlg.c:442
+msgid "There are no free slots available on the target memory card. Please delete a slot first."
+msgstr "目标记忆卡上无空余位置。请先删除一个存档。"
+
+#: ../gui/MemcardDlg.c:597
+msgid "Memory Card Manager"
+msgstr "记忆卡管理器"
+
#: ../gui/Plugin.c:204
#: ../data/pcsx.glade2:1336
#, c-format
@@ -1989,35 +1997,35 @@ msgid "Configure Memory Cards"
msgstr "配置记忆卡"
#: ../data/pcsx.glade2:1773
-#: ../data/pcsx.glade2:2171
+#: ../data/pcsx.glade2:2122
+msgid "New"
+msgstr "新建"
+
+#: ../data/pcsx.glade2:1823
+#: ../data/pcsx.glade2:2172
msgid "Format"
msgstr "格式化"
-#: ../data/pcsx.glade2:1823
-#: ../data/pcsx.glade2:2221
-msgid "Reload"
-msgstr "重新加载"
+#: ../data/pcsx.glade2:1873
+#: ../data/pcsx.glade2:2222
+msgid "Un/Delete"
+msgstr "删除/恢复"
-#: ../data/pcsx.glade2:1867
+#: ../data/pcsx.glade2:1917
msgid "<b>Memory Card 1</b>"
msgstr "<b>记忆卡 1</b>"
-#: ../data/pcsx.glade2:1927
-#: ../data/pcsx.glade2:1977
-#: ../data/pcsx.glade2:2872
+#: ../data/pcsx.glade2:1978
+#: ../data/pcsx.glade2:2028
+#: ../data/pcsx.glade2:2873
msgid "Copy"
msgstr "复制"
-#: ../data/pcsx.glade2:2027
-#: ../data/pcsx.glade2:2077
-msgid "Un/Delete"
-msgstr "删除/恢复"
-
-#: ../data/pcsx.glade2:2265
+#: ../data/pcsx.glade2:2266
msgid "<b>Memory Card 2</b>"
msgstr "<b>记忆卡 2</b>"
-#: ../data/pcsx.glade2:2343
+#: ../data/pcsx.glade2:2344
msgid ""
"(C) 1999-2003 PCSX Team\n"
"(C) 2005-2006 Ryan Schultz\n"
@@ -2029,11 +2037,11 @@ msgstr ""
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
-#: ../data/pcsx.glade2:2347
+#: ../data/pcsx.glade2:2348
msgid "A PlayStation emulator."
msgstr "一个 PlayStation 模拟器。"
-#: ../data/pcsx.glade2:2350
+#: ../data/pcsx.glade2:2351
msgid ""
"This program is free software; you can redistribute it\n"
"and/or modify it under the terms of the GNU General\n"
@@ -2067,15 +2075,15 @@ msgstr ""
"Public License along with this program; if not, write to\n"
"the Free Software Foundation, Inc."
-#: ../data/pcsx.glade2:2379
+#: ../data/pcsx.glade2:2380
msgid "translator-credits"
msgstr "Wei Mingzhi <whistler@openoffice.org>"
-#: ../data/pcsx.glade2:2441
+#: ../data/pcsx.glade2:2442
msgid "<b>Cheat Codes</b>"
msgstr "<b>作弊码</b>"
-#: ../data/pcsx.glade2:2607
+#: ../data/pcsx.glade2:2608
msgid ""
"8-bit\n"
"16-bit\n"
@@ -2085,7 +2093,7 @@ msgstr ""
"16 位\n"
"32 位"
-#: ../data/pcsx.glade2:2670
+#: ../data/pcsx.glade2:2671
msgid ""
"Equal Value\n"
"Not Equal Value\n"
@@ -2107,7 +2115,7 @@ msgstr ""
"改变\n"
"无改变"
-#: ../data/pcsx.glade2:2702
+#: ../data/pcsx.glade2:2703
msgid ""
"Decimal\n"
"Hexadecimal"
@@ -2115,19 +2123,19 @@ msgstr ""
"十进制\n"
"十六进制"
-#: ../data/pcsx.glade2:2905
+#: ../data/pcsx.glade2:2906
msgid "label_resultsfound"
msgstr "label_resultsfound"
-#: ../data/pcsx.glade2:2940
+#: ../data/pcsx.glade2:2941
msgid "Search"
msgstr "查找"
-#: ../data/pcsx.glade2:2976
+#: ../data/pcsx.glade2:2977
msgid "Restart"
msgstr "复位"
-#: ../data/pcsx.glade2:3005
+#: ../data/pcsx.glade2:3006
msgid "<b>Cheat Search</b>"
msgstr "<b>作弊码查找</b>"
@@ -2245,7 +2253,7 @@ msgstr "单声道"
msgid "Play only one channel for a performance boost."
msgstr "仅播放一个声道以提升性能。"
-#: ../plugins/dfcdrom/cdr-linux.c:48
+#: ../plugins/dfcdrom/cdr-linux.c:60
msgid "CD-ROM Drive Reader"
msgstr "CD-ROM 设备读取插件"
@@ -2253,7 +2261,7 @@ msgstr "CD-ROM 设备读取插件"
msgid "CDR NULL Plugin"
msgstr "CDR 空插件"
-#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:166
+#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:175
#: ../plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2:8
msgid "CDR configuration"
msgstr "CDR 配置"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 79ea8246..1e7675c7 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pcsxr 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-26 23:05+0800\n"
-"PO-Revision-Date: 2009-11-26 23:11+0700\n"
+"POT-Creation-Date: 2009-11-28 18:23+0800\n"
+"PO-Revision-Date: 2009-11-28 18:26+0700\n"
"Last-Translator: Wei Mingzhi <whistler@openoffice.org>\n"
"Language-Team: Traditional Chinese <whistler@openoffice.org>\n"
"MIME-Version: 1.0\n"
@@ -88,20 +88,20 @@ msgid "No"
msgstr "否"
#: ../win32/gui/CheatDlg.c:67
-#: ../gui/Cheat.c:193
+#: ../gui/Cheat.c:195
msgid "Edit Cheat"
msgstr "編輯金手指"
#: ../win32/gui/CheatDlg.c:68
#: ../win32/gui/CheatDlg.c:118
-#: ../gui/Cheat.c:633
+#: ../gui/Cheat.c:637
msgid "Description:"
msgstr "描述:"
#: ../win32/gui/CheatDlg.c:69
#: ../win32/gui/CheatDlg.c:119
-#: ../gui/Cheat.c:125
-#: ../gui/Cheat.c:210
+#: ../gui/Cheat.c:126
+#: ../gui/Cheat.c:212
msgid "Cheat Code:"
msgstr "金手指碼:"
@@ -117,18 +117,18 @@ msgstr "取消"
#: ../win32/gui/CheatDlg.c:92
#: ../win32/gui/CheatDlg.c:133
-#: ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
+#: ../gui/Cheat.c:156
+#: ../gui/Cheat.c:252
msgid "Invalid cheat code!"
msgstr "非法金手指碼!"
#: ../win32/gui/CheatDlg.c:117
-#: ../gui/Cheat.c:109
+#: ../gui/Cheat.c:110
msgid "Add New Cheat"
msgstr "添加新金手指"
#: ../win32/gui/CheatDlg.c:167
-#: ../data/pcsx.glade2:2401
+#: ../data/pcsx.glade2:2402
msgid "Edit Cheat Codes"
msgstr "編輯金手指"
@@ -161,7 +161,7 @@ msgid "&Close"
msgstr "關閉(&C)"
#: ../win32/gui/CheatDlg.c:186
-#: ../gui/Cheat.c:411
+#: ../gui/Cheat.c:414
msgid "Description"
msgstr "描述"
@@ -211,7 +211,7 @@ msgid "No Change"
msgstr "無改變"
#: ../win32/gui/CheatDlg.c:449
-#: ../gui/Cheat.c:583
+#: ../gui/Cheat.c:586
msgid "Enter the values and start your search."
msgstr "輸入數值並開始搜索。"
@@ -220,36 +220,36 @@ msgid "No addresses found."
msgstr "未找到位址。"
#: ../win32/gui/CheatDlg.c:458
-#: ../gui/Cheat.c:541
+#: ../gui/Cheat.c:544
msgid "Too many addresses found."
msgstr "找到過多位址。"
#: ../win32/gui/CheatDlg.c:467
-#: ../gui/Cheat.c:550
+#: ../gui/Cheat.c:553
#, c-format
msgid "%.8X Current: %u (%.2X), Previous: %u (%.2X)"
msgstr "%.8X 當前值: %u (%.2X), 前次值: %u (%.2X)"
#: ../win32/gui/CheatDlg.c:472
-#: ../gui/Cheat.c:555
+#: ../gui/Cheat.c:558
#, c-format
msgid "%.8X Current: %u (%.4X), Previous: %u (%.4X)"
msgstr "%.8X 當前值: %u (%.4X), 前次值: %u (%.4X)"
#: ../win32/gui/CheatDlg.c:477
-#: ../gui/Cheat.c:560
+#: ../gui/Cheat.c:563
#, c-format
msgid "%.8X Current: %u (%.8X), Previous: %u (%.8X)"
msgstr "%.8X 當前值: %u (%.8X), 前次值: %u (%.8X)"
#: ../win32/gui/CheatDlg.c:493
-#: ../gui/Cheat.c:575
+#: ../gui/Cheat.c:578
#, c-format
msgid "Founded Addresses: %d"
msgstr "找到位址: %d"
#: ../win32/gui/CheatDlg.c:505
-#: ../data/pcsx.glade2:2800
+#: ../data/pcsx.glade2:2801
msgid "Freeze"
msgstr "固定"
@@ -261,8 +261,8 @@ msgstr "位址:"
#: ../win32/gui/CheatDlg.c:507
#: ../win32/gui/CheatDlg.c:598
#: ../win32/gui/CheatDlg.c:683
-#: ../gui/Cheat.c:644
-#: ../data/pcsx.glade2:2644
+#: ../gui/Cheat.c:648
+#: ../data/pcsx.glade2:2645
msgid "Value:"
msgstr "值:"
@@ -272,33 +272,33 @@ msgid "Freeze %.8X"
msgstr "固定 %.8X"
#: ../win32/gui/CheatDlg.c:596
-#: ../data/pcsx.glade2:2836
+#: ../data/pcsx.glade2:2837
msgid "Modify"
msgstr "更改"
#: ../win32/gui/CheatDlg.c:679
-#: ../gui/Cheat.c:1126
-#: ../data/pcsx.glade2:2572
+#: ../gui/Cheat.c:1130
+#: ../data/pcsx.glade2:2573
msgid "Cheat Search"
msgstr "搜尋金手指碼"
#: ../win32/gui/CheatDlg.c:681
-#: ../data/pcsx.glade2:2622
+#: ../data/pcsx.glade2:2623
msgid "Search For:"
msgstr "搜尋:"
#: ../win32/gui/CheatDlg.c:682
-#: ../data/pcsx.glade2:2632
+#: ../data/pcsx.glade2:2633
msgid "Data Type:"
msgstr "數值類型:"
#: ../win32/gui/CheatDlg.c:684
-#: ../data/pcsx.glade2:2656
+#: ../data/pcsx.glade2:2657
msgid "Data Base:"
msgstr "數值基:"
#: ../win32/gui/CheatDlg.c:685
-#: ../data/pcsx.glade2:2716
+#: ../data/pcsx.glade2:2717
msgid "To:"
msgstr "至:"
@@ -347,7 +347,7 @@ msgid "Hexadecimal"
msgstr "十六進制"
#: ../win32/gui/ConfigurePlugins.c:206
-#: ../gui/Gtk2Gui.c:2228
+#: ../gui/Gtk2Gui.c:1665
msgid "Internal HLE Bios"
msgstr "內部 HLE-Bios"
@@ -356,9 +356,9 @@ msgid "Configuration not OK!"
msgstr "配置不正確!"
#: ../win32/gui/ConfigurePlugins.c:292
-#: ../gui/Cheat.c:155
-#: ../gui/Cheat.c:250
-#: ../gui/LnxMain.c:405
+#: ../gui/Cheat.c:156
+#: ../gui/Cheat.c:252
+#: ../gui/LnxMain.c:407
msgid "Error"
msgstr "錯誤"
@@ -688,15 +688,15 @@ msgstr "*PCSX*: Error Saving State %s"
#: ../win32/gui/WndMain.c:426
#: ../win32/gui/WndMain.c:475
-#: ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../gui/Gtk2Gui.c:573
+#: ../gui/Gtk2Gui.c:698
msgid "The CD does not appear to be a valid Playstation CD"
msgstr "此光碟不是一張合法的 PlayStation 光碟。"
#: ../win32/gui/WndMain.c:432
#: ../win32/gui/WndMain.c:481
-#: ../gui/Gtk2Gui.c:583
-#: ../gui/Gtk2Gui.c:708
+#: ../gui/Gtk2Gui.c:581
+#: ../gui/Gtk2Gui.c:706
msgid "Could not load CD-ROM!"
msgstr "無法加載光碟!"
@@ -705,12 +705,12 @@ msgid "Running BIOS is not supported with Internal HLE Bios."
msgstr "內部 HLE BIOS 不支援直接執行。"
#: ../win32/gui/WndMain.c:661
-#: ../gui/Gtk2Gui.c:1068
+#: ../gui/MemcardDlg.c:59
msgid "Title"
msgstr "標題"
#: ../win32/gui/WndMain.c:667
-#: ../gui/Gtk2Gui.c:1074
+#: ../gui/MemcardDlg.c:65
msgid "Status"
msgstr "狀態"
@@ -731,19 +731,23 @@ msgid "terminiting link block"
msgstr "terminiting link block"
#: ../win32/gui/WndMain.c:864
-#: ../gui/Gtk2Gui.c:1148
+#: ../gui/MemcardDlg.c:173
+#: ../gui/MemcardDlg.c:243
msgid "Deleted"
msgstr "已刪除"
#: ../win32/gui/WndMain.c:865
#: ../win32/gui/WndMain.c:868
-#: ../gui/Gtk2Gui.c:1150
-#: ../gui/Gtk2Gui.c:1154
+#: ../gui/MemcardDlg.c:175
+#: ../gui/MemcardDlg.c:179
+#: ../gui/MemcardDlg.c:245
+#: ../gui/MemcardDlg.c:249
msgid "Free"
msgstr "空閑"
#: ../win32/gui/WndMain.c:867
-#: ../gui/Gtk2Gui.c:1152
+#: ../gui/MemcardDlg.c:177
+#: ../gui/MemcardDlg.c:247
msgid "Used"
msgstr "已使用"
@@ -898,9 +902,9 @@ msgstr "DataDeck 記憶卡 (*.ddl)"
#: ../win32/gui/WndMain.c:1350
#: ../win32/gui/WndMain.c:1431
-#: ../gui/Cheat.c:319
-#: ../gui/Gtk2Gui.c:512
-#: ../gui/Gtk2Gui.c:651
+#: ../gui/Cheat.c:322
+#: ../gui/Gtk2Gui.c:510
+#: ../gui/Gtk2Gui.c:649
msgid "All Files"
msgstr "所有檔案"
@@ -1058,200 +1062,168 @@ msgstr "Pcsx 消息"
msgid "Error Loading Symbol"
msgstr "無法加載符號"
-#: ../gui/Cheat.c:117
-#: ../gui/Cheat.c:201
+#: ../gui/Cheat.c:118
+#: ../gui/Cheat.c:203
msgid "Cheat Description:"
msgstr "金手指描述:"
-#: ../gui/Cheat.c:304
+#: ../gui/Cheat.c:307
msgid "Open Cheat File"
msgstr "打開金手指檔"
-#: ../gui/Cheat.c:314
-#: ../gui/Cheat.c:354
+#: ../gui/Cheat.c:317
+#: ../gui/Cheat.c:357
msgid "PCSX Cheat Code Files (*.cht)"
msgstr "PCSX 金手指檔 (*.cht)"
-#: ../gui/Cheat.c:344
+#: ../gui/Cheat.c:347
msgid "Save Cheat File"
msgstr "儲存金手指檔"
-#: ../gui/Cheat.c:359
+#: ../gui/Cheat.c:362
msgid "All Files (*.*)"
msgstr "所有檔案 (*.*)"
-#: ../gui/Cheat.c:392
-#: ../gui/Cheat.c:1121
-#: ../gui/Gtk2Gui.c:400
-#: ../gui/Gtk2Gui.c:1020
+#: ../gui/Cheat.c:395
+#: ../gui/Cheat.c:1125
+#: ../gui/Gtk2Gui.c:398
+#: ../gui/Gtk2Gui.c:1018
msgid "Error: Glade interface could not be loaded!"
msgstr "錯誤:無法加載 Glade 界面!"
-#: ../gui/Cheat.c:397
+#: ../gui/Cheat.c:400
msgid "Cheat Codes"
msgstr "金手指碼"
-#: ../gui/Cheat.c:403
+#: ../gui/Cheat.c:406
msgid "Enable"
msgstr "開啟"
-#: ../gui/Cheat.c:627
+#: ../gui/Cheat.c:631
msgid "Freeze value"
msgstr "固定數值"
-#: ../gui/Cheat.c:726
+#: ../gui/Cheat.c:730
msgid "Modify value"
msgstr "更改數值"
-#: ../gui/Cheat.c:734
+#: ../gui/Cheat.c:738
msgid "New value:"
msgstr "新值:"
-#: ../gui/Cheat.c:1131
+#: ../gui/Cheat.c:1135
msgid "Search Results"
msgstr "搜尋結果"
-#: ../gui/Gtk2Gui.c:408
+#: ../gui/Gtk2Gui.c:406
#: ../data/pcsx.glade2:605
msgid "Configure PCSX"
msgstr "配置 PCSX"
-#: ../gui/Gtk2Gui.c:494
+#: ../gui/Gtk2Gui.c:492
msgid "Select PSX EXE File"
msgstr "選擇 PS EXE 檔案"
-#: ../gui/Gtk2Gui.c:508
+#: ../gui/Gtk2Gui.c:506
msgid "PlayStation Executable Files"
msgstr "PlayStation 執行檔"
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "Not a valid PSX file"
msgstr "不是一個合法的 PSX 檔"
-#: ../gui/Gtk2Gui.c:544
+#: ../gui/Gtk2Gui.c:542
msgid "The file does not appear to be a valid Playstation executable"
msgstr "此文件不是一個合法的 PlayStation 執行檔"
-#: ../gui/Gtk2Gui.c:575
-#: ../gui/Gtk2Gui.c:700
+#: ../gui/Gtk2Gui.c:573
+#: ../gui/Gtk2Gui.c:698
msgid "CD ROM failed"
msgstr "CD-ROM 失敗"
-#: ../gui/Gtk2Gui.c:583
+#: ../gui/Gtk2Gui.c:581
msgid "The CD ROM could not be loaded"
msgstr "無法加載 CD-ROM"
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Could not run BIOS"
msgstr "無法執行 BIOS"
-#: ../gui/Gtk2Gui.c:597
+#: ../gui/Gtk2Gui.c:595
msgid "Running BIOS is not supported with Internal HLE BIOS."
msgstr "內部 HLE BIOS 不支援直接執行。"
-#: ../gui/Gtk2Gui.c:626
+#: ../gui/Gtk2Gui.c:624
msgid "Open PSX Disc Image File"
msgstr "打開 PSX 光碟映像檔"
-#: ../gui/Gtk2Gui.c:646
+#: ../gui/Gtk2Gui.c:644
msgid "PSX Image Files (*.bin, *.img, *.mdf, *.iso)"
msgstr "PSX 鏡像檔 (*.bin, *.img, *.mdf, *.iso)"
-#: ../gui/Gtk2Gui.c:880
+#: ../gui/Gtk2Gui.c:878
#, c-format
msgid "Loaded state %s."
msgstr "已讀取記錄 %s。"
-#: ../gui/Gtk2Gui.c:884
+#: ../gui/Gtk2Gui.c:882
#, c-format
msgid "Error loading state %s!"
msgstr "讀取記錄 %s 時出錯。"
-#: ../gui/Gtk2Gui.c:895
+#: ../gui/Gtk2Gui.c:893
#, c-format
msgid "Saved state %s."
msgstr "已存儲記錄 %s"
-#: ../gui/Gtk2Gui.c:897
+#: ../gui/Gtk2Gui.c:895
#, c-format
msgid "Error saving state %s!"
msgstr "存儲記錄 %s 時出錯。"
-#: ../gui/Gtk2Gui.c:931
-#: ../gui/Gtk2Gui.c:958
+#: ../gui/Gtk2Gui.c:929
+#: ../gui/Gtk2Gui.c:956
msgid "Select State File"
msgstr "選擇記錄檔案"
-#: ../gui/Gtk2Gui.c:1062
-msgid "Icon"
-msgstr "圖符"
-
-#: ../gui/Gtk2Gui.c:1080
-msgid "ID"
-msgstr "ID"
-
-#: ../gui/Gtk2Gui.c:1086
-msgid "Name"
-msgstr "名稱"
-
-#: ../gui/Gtk2Gui.c:1246
-msgid "Format this Memory Card?"
-msgstr "格式化此記憶卡?"
-
-#: ../gui/Gtk2Gui.c:1248
-msgid "If you format the memory card, the card will be empty, and any existing data overwritten."
-msgstr "如果您選擇格式化記憶卡,記憶卡將被清空,並且任何現有資料都將被覆蓋。"
-
-#: ../gui/Gtk2Gui.c:1251
-msgid "Format card"
-msgstr "格式化記憶卡"
-
-#: ../gui/Gtk2Gui.c:1366
-msgid "No space available in the target memory card!"
-msgstr "目標記憶卡沒有空餘位置!"
-
-#: ../gui/Gtk2Gui.c:1508
-#: ../gui/Gtk2Gui.c:1529
-#: ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571
-#: ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055
+#: ../gui/Gtk2Gui.c:1076
+#: ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118
+#: ../gui/Gtk2Gui.c:1317
msgid "No configuration required"
msgstr "不需要配置"
-#: ../gui/Gtk2Gui.c:1508
-#: ../gui/Gtk2Gui.c:1529
-#: ../gui/Gtk2Gui.c:1550
-#: ../gui/Gtk2Gui.c:1571
-#: ../gui/Gtk2Gui.c:1880
+#: ../gui/Gtk2Gui.c:1055
+#: ../gui/Gtk2Gui.c:1076
+#: ../gui/Gtk2Gui.c:1097
+#: ../gui/Gtk2Gui.c:1118
+#: ../gui/Gtk2Gui.c:1317
msgid "This plugin doesn't need to be configured."
msgstr "此外掛不需要被配置。"
-#: ../gui/Gtk2Gui.c:1608
-msgid "Memory Card Manager"
-msgstr "記憶卡管理器"
-
-#: ../gui/Gtk2Gui.c:2134
+#: ../gui/Gtk2Gui.c:1571
#, c-format
msgid "Could not open BIOS directory: '%s'\n"
msgstr "無法開啟 BIOS 目錄: \"%s\"\n"
-#: ../gui/Gtk2Gui.c:2164
-#: ../gui/Gtk2Gui.c:2257
-#: ../gui/LnxMain.c:170
+#: ../gui/Gtk2Gui.c:1601
+#: ../gui/Gtk2Gui.c:1694
+#: ../gui/LnxMain.c:172
#, c-format
msgid "Could not open directory: '%s'\n"
msgstr "無法開啟目錄: \"%s\"\n"
-#: ../gui/Gtk2Gui.c:2318
+#: ../gui/Gtk2Gui.c:1755
msgid "Notice"
msgstr "警告"
-#: ../gui/LnxMain.c:65
+#: ../gui/LnxMain.c:67
#, c-format
msgid "Creating memory card: %s\n"
msgstr "創建記憶卡: %s\n"
-#: ../gui/LnxMain.c:312
+#: ../gui/LnxMain.c:314
msgid ""
" pcsx [options] [file]\n"
"\toptions:\n"
@@ -1275,25 +1247,61 @@ msgstr ""
"\t-h -help\t顯示此說明\n"
"\t檔案\t\t加載檔案\n"
-#: ../gui/LnxMain.c:350
+#: ../gui/LnxMain.c:352
#, c-format
msgid "PCSX cannot be configured without using the GUI -- you should restart without -nogui.\n"
msgstr "PCSX 不能在字符界面下配置 -- 請不使用 -nogui 參數重新啟動程式\n"
-#: ../gui/LnxMain.c:405
+#: ../gui/LnxMain.c:407
msgid "Failed loading plugins!"
msgstr "外掛加載失敗"
-#: ../gui/LnxMain.c:422
+#: ../gui/LnxMain.c:424
#, c-format
msgid "Could not load CD-ROM!\n"
msgstr "無法加載光碟。\n"
-#: ../gui/LnxMain.c:461
+#: ../gui/LnxMain.c:463
#, c-format
msgid "PSX emulator couldn't be initialized.\n"
msgstr "PSX 模擬器無法初期化。\n"
+#: ../gui/MemcardDlg.c:53
+msgid "Icon"
+msgstr "圖符"
+
+#: ../gui/MemcardDlg.c:71
+msgid "ID"
+msgstr "ID"
+
+#: ../gui/MemcardDlg.c:77
+msgid "Name"
+msgstr "名稱"
+
+#: ../gui/MemcardDlg.c:333
+msgid "Format this Memory Card?"
+msgstr "格式化此記憶卡?"
+
+#: ../gui/MemcardDlg.c:335
+msgid "If you format the memory card, the card will be empty, and any existing data overwritten."
+msgstr "如果您選擇格式化記憶卡,記憶卡將被清空,並且任何現有資料都將被覆蓋。"
+
+#: ../gui/MemcardDlg.c:338
+msgid "Format card"
+msgstr "格式化記憶卡"
+
+#: ../gui/MemcardDlg.c:441
+msgid "No free space on memory card"
+msgstr "記憶卡無空餘位置"
+
+#: ../gui/MemcardDlg.c:442
+msgid "There are no free slots available on the target memory card. Please delete a slot first."
+msgstr "目的記憶卡無空餘位置。請先刪除一個檔案。"
+
+#: ../gui/MemcardDlg.c:597
+msgid "Memory Card Manager"
+msgstr "記憶卡管理器"
+
#: ../gui/Plugin.c:204
#: ../data/pcsx.glade2:1336
#, c-format
@@ -1989,35 +1997,35 @@ msgid "Configure Memory Cards"
msgstr "配置記憶卡"
#: ../data/pcsx.glade2:1773
-#: ../data/pcsx.glade2:2171
+#: ../data/pcsx.glade2:2122
+msgid "New"
+msgstr "新增"
+
+#: ../data/pcsx.glade2:1823
+#: ../data/pcsx.glade2:2172
msgid "Format"
msgstr "格式化"
-#: ../data/pcsx.glade2:1823
-#: ../data/pcsx.glade2:2221
-msgid "Reload"
-msgstr "重新加載"
+#: ../data/pcsx.glade2:1873
+#: ../data/pcsx.glade2:2222
+msgid "Un/Delete"
+msgstr "刪除/恢複"
-#: ../data/pcsx.glade2:1867
+#: ../data/pcsx.glade2:1917
msgid "<b>Memory Card 1</b>"
msgstr "<b>記憶卡 1</b>"
-#: ../data/pcsx.glade2:1927
-#: ../data/pcsx.glade2:1977
-#: ../data/pcsx.glade2:2872
+#: ../data/pcsx.glade2:1978
+#: ../data/pcsx.glade2:2028
+#: ../data/pcsx.glade2:2873
msgid "Copy"
msgstr "複制"
-#: ../data/pcsx.glade2:2027
-#: ../data/pcsx.glade2:2077
-msgid "Un/Delete"
-msgstr "刪除/恢複"
-
-#: ../data/pcsx.glade2:2265
+#: ../data/pcsx.glade2:2266
msgid "<b>Memory Card 2</b>"
msgstr "<b>記憶卡 2</b>"
-#: ../data/pcsx.glade2:2343
+#: ../data/pcsx.glade2:2344
msgid ""
"(C) 1999-2003 PCSX Team\n"
"(C) 2005-2006 Ryan Schultz\n"
@@ -2029,11 +2037,11 @@ msgstr ""
"(C) 2005-2006 Andrew Burton\n"
"(C) 2008-2009 Wei Mingzhi"
-#: ../data/pcsx.glade2:2347
+#: ../data/pcsx.glade2:2348
msgid "A PlayStation emulator."
msgstr "一個 PlayStation 模擬器。"
-#: ../data/pcsx.glade2:2350
+#: ../data/pcsx.glade2:2351
msgid ""
"This program is free software; you can redistribute it\n"
"and/or modify it under the terms of the GNU General\n"
@@ -2067,15 +2075,15 @@ msgstr ""
"Public License along with this program; if not, write to\n"
"the Free Software Foundation, Inc."
-#: ../data/pcsx.glade2:2379
+#: ../data/pcsx.glade2:2380
msgid "translator-credits"
msgstr "Wei Mingzhi <whistler@openoffice.org>"
-#: ../data/pcsx.glade2:2441
+#: ../data/pcsx.glade2:2442
msgid "<b>Cheat Codes</b>"
msgstr "<b>金手指碼</b>"
-#: ../data/pcsx.glade2:2607
+#: ../data/pcsx.glade2:2608
msgid ""
"8-bit\n"
"16-bit\n"
@@ -2085,7 +2093,7 @@ msgstr ""
"16 位元\n"
"32 位元"
-#: ../data/pcsx.glade2:2670
+#: ../data/pcsx.glade2:2671
msgid ""
"Equal Value\n"
"Not Equal Value\n"
@@ -2107,7 +2115,7 @@ msgstr ""
"不同\n"
"無變動"
-#: ../data/pcsx.glade2:2702
+#: ../data/pcsx.glade2:2703
msgid ""
"Decimal\n"
"Hexadecimal"
@@ -2115,19 +2123,19 @@ msgstr ""
"十進制\n"
"十六進制"
-#: ../data/pcsx.glade2:2905
+#: ../data/pcsx.glade2:2906
msgid "label_resultsfound"
msgstr "label_resultsfound"
-#: ../data/pcsx.glade2:2940
+#: ../data/pcsx.glade2:2941
msgid "Search"
msgstr "搜尋"
-#: ../data/pcsx.glade2:2976
+#: ../data/pcsx.glade2:2977
msgid "Restart"
msgstr "重新開始"
-#: ../data/pcsx.glade2:3005
+#: ../data/pcsx.glade2:3006
msgid "<b>Cheat Search</b>"
msgstr "<b>金手指碼搜尋</b>"
@@ -2245,7 +2253,7 @@ msgstr "單聲道聲音"
msgid "Play only one channel for a performance boost."
msgstr "僅播放一個聲道以提高性能。"
-#: ../plugins/dfcdrom/cdr-linux.c:48
+#: ../plugins/dfcdrom/cdr-linux.c:60
msgid "CD-ROM Drive Reader"
msgstr "CD-ROM 裝置讀取外掛"
@@ -2253,7 +2261,7 @@ msgstr "CD-ROM 裝置讀取外掛"
msgid "CDR NULL Plugin"
msgstr "CDR NULL 外掛"
-#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:166
+#: ../plugins/dfcdrom/cdrcfg-0.1df/main.c:175
#: ../plugins/dfcdrom/cdrcfg-0.1df/dfcdrom.glade2:8
msgid "CDR configuration"
msgstr "CDR 設定"