Browse code

Extend loaded rom size

Devine Lu Linvega authored on 28/01/2023 23:05:24
Showing 3 changed files
... ...
@@ -170,7 +170,7 @@ file_init(UxnFile *c, char *filename, size_t max_len, int override_sandbox)
170 170
 }
171 171
 
172 172
 static Uint16
173
-file_read(UxnFile *c, void *dest, Uint16 len)
173
+file_read(UxnFile *c, void *dest, int len)
174 174
 {
175 175
 	if(c->outside_sandbox) return 0;
176 176
 	if(c->state != FILE_READ && c->state != DIR_READ) {
... ...
@@ -288,7 +288,7 @@ load_rom(Uxn *u, char *filename)
288 288
 {
289 289
 	int ret;
290 290
 	file_init(uxn_file, filename, strlen(filename) + 1, 1);
291
-	ret = file_read(uxn_file, &u->ram[PAGE_PROGRAM], 0x10000 - PAGE_PROGRAM);
291
+	ret = file_read(uxn_file, &u->ram[PAGE_PROGRAM], 0x100000 - PAGE_PROGRAM);
292 292
 	reset(uxn_file);
293 293
 	return ret;
294 294
 }
... ...
@@ -68,25 +68,17 @@ mmu_init(Mmu *m, Uint16 pages)
68 68
 	return m->pages;
69 69
 }
70 70
 
71
-void
72
-mmu_copy(Uint8 *ram, Uint16 length, Uint16 src_page, Uint16 src_addr, Uint16 dst_page, Uint16 dst_addr)
73
-{
74
-	Uint16 i;
75
-	for(i = 0; i < length; i++) {
76
-		ram[dst_page * 0x10000 + dst_addr + i] = ram[src_page * 0x10000 + src_addr + i];
77
-	}
78
-}
79
-
80 71
 void
81 72
 mmu_eval(Uint8 *ram, Uint16 addr)
82 73
 {
83
-	Uint16 a = addr;
74
+	Uint16 a = addr, i = 0;
84 75
 	Uint8 o = ram[a++];
85 76
 	if(o == 1) {
86 77
 		Uint16 length = (ram[a++] << 8) + ram[a++];
87 78
 		Uint16 src_page = ((ram[a++] << 8) + ram[a++]) % 16, src_addr = (ram[a++] << 8) + ram[a++];
88 79
 		Uint16 dst_page = ((ram[a++] << 8) + ram[a++]) % 16, dst_addr = (ram[a++] << 8) + ram[a];
89
-		mmu_copy(ram, length, src_page, src_addr, dst_page, dst_addr);
80
+		for(i = 0; i < length; i++)
81
+			ram[dst_page * 0x10000 + dst_addr + i] = ram[src_page * 0x10000 + src_addr + i];
90 82
 	}
91 83
 }
92 84
 
... ...
@@ -455,7 +455,6 @@ run(Uxn *u)
455 455
 			SDL_WaitEvent(NULL);
456 456
 	}
457 457
 	return error("SDL_WaitEvent", SDL_GetError());
458
-	;
459 458
 }
460 459
 
461 460
 int