Browse code

Load rom in chunks of 64kb

Devine Lu Linvega authored on 29/01/2023 02:38:37
Showing 1 changed files
... ...
@@ -286,9 +286,13 @@ file_dei(Uint8 id, Uint8 *d, Uint8 port)
286 286
 int
287 287
 load_rom(Uxn *u, char *filename)
288 288
 {
289
-	int ret;
290
-	file_init(uxn_file, filename, strlen(filename) + 1, 1);
291
-	ret = file_read(uxn_file, &u->ram[PAGE_PROGRAM], 0x100000 - PAGE_PROGRAM);
292
-	reset(uxn_file);
293
-	return ret;
289
+	int l, i = 0;
290
+	FILE *f = fopen(filename, "rb");
291
+	if(!f)
292
+		return 0;
293
+	l = fread(&u->ram[PAGE_PROGRAM], 1, 0x10000 - PAGE_PROGRAM, f);
294
+	while(l && ++i < 15)
295
+		l = fread(u->ram + 0x10000 * i, 1, 0x10000, f);
296
+	fclose(f);
297
+	return 1;
294 298
 }