aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfrontend/320240/caanoo.gpe14
-rw-r--r--frontend/main.c3
2 files changed, 16 insertions, 1 deletions
diff --git a/frontend/320240/caanoo.gpe b/frontend/320240/caanoo.gpe
index 95a43d5..9d6154a 100755
--- a/frontend/320240/caanoo.gpe
+++ b/frontend/320240/caanoo.gpe
@@ -2,10 +2,22 @@
# Wiz's timings are already good, apply this for Caanoo
if [ -e /dev/accel ]; then
-./pollux_set "ram_timings=3,9,4,1,1,1,1"
+ ./pollux_set "ram_timings=3,9,4,1,1,1,1"
+fi
+
+# the sync mount causes problems when writing saves,
+# probably due to many write calls, so have to get rid of it
+if grep mmcblk /proc/mounts | grep -q '\<sync\>'; then
+ oldmount=`grep mmcblk /proc/mounts | grep '\<sync\>' | awk '{print $4}'`
+ mount /dev/mmcblk0p1 /mnt/sd/ -o remount,dirsync,noatime
fi
./pcsx "$@"
+sync
+
+if [ -n "$oldmount" ]; then
+ mount /dev/mmcblk0p1 /mnt/sd/ -o remount,$oldmount
+fi
cd /usr/gp2x
exec ./gp2xmenu
diff --git a/frontend/main.c b/frontend/main.c
index 0dd488e..a305312 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -531,6 +531,9 @@ int emu_save_state(int slot)
return ret;
ret = SaveState(fname);
+#ifndef __ARM_ARCH_7A__ /* XXX */
+ sync();
+#endif
printf("* %s \"%s\" [%d]\n", ret == 0 ? "saved" : "failed to save", fname, slot);
return ret;
}