(uxncli) Load ROM using the File device functions.
This commit is contained in:
parent
42dea5b914
commit
47f65c7b82
|
@ -215,3 +215,15 @@ file_dei(Device *d, Uint8 port)
|
|||
}
|
||||
return d->dat[port];
|
||||
}
|
||||
|
||||
/* Boot */
|
||||
|
||||
int
|
||||
load_rom(Uxn *u, char *filename)
|
||||
{
|
||||
int ret;
|
||||
file_init(uxn_file, filename, strlen(filename) + 1);
|
||||
ret = file_read(uxn_file, &u->ram[PAGE_PROGRAM], 0x10000 - PAGE_PROGRAM);
|
||||
reset(uxn_file);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -15,3 +15,4 @@ WITH REGARD TO THIS SOFTWARE.
|
|||
|
||||
void file_deo(Device *d, Uint8 port);
|
||||
Uint8 file_dei(Device *d, Uint8 port);
|
||||
int load_rom(Uxn *u, char *filename);
|
||||
|
|
16
src/uxncli.c
16
src/uxncli.c
|
@ -74,19 +74,6 @@ run(Uxn *u)
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
load(Uxn *u, char *filepath)
|
||||
{
|
||||
FILE *f;
|
||||
int r;
|
||||
if(!(f = fopen(filepath, "rb"))) return 0;
|
||||
r = fread(u->ram + PAGE_PROGRAM, 1, 0x10000 - PAGE_PROGRAM, f);
|
||||
fclose(f);
|
||||
if(r < 1) return 0;
|
||||
fprintf(stderr, "Loaded %s\n", filepath);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
uxn_interrupt(void)
|
||||
{
|
||||
|
@ -126,8 +113,9 @@ main(int argc, char **argv)
|
|||
return error("Usage", "uxncli game.rom args");
|
||||
if(!start(&u))
|
||||
return error("Start", "Failed");
|
||||
if(!load(&u, argv[1]))
|
||||
if(!load_rom(&u, argv[1]))
|
||||
return error("Load", "Failed");
|
||||
fprintf(stderr, "Loaded %s\n", argv[1]);
|
||||
if(!uxn_eval(&u, PAGE_PROGRAM))
|
||||
return error("Init", "Failed");
|
||||
for(i = 2; i < argc; i++) {
|
||||
|
|
Loading…
Reference in New Issue