... | ... |
@@ -95,9 +95,11 @@ system_version(char *name, char *date) |
95 | 95 |
} |
96 | 96 |
|
97 | 97 |
int |
98 |
-system_boot(Uxn *u, Uint8 *ram) |
|
98 |
+system_init(Uxn *u, Uint8 *ram, char *rom) |
|
99 | 99 |
{ |
100 | 100 |
u->ram = ram; |
101 |
+ if(!system_load(u, rom)) |
|
102 |
+ return system_error("Init", "Failed to load rom."); |
|
101 | 103 |
return 1; |
102 | 104 |
} |
103 | 105 |
|
... | ... |
@@ -20,5 +20,5 @@ int system_version(char *emulator, char *date); |
20 | 20 |
int system_load(Uxn *u, char *filename); |
21 | 21 |
void system_inspect(Uxn *u); |
22 | 22 |
int system_error(char *msg, const char *err); |
23 |
-int system_boot(Uxn *u, Uint8 *ram); |
|
23 |
+int system_init(Uxn *u, Uint8 *ram, char *rom); |
|
24 | 24 |
void system_deo(Uxn *u, Uint8 *d, Uint8 port); |
... | ... |
@@ -57,12 +57,8 @@ main(int argc, char **argv) |
57 | 57 |
/* Read flags */ |
58 | 58 |
if(argv[i][0] == '-' && argv[i][1] == 'v') |
59 | 59 |
return system_version("Uxncli - Console Varvara Emulator", "9 Aug 2023"); |
60 |
- /* Continue.. */ |
|
61 |
- if(!system_boot(&u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)))) |
|
62 |
- return system_error("Boot", "Failed"); |
|
63 |
- /* Load rom */ |
|
64 |
- if(!system_load(&u, argv[i++])) |
|
65 |
- return system_error("Load", "Failed"); |
|
60 |
+ if(!system_init(&u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), argv[i++])) |
|
61 |
+ return system_error("Init", "Failed to initialize uxn."); |
|
66 | 62 |
/* Game Loop */ |
67 | 63 |
u.dev[0x17] = argc - i; |
68 | 64 |
if(uxn_eval(&u, PAGE_PROGRAM)) { |
... | ... |
@@ -257,11 +257,6 @@ emu_init(void) |
257 | 257 |
static int |
258 | 258 |
emu_start(Uxn *u, char *rom, int queue) |
259 | 259 |
{ |
260 |
- free(u->ram); |
|
261 |
- if(!system_boot(u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)))) |
|
262 |
- return system_error("Boot", "Failed to start uxn."); |
|
263 |
- if(!system_load(u, rom)) |
|
264 |
- return system_error("Boot", "Failed to load rom."); |
|
265 | 260 |
u->dev[0x17] = queue; |
266 | 261 |
exec_deadline = SDL_GetPerformanceCounter() + deadline_interval; |
267 | 262 |
screen_resize(WIDTH, HEIGHT); |
... | ... |
@@ -545,11 +540,12 @@ main(int argc, char **argv) |
545 | 540 |
return system_version("Uxnemu - Graphical Varvara Emulator", "10 Aug 2023"); |
546 | 541 |
if(strcmp(argv[i], "-2x") == 0 || strcmp(argv[i], "-3x") == 0) |
547 | 542 |
set_zoom(argv[i++][1] - '0', 0); |
548 |
- /* Continue.. */ |
|
543 |
+ rom_path = argv[i++]; |
|
549 | 544 |
if(!emu_init()) |
550 |
- return system_error("Init", "Failed to initialize emulator."); |
|
545 |
+ return system_error("Init", "Failed to initialize varvara."); |
|
546 |
+ if(!system_init(&u, (Uint8 *)calloc(0x10000 * RAM_PAGES, sizeof(Uint8)), rom_path)) |
|
547 |
+ return system_error("Init", "Failed to initialize uxn."); |
|
551 | 548 |
/* load rom */ |
552 |
- rom_path = argv[i++]; |
|
553 | 549 |
if(!emu_start(&u, rom_path, argc - i)) |
554 | 550 |
return system_error("Start", "Failed"); |
555 | 551 |
/* read arguments */ |