aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/ds/arm9/source
diff options
context:
space:
mode:
authorNeil Millstone2006-08-19 11:11:18 +0000
committerNeil Millstone2006-08-19 11:11:18 +0000
commit5ce67a67e198f566ced39a1cdbf11b41dc850a3b (patch)
tree0774eb0209431f95889e5c59fbf6a659a13c6d03 /backends/platform/ds/arm9/source
parent5516fa3b80cd0d1b14ed933a5320f09d9a80e412 (diff)
downloadscummvm-rg350-5ce67a67e198f566ced39a1cdbf11b41dc850a3b.tar.gz
scummvm-rg350-5ce67a67e198f566ced39a1cdbf11b41dc850a3b.tar.bz2
scummvm-rg350-5ce67a67e198f566ced39a1cdbf11b41dc850a3b.zip
Fixed bug causing crash during saving in Saga engine, changed audio to low quality.
svn-id: r23726
Diffstat (limited to 'backends/platform/ds/arm9/source')
-rw-r--r--backends/platform/ds/arm9/source/gbampsave.cpp19
-rw-r--r--backends/platform/ds/arm9/source/gbampsave.h2
-rw-r--r--backends/platform/ds/arm9/source/osystem_ds.cpp2
-rw-r--r--backends/platform/ds/arm9/source/ramsave.cpp3
4 files changed, 20 insertions, 6 deletions
diff --git a/backends/platform/ds/arm9/source/gbampsave.cpp b/backends/platform/ds/arm9/source/gbampsave.cpp
index 714ab7e2bb..d2dfc910f4 100644
--- a/backends/platform/ds/arm9/source/gbampsave.cpp
+++ b/backends/platform/ds/arm9/source/gbampsave.cpp
@@ -27,7 +27,7 @@
GBAMPSaveFile::GBAMPSaveFile(char* name, bool saveOrLoad) {
handle = DS::std_fopen(name, saveOrLoad? "w": "r");
- //consolePrintf("%s handle is %d\n", name, handle);
+// consolePrintf("%s handle is %d\n", name, handle);
// consolePrintf("Created %s\n", name);
bufferPos = 0;
saveSize = 0;
@@ -36,7 +36,7 @@ GBAMPSaveFile::GBAMPSaveFile(char* name, bool saveOrLoad) {
GBAMPSaveFile::~GBAMPSaveFile() {
flushSaveBuffer();
- DS::std_fclose(handle);
+ if (handle) DS::std_fclose(handle);
}
uint32 GBAMPSaveFile::read(void *buf, uint32 size) {
@@ -143,11 +143,22 @@ Common::SaveFile* GBAMPSaveFileManager::openSavefile(char const* name, bool save
}
// consolePrintf(fileSpec);
-
- return new GBAMPSaveFile(fileSpec, saveOrLoad);
+ GBAMPSaveFile* sf = new GBAMPSaveFile(fileSpec, saveOrLoad);
+ if (sf->isOpen()) {
+ return sf;
+ } else {
+ delete sf;
+ return NULL;
+ }
}
void GBAMPSaveFileManager::listSavefiles(char const* prefix, bool* marks, int num) {
+ memset(marks, true, num * sizeof(bool));
+ return;
+
+ // Seems like I misunderstood what this function was supposed to do.
+ // I thought I was meant to set the marks[] array according to which
+ // saves are present on disk.
enum { TYPE_NO_MORE = 0, TYPE_FILE = 1, TYPE_DIR = 2 };
char name[128];
char path[128];
diff --git a/backends/platform/ds/arm9/source/gbampsave.h b/backends/platform/ds/arm9/source/gbampsave.h
index 8bc90fa8f8..9727a7c1aa 100644
--- a/backends/platform/ds/arm9/source/gbampsave.h
+++ b/backends/platform/ds/arm9/source/gbampsave.h
@@ -50,7 +50,7 @@ public:
void flushSaveBuffer();
virtual bool isOpen() const {
- return true;
+ return handle != 0;
}
};
diff --git a/backends/platform/ds/arm9/source/osystem_ds.cpp b/backends/platform/ds/arm9/source/osystem_ds.cpp
index 64725ac7ec..0d3e1fdd75 100644
--- a/backends/platform/ds/arm9/source/osystem_ds.cpp
+++ b/backends/platform/ds/arm9/source/osystem_ds.cpp
@@ -51,7 +51,7 @@ OSystem_DS::~OSystem_DS() {
void OSystem_DS::initBackend() {
ConfMan.setInt("autosave_period", 0);
- ConfMan.setBool("FM_medium_quality", true);
+ ConfMan.setBool("FM_low_quality", true);
}
bool OSystem_DS::hasFeature(Feature f) {
diff --git a/backends/platform/ds/arm9/source/ramsave.cpp b/backends/platform/ds/arm9/source/ramsave.cpp
index 87aaad85ed..3f2791839a 100644
--- a/backends/platform/ds/arm9/source/ramsave.cpp
+++ b/backends/platform/ds/arm9/source/ramsave.cpp
@@ -382,6 +382,9 @@ void DSSaveFileManager::deleteFile(char* name) {
}
void DSSaveFileManager::listSavefiles(const char *prefix, bool *marks, int num) {
+ memset(marks, true, num * sizeof(bool));
+ return;
+
memset(marks, false, num*sizeof(bool));
for (int saveNum = 0; saveNum < num; saveNum++) {