if (f == NULL)\r
goto cso_failed;\r
\r
-#ifndef __EPOC32__\r
+#ifdef __GP2X__\r
/* we use our own buffering */\r
setvbuf(f, NULL, _IONBF, 0);\r
#endif\r
strncpy(file->ext, ext, sizeof(file->ext) - 1);\r
fseek(f, 0, SEEK_SET);\r
\r
-#ifndef __EPOC32__ // makes things worse on Symbian\r
+#ifdef __GP2X__\r
if (file->size > 0x400000)\r
/* we use our own buffering */\r
setvbuf(f, NULL, _IONBF, 0);\r
{\r
int i, len = strlen(s1);\r
const char *s_rom = (const char *)Pico.rom;\r
+ if (rom_offset + len > Pico.romsize)\r
+ return 0;\r
for (i = 0; i < len; i++)\r
if (s1[i] != s_rom[(i + rom_offset) ^ 1])\r
return 1;\r
return 1;\r
}\r
\r
+#include "carthw_cfg.c"\r
+\r
static void parse_carthw(const char *carthw_cfg, int *fill_sram)\r
{\r
int line = 0, any_checks_passed = 0, skip_sect = 0;\r
+ const char *s, *builtin = builtin_carthw_cfg;\r
int tmp, rom_crc = 0;\r
char buff[256], *p, *r;\r
FILE *f;\r
\r
f = fopen(carthw_cfg, "r");\r
- if (f == NULL) {\r
+ if (f == NULL)\r
+ f = fopen("pico/carthw.cfg", "r");\r
+ if (f == NULL)\r
elprintf(EL_STATUS, "couldn't open carthw.cfg!");\r
- return;\r
- }\r
\r
- while ((p = fgets(buff, sizeof(buff), f)))\r
+ for (;;)\r
{\r
+ if (f != NULL) {\r
+ p = fgets(buff, sizeof(buff), f);\r
+ if (p == NULL)\r
+ break;\r
+ }\r
+ else {\r
+ if (*builtin == 0)\r
+ break;\r
+ for (s = builtin; *s != 0 && *s != '\n'; s++)\r
+ ;\r
+ while (*s == '\n')\r
+ s++;\r
+ tmp = s - builtin;\r
+ if (tmp > sizeof(buff) - 1)\r
+ tmp = sizeof(buff) - 1;\r
+ memcpy(buff, builtin, tmp);\r
+ buff[tmp] = 0;\r
+ p = buff;\r
+ builtin = s;\r
+ }\r
+\r
line++;\r
p = sskip(p);\r
if (*p == 0 || *p == '#')\r
SRam.flags &= ~SRF_EEPROM;\r
else if (strcmp(p, "filled_sram") == 0)\r
*fill_sram = 1;\r
+ else if (strcmp(p, "force_6btn") == 0)\r
+ PicoQuirks |= PQUIRK_FORCE_6BTN;\r
else {\r
elprintf(EL_STATUS, "carthw:%d: unsupported prop: %s", line, p);\r
goto bad_nomsg;\r
}\r
+ elprintf(EL_STATUS, "game prop: %s", p);\r
continue;\r
}\r
else if (is_expr("eeprom_type", &p)) {\r
skip_sect = 1;\r
continue;\r
}\r
- fclose(f);\r
+\r
+ if (f != NULL)\r
+ fclose(f);\r
}\r
\r
/*\r
*(int *) (Pico.rom + 0x1f0) = 0x20204520;\r
}\r
\r
+// vim:shiftwidth=2:expandtab\r