+static void fname_ext(char *dst, int dstlen, const char *prefix, const char *ext, const char *fname)\r
+{\r
+ int prefix_len = 0;\r
+ const char *p;\r
+\r
+ *dst = 0;\r
+ if (prefix) {\r
+ int len = plat_get_root_dir(dst, dstlen);\r
+ strcpy(dst + len, prefix);\r
+ prefix_len = len + strlen(prefix);\r
+ }\r
+\r
+ p = fname + strlen(fname) - 1;\r
+ for (; p >= fname && *p != PATH_SEP_C; p--)\r
+ ;\r
+ p++;\r
+ strncpy(dst + prefix_len, p, dstlen - prefix_len - 1);\r
+\r
+ dst[dstlen - 8] = 0;\r
+ if (dst[strlen(dst) - 4] == '.')\r
+ dst[strlen(dst) - 4] = 0;\r
+ if (ext)\r
+ strcat(dst, ext);\r
+}\r
+\r
+static void romfname_ext(char *dst, int dstlen, const char *prefix, const char *ext)\r
+{\r
+ fname_ext(dst, dstlen, prefix, ext, rom_fname_loaded);\r
+}\r
+\r