summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortwinaphex2014-12-20 08:35:53 +0100
committertwinaphex2014-12-20 08:35:53 +0100
commitba834beeb1550e122ecac62609f34cf7c9717139 (patch)
treee0e7ba530925a524da71584c4977e77774e88ae5
parent9fe97ba148ba3f4bee0e8b9c00976747bb41ecf4 (diff)
downloadpicogpsp-ba834beeb1550e122ecac62609f34cf7c9717139.tar.gz
picogpsp-ba834beeb1550e122ecac62609f34cf7c9717139.tar.bz2
picogpsp-ba834beeb1550e122ecac62609f34cf7c9717139.zip
Change load_gamepak signature
-rw-r--r--gba_memory.c54
-rw-r--r--gba_memory.h4
-rw-r--r--libretro.c2
3 files changed, 29 insertions, 31 deletions
diff --git a/gba_memory.c b/gba_memory.c
index 9ee5562..53e2d15 100644
--- a/gba_memory.c
+++ b/gba_memory.c
@@ -2388,49 +2388,45 @@ char gamepak_code[5];
char gamepak_maker[3];
char gamepak_filename[512];
-u32 load_gamepak(const char *name)
+u32 load_gamepak(const struct retro_game_info* info, const char *name)
{
- char cheats_filename[256];
- char *p;
+ char cheats_filename[256];
+ char *p;
- s32 file_size = load_gamepak_raw(name);
+ s32 file_size = load_gamepak_raw(name);
- // A dumb April fool's joke was here once :o
+ if(file_size == -1)
+ return -1;
- if(file_size != -1)
- {
- gamepak_size = (file_size + 0x7FFF) & ~0x7FFF;
+ gamepak_size = (file_size + 0x7FFF) & ~0x7FFF;
- strncpy(gamepak_filename, name, sizeof(gamepak_filename));
- gamepak_filename[sizeof(gamepak_filename) - 1] = 0;
+ strncpy(gamepak_filename, name, sizeof(gamepak_filename));
+ gamepak_filename[sizeof(gamepak_filename) - 1] = 0;
- p = strrchr(gamepak_filename, PATH_SEPARATOR_CHAR);
- if (!p)
+ p = strrchr(gamepak_filename, PATH_SEPARATOR_CHAR);
+ if (!p)
p = gamepak_filename;
- snprintf(backup_filename, sizeof(backup_filename), "%s/%s", save_path, p);
- p = strrchr(backup_filename, '.');
- if (p)
+ snprintf(backup_filename, sizeof(backup_filename), "%s/%s", save_path, p);
+ p = strrchr(backup_filename, '.');
+ if (p)
strcpy(p, ".sav");
- load_backup(backup_filename);
+ load_backup(backup_filename);
- memcpy(gamepak_title, gamepak_rom + 0xA0, 12);
- memcpy(gamepak_code, gamepak_rom + 0xAC, 4);
- memcpy(gamepak_maker, gamepak_rom + 0xB0, 2);
- gamepak_title[12] = 0;
- gamepak_code[4] = 0;
- gamepak_maker[2] = 0;
+ memcpy(gamepak_title, gamepak_rom + 0xA0, 12);
+ memcpy(gamepak_code, gamepak_rom + 0xAC, 4);
+ memcpy(gamepak_maker, gamepak_rom + 0xB0, 2);
+ gamepak_title[12] = 0;
+ gamepak_code[4] = 0;
+ gamepak_maker[2] = 0;
- load_game_config(gamepak_title, gamepak_code, gamepak_maker);
+ load_game_config(gamepak_title, gamepak_code, gamepak_maker);
- change_ext(gamepak_filename, cheats_filename, ".cht");
- add_cheats(cheats_filename);
+ change_ext(gamepak_filename, cheats_filename, ".cht");
+ add_cheats(cheats_filename);
- return 0;
- }
-
- return -1;
+ return 0;
}
s32 load_bios(char *name)
diff --git a/gba_memory.h b/gba_memory.h
index cdbf16b..be9dc48 100644
--- a/gba_memory.h
+++ b/gba_memory.h
@@ -20,6 +20,8 @@
#ifndef MEMORY_H
#define MEMORY_H
+#include "libretro.h"
+
typedef enum
{
DMA_START_IMMEDIATELY,
@@ -175,7 +177,7 @@ extern char gamepak_filename[512];
cpu_alert_type dma_transfer(dma_transfer_type *dma);
u8 *memory_region(u32 address, u32 *memory_limit);
-u32 load_gamepak(const char *name);
+u32 load_gamepak(const struct retro_game_info* info, const char *name);
u32 load_backup(char *name);
s32 load_bios(char *name);
void update_backup(void);
diff --git a/libretro.c b/libretro.c
index 1ee6dd7..c7f2cd7 100644
--- a/libretro.c
+++ b/libretro.c
@@ -320,7 +320,7 @@ bool retro_load_game(const struct retro_game_info* info)
gamepak_filename[0] = 0;
- if (load_gamepak(info->path) != 0)
+ if (load_gamepak(info, info->path) != 0)
{
error_msg("Could not load the game file.");
return false;