[uae] Re: quicksave/load hack

  • From: misiu <tjosko@xxxxxxxxx>
  • To: uae@xxxxxxxxxxxxx
  • Date: Fri, 9 Mar 2007 02:42:29 -0800 (PST)

hmm.. looks like patch from attachment was scrubbed. here it is again:

diff -rNU 2 e-uae-0.8.29-WIP3/src/gui-gtk/gtkui.c
e-uae-0.8.29-WIP3-KotCzarny2/src/gui-gtk/gtkui.c
--- e-uae-0.8.29-WIP3/src/gui-gtk/gtkui.c       2006-07-31 05:53:50.000000000
+0200
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/gui-gtk/gtkui.c    2007-03-09
11:35:16.000000000 +0100
@@ -2123,5 +2123,5 @@
                savestate_state = read_comm_pipe_int_blocking (&from_gui_pipe);
                uae_sem_wait (&gui_sem);
-//             savestate_filename = gui_snapname;
+               savestate_filename = gui_snapname;
                uae_sem_post (&gui_sem);
                break;
diff -rNU 2 e-uae-0.8.29-WIP3/src/include/keyboard.h
e-uae-0.8.29-WIP3-KotCzarny2/src/include/keyboard.h
--- e-uae-0.8.29-WIP3/src/include/keyboard.h    2005-09-12
08:00:35.000000000 +0200
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/include/keyboard.h 2007-03-09
11:35:16.000000000 +0100
@@ -137,5 +137,5 @@
     AKS_VOLDOWN, AKS_VOLUP, AKS_VOLMUTE, AKS_QUIT,
     AKS_HARDRESET, AKS_SOFTRESET,
-    AKS_STATESAVEQUICK, AKS_STATERESTOREQUICK,
+    AKS_STATESAVEQUICK, AKS_STATECYCLESLOT, AKS_STATERESTOREQUICK,
     AKS_STATESAVEQUICK1, AKS_STATERESTOREQUICK1,
     AKS_STATESAVEQUICK2, AKS_STATERESTOREQUICK2,
diff -rNU 2 e-uae-0.8.29-WIP3/src/include/savestate.h
e-uae-0.8.29-WIP3-KotCzarny2/src/include/savestate.h
--- e-uae-0.8.29-WIP3/src/include/savestate.h   2006-03-07
15:48:57.000000000 +0100
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/include/savestate.h        2007-03-09
11:35:16.000000000 +0100
@@ -115,7 +115,10 @@
 
 extern int savestate_state;
+extern int savestate_current_slot;
 extern char savestate_fname[MAX_DPATH];
 extern struct zfile *savestate_file;
 
+extern void savestate_cycle_slot (void);
+extern int savestate_generate_fname (int slot);
 extern void savestate_quick (int slot, int save);
 
diff -rNU 2 e-uae-0.8.29-WIP3/src/inputdevice.c
e-uae-0.8.29-WIP3-KotCzarny2/src/inputdevice.c
--- e-uae-0.8.29-WIP3/src/inputdevice.c 2006-07-26 22:14:45.000000000
+0200
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/inputdevice.c      2007-03-09
11:35:16.000000000 +0100
@@ -1132,4 +1132,12 @@
 #ifdef SAVESTATE
        case AKS_STATESAVEQUICK:
+       savestate_quick (savestate_current_slot, 1);
+       break;
+       case AKS_STATERESTOREQUICK:
+       savestate_quick (savestate_current_slot, 0);
+       break;
+       case AKS_STATECYCLESLOT:
+       savestate_cycle_slot ();
+       break;
        case AKS_STATESAVEQUICK1:
        case AKS_STATESAVEQUICK2:
@@ -1143,5 +1151,4 @@
        savestate_quick ((code - AKS_STATESAVEQUICK) / 2, 1);
        break;
-       case AKS_STATERESTOREQUICK:
        case AKS_STATERESTOREQUICK1:
        case AKS_STATERESTOREQUICK2:
