summaryrefslogtreecommitdiff
path: root/memory.c
diff options
context:
space:
mode:
authorTwinaphex2014-12-09 13:28:17 +0100
committerTwinaphex2014-12-09 13:28:17 +0100
commit988c2e2655c7c1f724ba727f008d84e3faa6cd24 (patch)
treeda7bf131f33b9ae16d2a93a0a7615a3c0b9c7535 /memory.c
parent7bb77f4fc090cadc23c3e05998ccebac7156e3cf (diff)
parente2d6ea9082a5ff977f834eda0bbb2362397422df (diff)
downloadpicogpsp-988c2e2655c7c1f724ba727f008d84e3faa6cd24.tar.gz
picogpsp-988c2e2655c7c1f724ba727f008d84e3faa6cd24.tar.bz2
picogpsp-988c2e2655c7c1f724ba727f008d84e3faa6cd24.zip
Merge pull request #2 from aliaspider/master
initial port of gpsp to libretro.
Diffstat (limited to 'memory.c')
-rw-r--r--memory.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/memory.c b/memory.c
index 5e5752a..d1966d3 100644
--- a/memory.c
+++ b/memory.c
@@ -2115,7 +2115,7 @@ s32 load_game_config(char *gamepak_title, char *gamepak_code, char *gamepak_make
return -1;
}
-s32 load_gamepak_raw(char *name)
+s32 load_gamepak_raw(const char *name)
{
file_open(gamepak_file, name, read);
@@ -2160,7 +2160,7 @@ char gamepak_code[5];
char gamepak_maker[3];
char gamepak_filename[512];
-u32 load_gamepak(char *name)
+u32 load_gamepak(const char *name)
{
char *dot_position = strrchr(name, '.');
s32 file_size;
@@ -2197,7 +2197,9 @@ u32 load_gamepak(char *name)
gamepak_maker[2] = 0;
load_game_config(gamepak_title, gamepak_code, gamepak_maker);
+#ifndef __LIBRETRO__
load_game_config_file();
+#endif
change_ext(gamepak_filename, cheats_filename, ".cht");
add_cheats(cheats_filename);
@@ -3119,6 +3121,26 @@ void init_memory()
bios_read_protect = 0xe129f000;
}
+void memory_term(void)
+{
+ if (file_check_valid(gamepak_file_large))
+ {
+ file_close(gamepak_file_large);
+ }
+
+ if (gamepak_memory_map != NULL)
+ {
+ free(gamepak_memory_map);
+ gamepak_memory_map = NULL;
+ }
+
+ if (gamepak_rom != NULL)
+ {
+ free(gamepak_rom);
+ gamepak_rom = NULL;
+ }
+}
+
void bios_region_read_allow()
{
memory_map_read[0] = bios_rom;
@@ -3138,7 +3160,7 @@ void bios_region_read_protect()
sound_##type##_savestate(savestate_file); \
video_##type##_savestate(savestate_file) \
-void load_state(char *savestate_filename)
+void gba_load_state(char *savestate_filename)
{
file_open(savestate_file, savestate_filename, read);
if(file_check_valid(savestate_file))
@@ -3174,7 +3196,7 @@ void load_state(char *savestate_filename)
{
reset_gba();
// Okay, so this takes a while, but for now it works.
- load_state(savestate_filename);
+ gba_load_state(savestate_filename);
}
else
{
@@ -3207,7 +3229,7 @@ void load_state(char *savestate_filename)
u8 savestate_write_buffer[506947];
u8 *write_mem_ptr;
-void save_state(char *savestate_filename, u16 *screen_capture)
+void gba_save_state(char *savestate_filename, u16 *screen_capture)
{
write_mem_ptr = savestate_write_buffer;
file_open(savestate_file, savestate_filename, write);