//======================================================================= Tools //======================================================================= //======================================================================= u32 BackupDevice::importDataSize(const char *filename) { u32 res = 0; if (strlen(filename) < 4) return 0; if (memcmp(filename + strlen(filename) - 4, ".duc", 4) == 0) { res = get_save_duc_size(filename); if (res == 0xFFFFFFFF) return 0; return res; } res = get_save_nogba_size(filename); if (res != 0xFFFFFFFF) return res; res = get_save_raw_size(filename); if (res != 0xFFFFFFFF) return res; return 0; }
bool BackupDevice::no_gba_unpack(u8 *&buf, u32 &size) { if (!buf) return false; u32 out_size = get_save_nogba_size(buf); if (out_size == 0xFFFFFFFF) return false; u8 *out_buf = new u8 [out_size]; if (out_buf) { if (no_gba_unpackSAV(buf, size, out_buf, out_size) == 0) { out_size = trim(out_buf, out_size); out_size = fillLeft(out_size); delete [] buf; buf = out_buf; size = out_size; return true; } } delete out_buf; return false; }