diff -rNU 2 e-uae-0.8.29-WIP3/src/inputevents.def
e-uae-0.8.29-WIP3-KotCzarny2/src/inputevents.def
--- e-uae-0.8.29-WIP3/src/inputevents.def       2006-03-10 07:53:38.000000000
+0100
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/inputevents.def    2007-03-09
11:35:16.000000000 +0100
@@ -273,5 +273,7 @@
 DEFEVENT(SPC_HARDRESET,"Hard reset emulation",AM_K,0,0,AKS_HARDRESET)
 DEFEVENT(SPC_ENTERDEBUGGER,"Activate the built-in
debugger",AM_K,0,0,AKS_ENTERDEBUGGER)
-DEFEVENT(SPC_STATESAVE, "Quick save
state",AM_K,0,0,AKS_STATESAVEQUICK)
+DEFEVENT(SPC_STATESAVE, "Quick save state (using current
slot)",AM_K,0,0,AKS_STATESAVEQUICK)
+DEFEVENT(SPC_STATECYCLESLOT, "Quick save state current slot cycle
(1-5)",AM_K,0,0,AKS_STATECYCLESLOT)
+DEFEVENT(SPC_STATERESTORE, "Quick restore state (using current
slot)",AM_K,0,0,AKS_STATERESTOREQUICK)
 DEFEVENT(SPC_STATESAVE1,"Quick save state (slot
1)",AM_K,0,0,AKS_STATESAVEQUICK1)
 DEFEVENT(SPC_STATESAVE2,"Quick save state (slot
2)",AM_K,0,0,AKS_STATESAVEQUICK2)
@@ -283,5 +285,4 @@
 DEFEVENT(SPC_STATESAVE8,"Quick save state (slot
8)",AM_K,0,0,AKS_STATESAVEQUICK8)
 DEFEVENT(SPC_STATESAVE9,"Quick save state (slot
9)",AM_K,0,0,AKS_STATESAVEQUICK9)
-DEFEVENT(SPC_STATERESTORE, "Quick restore
state",AM_K,0,0,AKS_STATERESTOREQUICK)
 DEFEVENT(SPC_STATERESTORE1,"Quick restore state (slot
1)",AM_K,0,0,AKS_STATERESTOREQUICK1)
 DEFEVENT(SPC_STATERESTORE2,"Quick restore state (slot
2)",AM_K,0,0,AKS_STATERESTOREQUICK2)
diff -rNU 2 e-uae-0.8.29-WIP3/src/keymap/hotkeys_common.h
e-uae-0.8.29-WIP3-KotCzarny2/src/keymap/hotkeys_common.h
--- e-uae-0.8.29-WIP3/src/keymap/hotkeys_common.h       2006-03-10
07:53:39.000000000 +0100
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/keymap/hotkeys_common.h    2007-03-09
11:35:16.000000000 +0100
@@ -50,5 +50,8 @@
     {DEFAULT_HOTKEYSEQ3 (RAWKEY_LEFT_SHIFT, RAWKEY_F5,
INPUTEVENT_SPC_STATESAVEDIALOG)}, \
 \
-    {DEFAULT_HOTKEYSEQ2 (RAWKEY_RIGHT_SHIFT,          
INPUTEVENT_SPC_STATERESTORE)}, \
+    {DEFAULT_HOTKEYSEQ2 (RAWKEY_F9,                   
INPUTEVENT_SPC_STATESAVE)}, \
+    {DEFAULT_HOTKEYSEQ2 (RAWKEY_F10,                  
INPUTEVENT_SPC_STATECYCLESLOT)}, \
+    {DEFAULT_HOTKEYSEQ2 (RAWKEY_F11,                  
INPUTEVENT_SPC_STATERESTORE)}, \
+\
     {DEFAULT_HOTKEYSEQ2 (RAWKEY_RIGHT_SHIFT,          
INPUTEVENT_SPC_STATERESTORE1)}, \
     {DEFAULT_HOTKEYSEQ2 (RAWKEY_RIGHT_SHIFT,          
INPUTEVENT_SPC_STATERESTORE2)}, \
@@ -61,5 +64,4 @@
     {DEFAULT_HOTKEYSEQ2 (RAWKEY_RIGHT_SHIFT,          
INPUTEVENT_SPC_STATERESTORE9)}, \
 \
-    {DEFAULT_HOTKEYSEQ3 (RAWKEY_NUMPAD_0, RAWKEY_NUMPAD_0,
INPUTEVENT_SPC_STATESAVE)}, \
     {DEFAULT_HOTKEYSEQ3 (RAWKEY_NUMPAD_1, RAWKEY_NUMPAD_1,
INPUTEVENT_SPC_STATESAVE1)}, \
     {DEFAULT_HOTKEYSEQ3 (RAWKEY_NUMPAD_2, RAWKEY_NUMPAD_2,
INPUTEVENT_SPC_STATESAVE2)}, \
diff -rNU 2 e-uae-0.8.29-WIP3/src/savestate.c
e-uae-0.8.29-WIP3-KotCzarny2/src/savestate.c
--- e-uae-0.8.29-WIP3/src/savestate.c   2006-07-26 22:15:14.000000000
+0200
+++ e-uae-0.8.29-WIP3-KotCzarny2/src/savestate.c        2007-03-09
11:35:39.000000000 +0100
@@ -85,4 +85,5 @@
 static int replaybuffersize;
 
+int savestate_current_slot=1;
 char savestate_fname[MAX_DPATH];
 static struct staterecord staterecords[MAX_STATERECORDS];
@@ -685,11 +686,29 @@
 }
 
+// note by ariel/KotCzarny:
+// quick save/load should be QUICK and unobtrusive
+void savestate_cycle_slot (void)
+{
+ savestate_current_slot++; if(savestate_current_slot>5)
savestate_current_slot=1;
+ write_log ("savestate_current_slot: %d\n", savestate_current_slot);
+}
+
+int savestate_generate_fname (int slot)
+{ int len;
+ if(strlen(strchr(currprefs.df[0],*"/"))>0)
+ { sprintf(savestate_fname, "%s_%d.uss",
strrchr(currprefs.df[0],*"/")+1,slot); }
+ len = strlen (savestate_fname);
+ write_log ("sf: %s, len: %d, slot: %d\n", savestate_fname,len,slot);
+ return len;
+}
+
 void savestate_quick (int slot, int save)
 {
-    int i, len = strlen (savestate_fname);
+    int i, len = savestate_generate_fname(slot);
+/*
     i = len - 1;
     while (i >= 0 && savestate_fname[i] != '_')
        i--;
-    if (i < len - 6 || i <= 0) { /* "_?.uss" */
+    if (i < len - 6 || i <= 0) { // "_?.uss"
        i = len - 1;
        while (i >= 0 && savestate_fname[i] != '.')
@@ -703,4 +722,5 @@
     if (slot > 0)
        sprintf (savestate_fname + i, "_%d.uss", slot);
+*/
     if (save) {
        write_log ("saving '%s'\n", savestate_fname);




 
____________________________________________________________________________________
Sucker-punch spam with award-winning protection. 
Try the free Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/features_spam.html

Other related posts: