Permalink
Browse files
GBA Savedata: Fix save mtime updating when r/o
- Loading branch information...
Showing
with
9 additions
and
6 deletions.
-
+1
−0
CHANGES
-
+8
−6
src/gba/savedata.c
|
|
@@ -31,6 +31,7 @@ Bugfixes: |
|
|
- GB Audio: Clock frame events on DIV
|
|
|
- GBA Timer: Fix timers sometimes being late (fixes mgba.io/i/1012)
|
|
|
- GBA Hardware: Fix RTC overriding light sensor (fixes mgba.io/i/1069)
|
|
|
+ - GBA Savedata: Fix savedata modified time updating when read-only
|
|
|
Misc:
|
|
|
- GBA Timer: Use global cycles for timers
|
|
|
- GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)
|
|
|
|
|
|
@@ -516,12 +516,14 @@ void GBASavedataClean(struct GBASavedata* savedata, uint32_t frameCount) { |
|
|
if (savedata->maskWriteback) {
|
|
|
GBASavedataUnmask(savedata);
|
|
|
}
|
|
|
- size_t size = GBASavedataSize(savedata);
|
|
|
- savedata->dirty = 0;
|
|
|
- if (savedata->data && savedata->vf->sync(savedata->vf, savedata->data, size)) {
|
|
|
- mLOG(GBA_SAVE, INFO, "Savedata synced");
|
|
|
- } else {
|
|
|
- mLOG(GBA_SAVE, INFO, "Savedata failed to sync!");
|
|
|
+ if (savedata->mapMode & MAP_WRITE) {
|
|
|
+ size_t size = GBASavedataSize(savedata);
|
|
|
+ savedata->dirty = 0;
|
|
|
+ if (savedata->data && savedata->vf->sync(savedata->vf, savedata->data, size)) {
|
|
|
+ mLOG(GBA_SAVE, INFO, "Savedata synced");
|
|
|
+ } else {
|
|
|
+ mLOG(GBA_SAVE, INFO, "Savedata failed to sync!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
0 comments on commit
a4e1057