#include #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; }