Change load_gamepak signature
This commit is contained in:
parent
9fe97ba148
commit
ba834beeb1
3 changed files with 29 additions and 31 deletions
54
gba_memory.c
54
gba_memory.c
|
@ -2388,49 +2388,45 @@ char gamepak_code[5];
|
||||||
char gamepak_maker[3];
|
char gamepak_maker[3];
|
||||||
char gamepak_filename[512];
|
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 cheats_filename[256];
|
||||||
char *p;
|
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));
|
strncpy(gamepak_filename, name, sizeof(gamepak_filename));
|
||||||
gamepak_filename[sizeof(gamepak_filename) - 1] = 0;
|
gamepak_filename[sizeof(gamepak_filename) - 1] = 0;
|
||||||
|
|
||||||
p = strrchr(gamepak_filename, PATH_SEPARATOR_CHAR);
|
p = strrchr(gamepak_filename, PATH_SEPARATOR_CHAR);
|
||||||
if (!p)
|
if (!p)
|
||||||
p = gamepak_filename;
|
p = gamepak_filename;
|
||||||
|
|
||||||
snprintf(backup_filename, sizeof(backup_filename), "%s/%s", save_path, p);
|
snprintf(backup_filename, sizeof(backup_filename), "%s/%s", save_path, p);
|
||||||
p = strrchr(backup_filename, '.');
|
p = strrchr(backup_filename, '.');
|
||||||
if (p)
|
if (p)
|
||||||
strcpy(p, ".sav");
|
strcpy(p, ".sav");
|
||||||
|
|
||||||
load_backup(backup_filename);
|
load_backup(backup_filename);
|
||||||
|
|
||||||
memcpy(gamepak_title, gamepak_rom + 0xA0, 12);
|
memcpy(gamepak_title, gamepak_rom + 0xA0, 12);
|
||||||
memcpy(gamepak_code, gamepak_rom + 0xAC, 4);
|
memcpy(gamepak_code, gamepak_rom + 0xAC, 4);
|
||||||
memcpy(gamepak_maker, gamepak_rom + 0xB0, 2);
|
memcpy(gamepak_maker, gamepak_rom + 0xB0, 2);
|
||||||
gamepak_title[12] = 0;
|
gamepak_title[12] = 0;
|
||||||
gamepak_code[4] = 0;
|
gamepak_code[4] = 0;
|
||||||
gamepak_maker[2] = 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");
|
change_ext(gamepak_filename, cheats_filename, ".cht");
|
||||||
add_cheats(cheats_filename);
|
add_cheats(cheats_filename);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 load_bios(char *name)
|
s32 load_bios(char *name)
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
#ifndef MEMORY_H
|
#ifndef MEMORY_H
|
||||||
#define MEMORY_H
|
#define MEMORY_H
|
||||||
|
|
||||||
|
#include "libretro.h"
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
DMA_START_IMMEDIATELY,
|
DMA_START_IMMEDIATELY,
|
||||||
|
@ -175,7 +177,7 @@ extern char gamepak_filename[512];
|
||||||
|
|
||||||
cpu_alert_type dma_transfer(dma_transfer_type *dma);
|
cpu_alert_type dma_transfer(dma_transfer_type *dma);
|
||||||
u8 *memory_region(u32 address, u32 *memory_limit);
|
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);
|
u32 load_backup(char *name);
|
||||||
s32 load_bios(char *name);
|
s32 load_bios(char *name);
|
||||||
void update_backup(void);
|
void update_backup(void);
|
||||||
|
|
|
@ -320,7 +320,7 @@ bool retro_load_game(const struct retro_game_info* info)
|
||||||
|
|
||||||
gamepak_filename[0] = 0;
|
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.");
|
error_msg("Could not load the game file.");
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue