using fliestream

This commit is contained in:
Alberto Fustinoni 2017-06-20 00:51:27 +09:00
parent 6652a76f30
commit d1076a911e

View File

@ -539,19 +539,19 @@ static void config_default(void)
static void bram_load(void)
{
FILE *fp;
RFILE *fp;
/* automatically load internal backup RAM */
switch (region_code)
{
case REGION_JAPAN_NTSC:
fp = fopen(CD_BRAM_JP, "rb");
fp = filestream_open(CD_BRAM_JP, RFILE_MODE_READ, -1);
break;
case REGION_EUROPE:
fp = fopen(CD_BRAM_EU, "rb");
fp = filestream_open(CD_BRAM_EU, RFILE_MODE_READ, -1);
break;
case REGION_USA:
fp = fopen(CD_BRAM_US, "rb");
fp = filestream_open(CD_BRAM_US, RFILE_MODE_READ, -1);
break;
default:
return;
@ -559,8 +559,8 @@ static void bram_load(void)
if (fp != NULL)
{
fread(scd.bram, 0x2000, 1, fp);
fclose(fp);
filestream_read(fp, scd.bram, 0x2000);
filestream_close(fp);
/* update CRC */
brm_crc[0] = crc32(0, scd.bram, 0x2000);
@ -591,7 +591,7 @@ static void bram_load(void)
/* automatically load cartridge backup RAM (if enabled) */
if (scd.cartridge.id)
{
fp = fopen(CART_BRAM, "rb");
fp = filestream_open(CART_BRAM, RFILE_MODE_READ, -1);
if (fp != NULL)
{
int filesize = scd.cartridge.mask + 1;
@ -600,7 +600,7 @@ static void bram_load(void)
/* Read into buffer (2k blocks) */
while (filesize > CHUNKSIZE)
{
fread(scd.cartridge.area + done, CHUNKSIZE, 1, fp);
filestream_read(fp, scd.cartridge.area + done, CHUNKSIZE);
done += CHUNKSIZE;
filesize -= CHUNKSIZE;
}
@ -608,11 +608,11 @@ static void bram_load(void)
/* Read remaining bytes */
if (filesize)
{
fread(scd.cartridge.area + done, filesize, 1, fp);
filestream_read(fp, scd.cartridge.area + done, filesize);
}
/* close file */
fclose(fp);
filestream_close(fp);
/* update CRC */
brm_crc[1] = crc32(0, scd.cartridge.area, scd.cartridge.mask + 1);
@ -636,7 +636,7 @@ static void bram_load(void)
static void bram_save(void)
{
FILE *fp;
RFILE *fp;
/* verify that internal backup RAM has been modified */
if (crc32(0, scd.bram, 0x2000) != brm_crc[0])
@ -647,13 +647,13 @@ static void bram_save(void)
switch (region_code)
{
case REGION_JAPAN_NTSC:
fp = fopen(CD_BRAM_JP, "wb");
fp = filestream_open(CD_BRAM_JP, RFILE_MODE_WRITE, -1);
break;
case REGION_EUROPE:
fp = fopen(CD_BRAM_EU, "wb");
fp = filestream_open(CD_BRAM_EU, RFILE_MODE_WRITE, -1);
break;
case REGION_USA:
fp = fopen(CD_BRAM_US, "wb");
fp = filestream_open(CD_BRAM_US, RFILE_MODE_WRITE, -1);
break;
default:
return;
@ -661,8 +661,8 @@ static void bram_save(void)
if (fp != NULL)
{
fwrite(scd.bram, 0x2000, 1, fp);
fclose(fp);
filestream_write(fp, scd.bram, 0x2000);
filestream_close(fp);
/* update CRC */
brm_crc[0] = crc32(0, scd.bram, 0x2000);
@ -676,7 +676,7 @@ static void bram_save(void)
/* check if it is correctly formatted before saving */
if (!memcmp(scd.cartridge.area + scd.cartridge.mask + 1 - 0x20, brm_format + 0x20, 0x20))
{
fp = fopen(CART_BRAM, "wb");
fp = filestream_open(CART_BRAM, RFILE_MODE_WRITE, -1);
if (fp != NULL)
{
int filesize = scd.cartridge.mask + 1;
@ -685,7 +685,7 @@ static void bram_save(void)
/* Write to file (2k blocks) */
while (filesize > CHUNKSIZE)
{
fwrite(scd.cartridge.area + done, CHUNKSIZE, 1, fp);
filestream_write(fp, scd.cartridge.area + done, CHUNKSIZE);
done += CHUNKSIZE;
filesize -= CHUNKSIZE;
}
@ -693,11 +693,11 @@ static void bram_save(void)
/* Write remaining bytes */
if (filesize)
{
fwrite(scd.cartridge.area + done, filesize, 1, fp);
filestream_write(fp, scd.cartridge.area + done, filesize);
}
/* Close file */
fclose(fp);
filestream_close(fp);
/* update CRC */
brm_crc[1] = crc32(0, scd.cartridge.area, scd.cartridge.mask + 1);