notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
32x and sms savestates. Core-independent z80 state. SS bugfixing/refactoring.
[picodrive.git]
/
platform
/
common
/
menu.c
diff --git
a/platform/common/menu.c
b/platform/common/menu.c
index
34d5b49
..
5b0474a
100644
(file)
--- a/
platform/common/menu.c
+++ b/
platform/common/menu.c
@@
-19,7
+19,7
@@
#include <version.h>
\r
#include <revision.h>
\r
\r
#include <version.h>
\r
#include <revision.h>
\r
\r
-#include <pico/pico
_int
.h>
\r
+#include <pico/pico.h>
\r
#include <pico/patch.h>
\r
\r
static char static_buff[64];
\r
#include <pico/patch.h>
\r
\r
static char static_buff[64];
\r
@@
-1039,34
+1039,22
@@
static void state_check_slots(void)
\r
static void draw_savestate_bg(int slot)
\r
{
\r
\r
static void draw_savestate_bg(int slot)
\r
{
\r
- struct PicoVideo tmp_pv;
\r
- unsigned short tmp_cram[0x40];
\r
- unsigned short tmp_vsram[0x40];
\r
- void *tmp_vram;
\r
const char *fname;
\r
const char *fname;
\r
+ void *tmp_state;
\r
\r
fname = emu_get_save_fname(1, 0, slot);
\r
\r
fname = emu_get_save_fname(1, 0, slot);
\r
- if (!fname) return;
\r
-
\r
- tmp_vram = malloc(sizeof(Pico.vram));
\r
- if (tmp_vram == NULL) return;
\r
+ if (!fname)
\r
+ return;
\r
\r
\r
- memcpy(tmp_vram, Pico.vram, sizeof(Pico.vram));
\r
- memcpy(tmp_cram, Pico.cram, sizeof(Pico.cram));
\r
- memcpy(tmp_vsram, Pico.vsram, sizeof(Pico.vsram));
\r
- memcpy(&tmp_pv, &Pico.video, sizeof(Pico.video));
\r
+ tmp_state = PicoTmpStateSave();
\r
\r
\r
- PicoStateLoad
VDP
(fname);
\r
+ PicoStateLoad
Gfx
(fname);
\r
\r
/* do a frame and fetch menu bg */
\r
pemu_forced_frame(POPT_EN_SOFTSCALE);
\r
menu_enter(1);
\r
\r
\r
/* do a frame and fetch menu bg */
\r
pemu_forced_frame(POPT_EN_SOFTSCALE);
\r
menu_enter(1);
\r
\r
- memcpy(Pico.vram, tmp_vram, sizeof(Pico.vram));
\r
- memcpy(Pico.cram, tmp_cram, sizeof(Pico.cram));
\r
- memcpy(Pico.vsram, tmp_vsram, sizeof(Pico.vsram));
\r
- memcpy(&Pico.video, &tmp_pv, sizeof(Pico.video));
\r
- free(tmp_vram);
\r
+ PicoTmpStateRestore(tmp_state);
\r
}
\r
\r
static void draw_savestate_menu(int menu_sel, int is_loading)
\r
}
\r
\r
static void draw_savestate_menu(int menu_sel, int is_loading)
\r
@@
-1105,6
+1093,7
@@
static int menu_loop_savestate(int is_loading)
static int menu_sel = 10;
\r
int menu_sel_max = 10;
\r
unsigned long inp = 0;
\r
static int menu_sel = 10;
\r
int menu_sel_max = 10;
\r
unsigned long inp = 0;
\r
+ int ret = 0;
\r
\r
state_check_slots();
\r
\r
\r
state_check_slots();
\r
\r
@@
-1134,15
+1123,18
@@
static int menu_loop_savestate(int is_loading)
state_slot = menu_sel;
\r
if (emu_save_load_game(is_loading, 0)) {
\r
me_update_msg(is_loading ? "Load failed" : "Save failed");
\r
state_slot = menu_sel;
\r
if (emu_save_load_game(is_loading, 0)) {
\r
me_update_msg(is_loading ? "Load failed" : "Save failed");
\r
-
return 0
;
\r
+
break
;
\r
}
\r
}
\r
- return 1;
\r
+ ret = 1;
\r
+ break;
\r
}
\r
}
\r
-
return 0
;
\r
+
break
;
\r
}
\r
if (inp & PBTN_MBACK)
\r
}
\r
if (inp & PBTN_MBACK)
\r
-
return 0
;
\r
+
break
;
\r
}
\r
}
\r
+
\r
+ return ret;
\r
}
\r
\r
// -------------- key config --------------
\r
}
\r
\r
// -------------- key config --------------
\r