|
- #include <stdio.h>
-
- #include "cart.h"
- #include "nese.h"
- #include "port.h"
-
-
- static int nese_file_size(FILE* file) {
- int size = -1;
- if (0 == fseek(file, 0, SEEK_END)) {
- size = ftell(file);
- }
- return size;
- }
-
-
- int nese_start(nes* sys, const char* filename) {
- int status = 0;
- void* cart_data = NULL;
- int filesize = -1;
- FILE* file = NULL;
-
- file = fopen(filename, "rb");
-
- if (NULL == file) {
- status = -1;
- }
-
- if (0 == status) {
- filesize = nese_file_size(file);
- cart_data = nese_map_file(file, filesize);
- if (NULL == cart_data) {
- fprintf(stderr, "Failed to map %s\n", filename);
- status = -1;
- } else {
- status = nes_cart_load_mem(cart_data, filesize, sys);
- }
- }
-
- nes_init(sys);
-
- nes_loop(sys);
-
- if (cart_data) nese_unmap_file(cart_data, filesize);
-
- nes_done(sys);
-
- return 0;
- }
|