summaryrefslogtreecommitdiff
path: root/gui/DebugMemory.c
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-04-11 12:50:42 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-04-11 12:50:42 +0000
commit14c10b6945d0a9a323685e5b36429cbb62c3496b (patch)
tree085f6e75004644dfccad0c07c00aab6dac9d1649 /gui/DebugMemory.c
parent486740838b65ced139f2354c57894187ca142c58 (diff)
downloadpcsxr-14c10b6945d0a9a323685e5b36429cbb62c3496b.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@44723 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'gui/DebugMemory.c')
-rw-r--r--gui/DebugMemory.c61
1 files changed, 29 insertions, 32 deletions
diff --git a/gui/DebugMemory.c b/gui/DebugMemory.c
index e39f4a7b..4dff00d8 100644
--- a/gui/DebugMemory.c
+++ b/gui/DebugMemory.c
@@ -62,7 +62,7 @@ static void UpdateMemViewDlg() {
sprintf(bufaddr, "%.8X", start);
for (i = 0; i < 16; i++) {
- buftext[i] = PSXMs8(start + i);
+ buftext[i] = psxMs8(start + i);
sprintf(bufdata[i], "%.2X", (u8)buftext[i]);
if ((s8)buftext[i] < 32) buftext[i] = '.';
}
@@ -98,6 +98,7 @@ static void MemView_Go() {
static void MemView_Dump() {
GtkWidget *dlg;
GtkWidget *box, *table, *label, *start_edit, *length_edit;
+ char buf[10];
dlg = gtk_dialog_new_with_buttons(_("Memory Dump"), GTK_WINDOW(MemViewDlg),
GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -111,7 +112,9 @@ static void MemView_Dump() {
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, 0, 0, 5, 5);
gtk_widget_show(label);
- start_edit = gtk_entry_new();
+ start_edit = gtk_entry_new_with_max_length(8);
+ sprintf(buf, "%.8X", MemViewAddress);
+ gtk_entry_set_text(GTK_ENTRY(start_edit), buf);
gtk_table_attach(GTK_TABLE(table), start_edit, 1, 2, 0, 1, 0, 0, 5, 5);
gtk_widget_show(start_edit);
@@ -153,7 +156,7 @@ static void MemView_Dump() {
FILE *fp = fopen(file, "wb");
if (fp != NULL) {
- fwrite(PSXM(start), 1, length, fp);
+ fwrite(&psxM[start], 1, length, fp);
fclose(fp);
} else {
SysMessage(_("Error writing to %s!"), file);
@@ -171,7 +174,8 @@ static void MemView_Dump() {
static void MemView_Patch() {
GtkWidget *dlg;
- GtkWidget *box, *table, *label, *addr_edit, *val_edit, *type_combo;
+ GtkWidget *box, *table, *label, *addr_edit, *val_edit;
+ char buf[10];
dlg = gtk_dialog_new_with_buttons(_("Memory Patch"), GTK_WINDOW(MemViewDlg),
GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -179,17 +183,19 @@ static void MemView_Patch() {
box = GTK_WIDGET(GTK_DIALOG(dlg)->vbox);
- table = gtk_table_new(2, 3, FALSE);
+ table = gtk_table_new(2, 2, FALSE);
label = gtk_label_new(_("Address (Hexadecimal):"));
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, 0, 0, 5, 5);
gtk_widget_show(label);
- addr_edit = gtk_entry_new();
+ addr_edit = gtk_entry_new_with_max_length(8);
+ sprintf(buf, "%.8X", MemViewAddress);
+ gtk_entry_set_text(GTK_ENTRY(addr_edit), buf);
gtk_table_attach(GTK_TABLE(table), addr_edit, 1, 2, 0, 1, 0, 0, 5, 5);
gtk_widget_show(addr_edit);
- label = gtk_label_new(_("Value (Hexadecimal):"));
+ label = gtk_label_new(_("Value (Hexa string):"));
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, 0, 0, 5, 5);
gtk_widget_show(label);
@@ -197,18 +203,6 @@ static void MemView_Patch() {
gtk_table_attach(GTK_TABLE(table), val_edit, 1, 2, 1, 2, 0, 0, 5, 5);
gtk_widget_show(val_edit);
- label = gtk_label_new(_("Data Type:"));
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, 0, 0, 5, 5);
- gtk_widget_show(label);
-
- type_combo = gtk_combo_box_new_text();
- gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), _("8-bit"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), _("16-bit"));
- gtk_combo_box_append_text(GTK_COMBO_BOX(type_combo), _("32-bit"));
- gtk_combo_box_set_active(GTK_COMBO_BOX(type_combo), 0);
- gtk_table_attach(GTK_TABLE(table), type_combo, 1, 2, 2, 3, 0, 0, 5, 5);
- gtk_widget_show(type_combo);
-
gtk_box_pack_start(GTK_BOX(box), table, FALSE, FALSE, 5);
gtk_window_set_position(GTK_WINDOW(dlg), GTK_WIN_POS_CENTER);
@@ -216,26 +210,29 @@ static void MemView_Patch() {
if (gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_ACCEPT) {
u32 addr = 0xffffffff, val = 0;
+ const char *p = gtk_entry_get_text(GTK_ENTRY(val_edit));
+ int r = strlen(p);
+
sscanf(gtk_entry_get_text(GTK_ENTRY(addr_edit)), "%x", &addr);
- if (addr != 0xffffffff) {
+
+ if (r > 0 && addr != 0xffffffff) {
addr &= 0x1fffff;
- sscanf(gtk_entry_get_text(GTK_ENTRY(val_edit)), "%x", &val);
+ MemViewAddress = addr;
- switch (gtk_combo_box_get_active(GTK_COMBO_BOX(type_combo))) {
- case 0: // 8-bit
- psxMemWrite8(addr, (u8)val);
- break;
+ while (r > 0 && addr <= 0x1fffff) {
+ sscanf(p, "%2x", &val);
+ p += 2;
+ r -= 2;
- case 1: // 16-bit
- psxMemWrite16(addr, (u16)val);
- break;
+ while (r > 0 && (*p == '\t' || *p == ' ')) {
+ p++;
+ r--;
+ }
- case 2: // 32-bit
- psxMemWrite32(addr, (u32)val);
- break;
+ psxMemWrite8(addr, (u8)val);
+ addr++;
}
- MemViewAddress = addr;
UpdateMemViewDlg();
}
}