diff --git a/smsplusgx-go/components/smsplus/loadrom.c b/smsplusgx-go/components/smsplus/loadrom.c index 7170422..9a89af2 100644 --- a/smsplusgx-go/components/smsplus/loadrom.c +++ b/smsplusgx-go/components/smsplus/loadrom.c @@ -363,7 +363,6 @@ void set_config() int load_rom (char *filename) { - FILE *fd = NULL; size_t nameLength = strlen(filename); @@ -400,10 +399,12 @@ int load_rom (char *filename) if(!fd) abort(); /* Seek to end of file, and get size */ + fseek(fd, 0, SEEK_END); - cart.size = ftell(fd); + size_t actual_size = ftell(fd); fseek(fd, 0, SEEK_SET); + cart.size = actual_size; if (cart.size < 0x4000) cart.size = 0x4000; cart.rom = ESP32_PSRAM; @@ -414,7 +415,7 @@ int load_rom (char *filename) __asm__("nop"); __asm__("nop"); __asm__("memw"); - + fclose(fd); @@ -432,7 +433,7 @@ int load_rom (char *filename) /* 16k pages */ cart.pages = cart.size / 0x4000; - cart.crc = crc32 (0, cart.rom, cart.size); + cart.crc = crc32(0, cart.rom, option.console == 6 ? actual_size : cart.size); cart.loaded = 1; set_config(); diff --git a/smsplusgx-go/main/main.c b/smsplusgx-go/main/main.c index 3933948..28fdcb0 100644 --- a/smsplusgx-go/main/main.c +++ b/smsplusgx-go/main/main.c @@ -684,7 +684,7 @@ void app_main(void) // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, # switch (cart.crc) { - case 0xab021f1a: // Frogger + case 0x798002a2: // Frogger case 0x9cc3fabc: // Alcazar if (joystick.values[ODROID_INPUT_START]) {