Mercurial > repos > blastem
comparison blastem.c @ 1295:96ad1b9bbb3a
Make save directory configurable. Satisfies ticket:4
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 21 Mar 2017 21:40:47 -0700 |
parents | a477cc22a960 |
children | 071e761bcdcf |
comparison
equal
deleted
inserted
replaced
1294:a719e2c98b54 | 1295:96ad1b9bbb3a |
---|---|
138 } | 138 } |
139 | 139 |
140 void setup_saves(char *fname, rom_info *info, system_header *context) | 140 void setup_saves(char *fname, rom_info *info, system_header *context) |
141 { | 141 { |
142 static uint8_t persist_save_registered; | 142 static uint8_t persist_save_registered; |
143 char *savedir_template = tern_find_path(config, "ui\0save_path\0").ptrval; | |
144 if (!savedir_template) { | |
145 savedir_template = "$USERDATA/blastem/$ROMNAME"; | |
146 } | |
143 char * barename = basename_no_extension(fname); | 147 char * barename = basename_no_extension(fname); |
144 char const * parts[3] = {get_save_dir(), PATH_SEP, barename}; | 148 tern_node *vars = tern_insert_ptr(NULL, "ROMNAME", barename); |
145 char *save_dir = alloc_concat_m(3, parts); | 149 vars = tern_insert_ptr(vars, "HOME", get_home_dir()); |
150 vars = tern_insert_ptr(vars, "EXEDIR", get_exe_dir()); | |
151 vars = tern_insert_ptr(vars, "USERDATA", (char *)get_userdata_dir()); | |
152 char *save_dir = replace_vars(savedir_template, vars, 1); | |
153 tern_free(vars); | |
146 if (!ensure_dir_exists(save_dir)) { | 154 if (!ensure_dir_exists(save_dir)) { |
147 warning("Failed to create save directory %s\n", save_dir); | 155 warning("Failed to create save directory %s\n", save_dir); |
148 } | 156 } |
149 parts[0] = save_dir; | 157 char const *parts[] = {save_dir, PATH_SEP, info->save_type == SAVE_I2C ? "save.eeprom" : "save.sram"}; |
150 parts[2] = info->save_type == SAVE_I2C ? "save.eeprom" : "save.sram"; | |
151 free(save_filename); | 158 free(save_filename); |
152 save_filename = alloc_concat_m(3, parts); | 159 save_filename = alloc_concat_m(3, parts); |
153 //TODO: make quick save filename dependent on system type | 160 //TODO: make quick save filename dependent on system type |
154 parts[2] = "quicksave.gst"; | 161 parts[2] = "quicksave.gst"; |
155 free(save_state_path); | 162 free(save_state_path); |