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: move sh2 peripheral emu code to it's own file
[picodrive.git]
/
pico
/
state.c
diff --git
a/pico/state.c
b/pico/state.c
index
11eee6f
..
3969e18
100644
(file)
--- a/
pico/state.c
+++ b/
pico/state.c
@@
-11,15
+11,11
@@
\r
#include "../cpu/sh2/sh2.h"
\r
#include "sound/ym2612.h"
\r
\r
#include "../cpu/sh2/sh2.h"
\r
#include "sound/ym2612.h"
\r
+#include "state.h"
\r
\r
// sn76496
\r
extern int *sn76496_regs;
\r
\r
\r
// sn76496
\r
extern int *sn76496_regs;
\r
\r
-typedef size_t (arearw)(void *p, size_t _size, size_t _n, void *file);
\r
-typedef size_t (areaeof)(void *file);
\r
-typedef int (areaseek)(void *file, long offset, int whence);
\r
-typedef int (areaclose)(void *file);
\r
-
\r
static arearw *areaRead;
\r
static arearw *areaWrite;
\r
static areaeof *areaEof;
\r
static arearw *areaRead;
\r
static arearw *areaWrite;
\r
static areaeof *areaEof;
\r
@@
-594,15
+590,10
@@
readend:
return 0;
\r
}
\r
\r
return 0;
\r
}
\r
\r
-
int PicoState(const char *fnam
e, int is_save)
\r
+
static int pico_state_internal(void *afil
e, int is_save)
\r
{
\r
{
\r
- void *afile = NULL;
\r
int ret;
\r
\r
int ret;
\r
\r
- afile = open_save_file(fname, is_save);
\r
- if (afile == NULL)
\r
- return -1;
\r
-
\r
if (is_save)
\r
ret = state_save(afile);
\r
else {
\r
if (is_save)
\r
ret = state_save(afile);
\r
else {
\r
@@
-617,10
+608,35
@@
int PicoState(const char *fname, int is_save)
Pico.m.dirtyPal = 1;
\r
}
\r
\r
Pico.m.dirtyPal = 1;
\r
}
\r
\r
+ return ret;
\r
+}
\r
+
\r
+int PicoState(const char *fname, int is_save)
\r
+{
\r
+ void *afile = NULL;
\r
+ int ret;
\r
+
\r
+ afile = open_save_file(fname, is_save);
\r
+ if (afile == NULL)
\r
+ return -1;
\r
+
\r
+ ret = pico_state_internal(afile, is_save);
\r
areaClose(afile);
\r
return ret;
\r
}
\r
\r
areaClose(afile);
\r
return ret;
\r
}
\r
\r
+int PicoStateFP(void *afile, int is_save,
\r
+ arearw *read, arearw *write, areaeof *eof, areaseek *seek)
\r
+{
\r
+ areaRead = read;
\r
+ areaWrite = write;
\r
+ areaEof = eof;
\r
+ areaSeek = seek;
\r
+ areaClose = NULL;
\r
+
\r
+ return pico_state_internal(afile, is_save);
\r
+}
\r
+
\r
int PicoStateLoadGfx(const char *fname)
\r
{
\r
void *afile;
\r
int PicoStateLoadGfx(const char *fname)
\r
{
\r
void *afile;
\r