nkeynes@30: /** nkeynes@68: * $Id: main.c,v 1.10 2006-01-10 13:57:54 nkeynes Exp $ nkeynes@30: * nkeynes@30: * Main program, initializes dreamcast and gui, then passes control off to nkeynes@30: * the gtk main loop (currently). nkeynes@30: * nkeynes@30: * FIXME: Remove explicit GTK/Gnome references from this file nkeynes@30: * nkeynes@30: * Copyright (c) 2005 Nathan Keynes. nkeynes@30: * nkeynes@30: * This program is free software; you can redistribute it and/or modify nkeynes@30: * it under the terms of the GNU General Public License as published by nkeynes@30: * the Free Software Foundation; either version 2 of the License, or nkeynes@30: * (at your option) any later version. nkeynes@30: * nkeynes@30: * This program is distributed in the hope that it will be useful, nkeynes@30: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@30: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@30: * GNU General Public License for more details. nkeynes@1: */ nkeynes@1: nkeynes@1: #ifdef HAVE_CONFIG_H nkeynes@1: # include nkeynes@1: #endif nkeynes@1: nkeynes@68: #include nkeynes@1: #include nkeynes@25: #include "gui/gui.h" nkeynes@27: #include "dream.h" nkeynes@27: #include "dreamcast.h" nkeynes@11: nkeynes@68: char *option_list = "a:A:V:p"; nkeynes@68: char *aica_program = NULL; nkeynes@68: gboolean start_immediately = FALSE; nkeynes@68: nkeynes@30: int main (int argc, char *argv[]) nkeynes@1: { nkeynes@68: int opt; nkeynes@1: #ifdef ENABLE_NLS nkeynes@68: bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR); nkeynes@68: textdomain (PACKAGE); nkeynes@1: #endif nkeynes@68: nkeynes@68: while( (opt = getopt( argc, argv, option_list )) != -1 ) { nkeynes@68: switch( opt ) { nkeynes@68: case 'a': /* AICA only mode - argument is an AICA program */ nkeynes@68: aica_program = optarg; nkeynes@68: break; nkeynes@68: case 'A': /* Audio driver */ nkeynes@68: break; nkeynes@68: case 'V': /* Video driver */ nkeynes@68: break; nkeynes@68: case 'p': /* Start immediately */ nkeynes@68: start_immediately = TRUE; nkeynes@68: } nkeynes@68: } nkeynes@30: nkeynes@68: if( aica_program == NULL ) { nkeynes@68: dreamcast_init(); nkeynes@68: gnome_init ("dreamon", VERSION, argc, argv); nkeynes@68: video_open(); nkeynes@68: dreamcast_register_module( >k_gui_module ); nkeynes@68: } else { nkeynes@68: dreamcast_configure_aica_only(); nkeynes@68: mem_load_block( aica_program, 0x00800000, 2048*1024 ); nkeynes@68: gnome_init ("dreamon", VERSION, argc, argv); nkeynes@68: dreamcast_register_module( >k_gui_module ); nkeynes@68: set_disassembly_cpu( main_debug, "ARM7" ); nkeynes@68: } nkeynes@1: nkeynes@68: INFO( "DreamOn! ready..." ); nkeynes@68: if( start_immediately ) nkeynes@68: dreamcast_run(); nkeynes@68: gtk_main (); nkeynes@68: return 0; nkeynes@1: } nkeynes@1: