void vm_fclose(VMFILE *fp) { int i; int x,y; if (!fp->_cnt) goto _exit; if (fp->_vm > 0) if (save_to_vmu(fp->_vm, fp->filename, fp->_base, fp->_cnt)) { #ifndef NOSERIAL printf("SUCCESS port %c%d", 'A'+ fp->_vm/6, fp->_vm%6); #endif goto _exit; } for (i=0; i<24; i++) if (save_to_vmu(i, fp->filename, fp->_base, fp->_cnt)) { #ifndef NOSERIAL printf("SUCCESS port %c%d", 'A'+ i/6, i%6); #endif break; } if (i>=24) { #ifndef NOSERIAL fprintf(stderr,"no available vmu\n"); #endif } _exit: fh[fp->_fd].used = 0; return; }
static void SaveData_finalize(unsigned int id) { char path[16]; char long_desc[32] ; char short_desc[16]; unsigned char buf[MAX_VM_SIZE]; const char *save_title = "Select a VMU to save"; if (checked_vm < 0) return; sprintf(long_desc, "%s/Save File", ini_title); milstr_ncpy(short_desc, ini_title ,sizeof(short_desc)); loadSaveDatafromVmu(id); ZeroMemory(buf, sizeof(buf)); sprintf(path, "%x", id); int files = saveSaveData(id, buf); if (!files) return; int res = checked_vm; if (!res && !vmu_select(&res, save_title)) { checked_vm = -1; return; } for (;;) { display_message("Saving, do not power off or remove VMU!"); if (!save_to_vmu(res, path, long_desc, short_desc, buf, MAX_VM_SIZE, &icon)) { display_message("Failed!"); drawlcdstring(res, 0, 8, "FAILED!"); if (!vmu_select(&res, save_title)) { checked_vm = -1; return; } } else { display_message("Saved!"); drawlcdstring(res, 0, 8, "SAVED!"); checked_vm = res; return; } } }
int SDL_main(int argc, char *argv[]) { int vm; unsigned int size; uint8_t *data; char *srcfile = "profile3.dat"; if(!vmfile_search(srcfile, &vm)) vm = 1; FILE *fp; fp = fopen(srcfile, "rb"); if (!fp) { stat("failed to open!"); return 1; } fseek(fp, 0L, SEEK_END); size = ftell(fp); fseek(fp, 0L, SEEK_SET); data = (uint8_t*)malloc(size); if(!data) { fclose(fp); return 1; } memset(data, 0, size); fread(data, 1, size, fp); fclose(fp); save_to_vmu(vm, srcfile, (const char*)data, size); free(data); return 0; }