void fs_emu_init_2(int options) { fs_log("fs_emu_init_2\n"); #ifdef USE_SDL fs_emu_log("initializing SDL\n"); SDL_Init(SDL_INIT_EVERYTHING); #endif fs_emu_hud_init_after_config(); fs_emu_theme_init(); #ifdef WITH_NETPLAY //g_random_set_seed(time(NULL)); fs_emu_netplay_init(); #endif #ifdef FS_EMU_DRIVERS fs_emu_video_init(); #else if (options & FS_EMU_INIT_VIDEO) { fs_emu_video_init(); } fs_emu_init_render(); #endif // these must (currently) be called after renderer has been initialized, // due to a mutex that must be initialized first fs_emu_set_overlay_state(FS_EMU_TOP_LEFT_OVERLAY, 1); fs_emu_set_overlay_state(FS_EMU_TOP_RIGHT_OVERLAY, 1); fs_emu_set_overlay_state(FS_EMU_BOTTOM_RIGHT_OVERLAY, 1); fs_emu_set_overlay_state(FS_EMU_BOTTOM_LEFT_OVERLAY, 1); // #ifdef FS_EMU_DRIVERS_XXX // #else fs_emu_log("calling fs_ml_init_2\n"); fs_ml_init_2(); fs_ml_set_quit_function(on_quit); fs_emu_log("read config\n"); read_config(); // #endif if (options & FS_EMU_INIT_INPUT) { fs_emu_input_init(); #ifdef FS_EMU_DRIVERS fs_emu_input_init_2(); #endif } if (options & FS_EMU_INIT_AUDIO) { fs_emu_audio_init(); } #ifdef FS_EMU_DRIVERS #else fs_ml_video_set_update_function(fs_emu_video_update_function); fs_ml_video_set_render_function(fs_emu_video_render_function); fs_ml_video_set_post_render_function(fs_emu_video_after_update); if (options & FS_EMU_INIT_VIDEO) { char *title; if (fs_emu_get_title()) { title = g_strdup(fs_emu_get_title()); } else { title = g_strdup("Emulator"); } if (fs_emu_get_sub_title()) { char *temp = title; // using 'MIDDLE DOT' (U+00B7) in UTF-8 format as separator title = g_strdup_printf("%s %c%c %s", temp, 0xC2, 0xB7, fs_emu_get_sub_title()); free(temp); } fs_ml_video_create_window(title); free(title); } #endif }
void fs_uae_configure_amiga_model() { char *path; fs_emu_log("fs_uae_configure_amiga_model\n"); fs_uae_init_configs(); //amiga_set_option("kickstart_rom_file", "aa:AROS"); if (fs_config_get_boolean("ntsc_mode") == 1) { fs_emu_log("enabling NTSC mode (60Hz)\n"); g_fs_uae_ntsc_mode = 1; fs_emu_set_video_frame_rate(60); } else { fs_emu_log("using PAL mode (50Hz)\n"); fs_emu_set_video_frame_rate(50); } g_fs_uae_amiga_config = -1; const char *config_model = fs_config_get_const_string("amiga_model"); if (config_model == NULL) { config_model = fs_config_get_const_string("model"); } if (config_model) { int i = 0; for (amiga_config* c = g_fs_uae_amiga_configs; c->id; c++, i++) { if (fs_ascii_strcasecmp(config_model, c->id) == 0) { fs_emu_log("config match for \"%s\"\n", c->id); g_fs_uae_amiga_config = i; break; } } } if (g_fs_uae_amiga_config == -1) { fs_emu_log("WARNING: unknown amiga config specified, using A500\n"); g_fs_uae_amiga_config = CONFIG_A500; } amiga_config *c = g_fs_uae_amiga_configs + g_fs_uae_amiga_config; g_fs_uae_amiga_model = c->model; g_accuracy = fs_config_get_int_clamped("accuracy", -2, 1); if (c->no_accuracy_adjustment) { fs_emu_log("ignoring accuracy for this model\n"); g_accuracy = 1; } if (g_accuracy == FS_CONFIG_NONE) { g_accuracy = 1; } if (g_accuracy <= c->fast_on_accuracy_level) { fs_emu_log("this model / accuracy combination is a " "\"fastest possibly\" mode\n"); g_fs_uae_fastest_possible = 1; } if (!fs_emu_get_title()) { fs_emu_set_title(c->name); } if (!fs_emu_get_sub_title()) { fs_emu_set_sub_title("FS-UAE"); } }