|
- #include "save.h"
- #include "file.h"
- #include "mapper.h"
-
-
- static int make_sram_filename(char* sram_filename, int max_len,
- const char* cart_filename) {
- return make_filename( sram_filename, max_len,
- basename(cart_filename),
- "sram", "sram");
- }
-
- int load_sram(nes_cart* cart, const char* cart_filename) {
- int status = -1;
-
- int sram_size = cart->mapper->sram_size ?
- cart->mapper->sram_size(cart->mapper) : 0;
- void* sram = cart->mapper->sram ?
- cart->mapper->sram(cart->mapper) : NULL;
-
- if (sram_size > 0 && NULL != sram) {
- char sram_filename[FILENAME_MAX] = {0};
- make_sram_filename(sram_filename, FILENAME_MAX - 1,
- cart_filename);
- status = read_file(sram_filename, sram, sram_size);
- }
-
- return status;
- }
-
- int save_sram(const nes_cart* cart, const char* cart_filename) {
- int status = -1;
-
- int sram_size = cart->mapper->sram_size ?
- cart->mapper->sram_size(cart->mapper) : 0;
- const void* sram = cart->mapper->sram ?
- cart->mapper->sram(cart->mapper) : NULL;
-
- if (sram_size > 0 && NULL != sram) {
- char sram_filename[FILENAME_MAX] = {0};
- make_sram_filename(sram_filename, FILENAME_MAX - 1,
- cart_filename);
- status = write_file(sram_filename, sram, sram_size);
- }
-
- return status;
- }
|