return NULL;\r
\r
ext = get_ext(path);\r
-#ifndef NO_ZLIB\r
if (strcasecmp(ext, "zip") == 0)\r
{\r
struct zip_file *zfile = NULL;\r
return NULL;\r
}\r
}\r
- else\r
-#endif\r
- if (strcasecmp(ext, "cso") == 0)\r
+ else if (strcasecmp(ext, "cso") == 0)\r
{\r
cso_struct *cso = NULL, *tmp = NULL;\r
int size;\r
{\r
ret = fread(ptr, 1, bytes, stream->file);\r
}\r
-#ifndef NO_ZLIB\r
else if (stream->type == PMT_ZIP)\r
{\r
struct zip_file *z = stream->file;\r
z->pos += bytes - z->stream.avail_out;\r
return bytes - z->stream.avail_out;\r
}\r
-#endif\r
else if (stream->type == PMT_CSO)\r
{\r
cso_struct *cso = stream->param;\r
fseek(stream->file, offset, whence);\r
return ftell(stream->file);\r
}\r
-#ifndef NO_ZLIB\r
else if (stream->type == PMT_ZIP)\r
{\r
struct zip_file *z = stream->file;\r
}\r
return z->pos;\r
}\r
-#endif\r
else if (stream->type == PMT_CSO)\r
{\r
cso_struct *cso = stream->param;\r
{\r
fclose(fp->file);\r
}\r
-#ifndef NO_ZLIB\r
else if (fp->type == PMT_ZIP)\r
{\r
struct zip_file *z = fp->file;\r
inflateEnd(&z->stream);\r
closezip(z->zip);\r
}\r
-#endif\r
else if (fp->type == PMT_CSO)\r
{\r
free(fp->param);\r
Pico.rom=rom;\r
Pico.romsize=romsize;\r
\r
- if (SRam.data) {\r
- free(SRam.data);\r
- SRam.data = NULL;\r
+ if (Pico.sv.data) {\r
+ free(Pico.sv.data);\r
+ Pico.sv.data = NULL;\r
}\r
\r
if (PicoCartUnloadHook != NULL) {\r
elprintf(EL_STATUS, "carthw:%d: bad sram_range: %08x - %08x", line, start, end);\r
goto bad_nomsg;\r
}\r
- SRam.start = start;\r
- SRam.end = end;\r
+ Pico.sv.start = start;\r
+ Pico.sv.end = end;\r
continue;\r
}\r
else if (is_expr("prop", &p)) {\r
rstrip(p);\r
\r
if (strcmp(p, "no_sram") == 0)\r
- SRam.flags &= ~SRF_ENABLED;\r
+ Pico.sv.flags &= ~SRF_ENABLED;\r
else if (strcmp(p, "no_eeprom") == 0)\r
- SRam.flags &= ~SRF_EEPROM;\r
+ Pico.sv.flags &= ~SRF_EEPROM;\r
else if (strcmp(p, "filled_sram") == 0)\r
*fill_sram = 1;\r
else if (strcmp(p, "force_6btn") == 0)\r
type = strtoul(p, &r, 0);\r
if (r == p || type < 0)\r
goto bad;\r
- SRam.eeprom_type = type;\r
- SRam.flags |= SRF_EEPROM;\r
+ Pico.sv.eeprom_type = type;\r
+ Pico.sv.flags |= SRF_EEPROM;\r
continue;\r
}\r
else if (is_expr("eeprom_lines", &p)) {\r
sda_out < 0 || sda_out > 15)\r
goto bad;\r
\r
- SRam.eeprom_bit_cl = scl;\r
- SRam.eeprom_bit_in = sda_in;\r
- SRam.eeprom_bit_out= sda_out;\r
+ Pico.sv.eeprom_bit_cl = scl;\r
+ Pico.sv.eeprom_bit_in = sda_in;\r
+ Pico.sv.eeprom_bit_out= sda_out;\r
continue;\r
}\r
else if ((tmp = is_expr("prot_ro_value16", &p)) || is_expr("prot_rw_value16", &p)) {\r
{\r
int fill_sram = 0;\r
\r
- memset(&SRam, 0, sizeof(SRam));\r
+ memset(&Pico.sv, 0, sizeof(Pico.sv));\r
if (Pico.rom[0x1B1] == 'R' && Pico.rom[0x1B0] == 'A')\r
{\r
- SRam.start = rom_read32(0x1B4) & ~0xff000001; // align\r
- SRam.end = (rom_read32(0x1B8) & ~0xff000000) | 1;\r
+ Pico.sv.start = rom_read32(0x1B4) & ~0xff000001; // align\r
+ Pico.sv.end = (rom_read32(0x1B8) & ~0xff000000) | 1;\r
if (Pico.rom[0x1B2] & 0x40)\r
// EEPROM\r
- SRam.flags |= SRF_EEPROM;\r
- SRam.flags |= SRF_ENABLED;\r
+ Pico.sv.flags |= SRF_EEPROM;\r
+ Pico.sv.flags |= SRF_ENABLED;\r
}\r
- if (SRam.end == 0 || SRam.start > SRam.end)\r
+ if (Pico.sv.end == 0 || Pico.sv.start > Pico.sv.end)\r
{\r
// some games may have bad headers, like S&K and Sonic3\r
// note: majority games use 0x200000 as starting address, but there are some which\r
// use something else (0x300000 by HardBall '95). Luckily they have good headers.\r
- SRam.start = 0x200000;\r
- SRam.end = 0x203FFF;\r
- SRam.flags |= SRF_ENABLED;\r
+ Pico.sv.start = 0x200000;\r
+ Pico.sv.end = 0x203FFF;\r
+ Pico.sv.flags |= SRF_ENABLED;\r
}\r
\r
// set EEPROM defaults, in case it gets detected\r
- SRam.eeprom_type = 0; // 7bit (24C01)\r
- SRam.eeprom_bit_cl = 1;\r
- SRam.eeprom_bit_in = 0;\r
- SRam.eeprom_bit_out= 0;\r
+ Pico.sv.eeprom_type = 0; // 7bit (24C01)\r
+ Pico.sv.eeprom_bit_cl = 1;\r
+ Pico.sv.eeprom_bit_in = 0;\r
+ Pico.sv.eeprom_bit_out= 0;\r
\r
if (carthw_cfg != NULL)\r
parse_carthw(carthw_cfg, &fill_sram);\r
\r
- if (SRam.flags & SRF_ENABLED)\r
+ if (Pico.sv.flags & SRF_ENABLED)\r
{\r
- if (SRam.flags & SRF_EEPROM)\r
- SRam.size = 0x2000;\r
+ if (Pico.sv.flags & SRF_EEPROM)\r
+ Pico.sv.size = 0x2000;\r
else\r
- SRam.size = SRam.end - SRam.start + 1;\r
+ Pico.sv.size = Pico.sv.end - Pico.sv.start + 1;\r
\r
- SRam.data = calloc(SRam.size, 1);\r
- if (SRam.data == NULL)\r
- SRam.flags &= ~SRF_ENABLED;\r
+ Pico.sv.data = calloc(Pico.sv.size, 1);\r
+ if (Pico.sv.data == NULL)\r
+ Pico.sv.flags &= ~SRF_ENABLED;\r
\r
- if (SRam.eeprom_type == 1) // 1 == 0 in PD EEPROM code\r
- SRam.eeprom_type = 0;\r
+ if (Pico.sv.eeprom_type == 1) // 1 == 0 in PD EEPROM code\r
+ Pico.sv.eeprom_type = 0;\r
}\r
\r
- if ((SRam.flags & SRF_ENABLED) && fill_sram)\r
+ if ((Pico.sv.flags & SRF_ENABLED) && fill_sram)\r
{\r
elprintf(EL_STATUS, "SRAM fill");\r
- memset(SRam.data, 0xff, SRam.size);\r
+ memset(Pico.sv.data, 0xff, Pico.sv.size);\r
}\r
\r
// Unusual region 'code'\r