commit 387d802

aabacchus  ·  2022-06-20 23:01:04 +0000 UTC
parent d9cdf19
override sandbox from load_rom
1 files changed,  +5, -4
+5, -4
 1@@ -138,7 +138,7 @@ file_check_sandbox(UxnFile *c)
 2 }
 3 
 4 static Uint16
 5-file_init(UxnFile *c, char *filename, size_t max_len)
 6+file_init(UxnFile *c, char *filename, size_t max_len, int override_sandbox)
 7 {
 8 	char *p = c->current_filename;
 9 	size_t len = sizeof(c->current_filename);
10@@ -146,7 +146,8 @@ file_init(UxnFile *c, char *filename, size_t max_len)
11 	if(len > max_len) len = max_len;
12 	while(len) {
13 		if((*p++ = *filename++) == '\0') {
14-			file_check_sandbox(c);
15+			if(!override_sandbox) /* override sandbox for loading roms */
16+				file_check_sandbox(c);
17 			return 0;
18 		}
19 		len--;
20@@ -230,7 +231,7 @@ file_deo(Uint8 id, Uint8 *ram, Uint8 *d, Uint8 port)
21 		break;
22 	case 0x9:
23 		PEKDEV(addr, 0x8);
24-		res = file_init(c, (char *)&ram[addr], 0x10000 - addr);
25+		res = file_init(c, (char *)&ram[addr], 0x10000 - addr, 0);
26 		POKDEV(0x2, res);
27 		break;
28 	case 0xd:
29@@ -273,7 +274,7 @@ int
30 load_rom(Uxn *u, char *filename)
31 {
32 	int ret;
33-	file_init(uxn_file, filename, strlen(filename) + 1);
34+	file_init(uxn_file, filename, strlen(filename) + 1, 1);
35 	ret = file_read(uxn_file, &u->ram[PAGE_PROGRAM], 0x10000 - PAGE_PROGRAM);
36 	reset(uxn_file);
37 	return ret;