Search
lxdream.org :: lxdream/src/dreamcast.c :: diff
lxdream 0.9.1
released Jun 29
Download Now
filename src/dreamcast.c
changeset 1072:d82e04e6d497
prev1067:d3c00ffccfcd
next1100:50e702af9373
author nkeynes
date Fri Dec 04 08:44:02 2009 +1000 (14 years ago)
permissions -rw-r--r--
last change Fix out-of-tree generation of mac_keymap.h
file annotate diff log raw
1.1 --- a/src/dreamcast.c Sun Jul 05 13:54:48 2009 +1000
1.2 +++ b/src/dreamcast.c Fri Dec 04 08:44:02 2009 +1000
1.3 @@ -126,17 +126,39 @@
1.4 g_free(flash_path);
1.5 }
1.6
1.7 -void dreamcast_config_changed(void)
1.8 +gboolean dreamcast_load_bios( const gchar *filename )
1.9 {
1.10 - char *bios_path = lxdream_get_global_config_path_value(CONFIG_BIOS_PATH);
1.11 - char *flash_path = lxdream_get_global_config_path_value(CONFIG_FLASH_PATH);
1.12 - dreamcast_has_bios = mem_load_rom( dc_boot_rom, bios_path, 2 MB, 0x89f2b1a1 );
1.13 - if( flash_path != NULL && flash_path[0] != '\0' ) {
1.14 - mem_load_block( flash_path, 0x00200000, 0x00020000 );
1.15 + dreamcast_has_bios = mem_load_rom( dc_boot_rom, filename, 2 MB, 0x89f2b1a1 );
1.16 + return dreamcast_has_bios;
1.17 +}
1.18 +
1.19 +gboolean dreamcast_load_flash( const gchar *filename )
1.20 +{
1.21 + if( filename != NULL && filename[0] != '\0' ) {
1.22 + return mem_load_block( filename, 0x00200000, 0x00020000 ) == 0;
1.23 }
1.24 - g_free(bios_path);
1.25 - g_free(flash_path);
1.26 + return FALSE;
1.27 +}
1.28 +
1.29 +
1.30 +gboolean dreamcast_config_changed(void *data, struct lxdream_config_group *group, unsigned item,
1.31 + const gchar *oldval, const gchar *newval)
1.32 +{
1.33 + gchar *tmp;
1.34 + switch(item) {
1.35 + case CONFIG_BIOS_PATH:
1.36 + tmp = get_expanded_path(newval);
1.37 + dreamcast_load_bios(tmp);
1.38 + g_free(tmp);
1.39 + break;
1.40 + case CONFIG_FLASH_PATH:
1.41 + tmp = get_expanded_path(newval);
1.42 + dreamcast_load_flash(tmp);
1.43 + g_free(tmp);
1.44 + break;
1.45 + }
1.46 reset_gui_paths();
1.47 + return TRUE;
1.48 }
1.49
1.50 void dreamcast_save_flash()
.