MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent) ,_recentFiles() ,_ui(new Ui::MainWindow()) ,_console(0) ,_emulator(new Hackathon::Emulator()) ,_program(0) { _ui->setupUi(this); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); QWidget* widget = _ui->containerWidget; QHBoxLayout* layout = new QHBoxLayout(); widget->setLayout(layout); _console = new Hackathon::FastConsole(40, 25); layout->addWidget(_console); Hackathon::KeyboardWatcher* watcher = new Hackathon::KeyboardWatcher(); watcher->setParent(this); _console->installEventFilter(watcher); connect(&_emulator->Memory(), SIGNAL(signalSetClearColor(QColor)), _console, SLOT(slotSetClearColor(QColor)), Qt::QueuedConnection); connect(&_emulator->Memory(), SIGNAL(signalSetChar(int,int,char,QColor,QColor)), _console, SLOT(SetChar(int,int,char,QColor,QColor)), Qt::QueuedConnection); connect(this, SIGNAL(signalSetMemory(ushort,quint8)), &_emulator->Memory(), SLOT(slotSetMemory(ushort,quint8)), Qt::QueuedConnection); connect(watcher, SIGNAL(signalKeyPressed(int)), _emulator, SLOT(KeyPressed(int)), Qt::QueuedConnection); connect(this, SIGNAL(RunEmulator()), _emulator, SLOT(Run()), Qt::QueuedConnection); LoadRecentFiles(); }
int main(int argc, char **argv ) { char path[MAX_PATH]; BurnLibInit(); // init Burn core BurnPathsInit(); // init paths or create them if needed /* if (argc < 2) { int c; printf ("Usage: %s <path to rom><shortname>.zip\n" " ie: %s ./uopoko.zip\n" " Note: Path and .zip extension are mandatory.\n\n", argv[0], argv[0]); printf ("Supported (but not necessarily working) roms:\n\n"); for(nBurnDrvSelect[0] = 0; nBurnDrvSelect[0] < nBurnDrvCount; nBurnDrvSelect[0]++) { nBurnDrvActive = nBurnDrvSelect[0]; printf("%-20s ", BurnDrvGetTextA(DRV_NAME)); c++; if(c == 3) { c = 0; printf("\n"); } } printf ("\n\n"); CreateCapexLists(); // generate rominfo.fba and zipname.fba return 0; } */ ConfigGameDefault(); // alter cfg if any param is given if (argc >= 2) parse_cmd(argc, argv, path); ConfigAppLoad(); if((SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE)) < 0) { printf("Sdl failed to init\n"); exit(0); } if (argc < 2) GuiRun(); else { int drv; if((drv = FindDrvByFileName(path)) >= 0) RunEmulator(drv); } BurnLibExit(); if (argc < 2) ConfigAppSave(); SDL_Quit(); return 0; }
void DisplayMenu() { int i; pl_menu_item *item; /* Menu loop */ do { ResumeEmulation = 0; /* Set normal clock frequency */ pl_psp_set_clock_freq(222); /* Set buttons to autorepeat */ pspCtrlSetPollingMode(PSP_CTRL_AUTOREPEAT); do { /* Display appropriate tab */ switch (TabIndex) { case TAB_STATE: DisplayStateTab(); break; case TAB_CONTROL: /* Load current button mappings */ for (item = ControlUiMenu.Menu.items, i = 0; item; item = item->next, i++) pl_menu_select_option_by_value(item, (void*)ActiveConfig.ButtonMap[i]); ControlsModified = 0; pspUiOpenMenu(&ControlUiMenu, NULL); if (ControlsModified) SaveButtonConfig(); break; case TAB_QUICKLOAD: pspUiOpenBrowser(&QuickloadBrowser, (GAME_LOADED) ? CURRENT_GAME : GamePath); break; case TAB_SYSTEM: item = pl_menu_find_item_by_id(&SystemUiMenu.Menu, SYSTEM_VERT_STRIP); pl_menu_select_option_by_value(item, (void*)Options.VertStrip); pspUiOpenMenu(&SystemUiMenu, NULL); break; case TAB_OPTION: /* Init menu options */ item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_DISPLAY_MODE); pl_menu_select_option_by_value(item, (void*)Options.DisplayMode); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_SYNC_FREQ); pl_menu_select_option_by_value(item, (void*)Options.UpdateFreq); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_FRAMESKIP); pl_menu_select_option_by_value(item, (void*)(int)Options.Frameskip); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_VSYNC); pl_menu_select_option_by_value(item, (void*)Options.VSync); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_CLOCK_FREQ); pl_menu_select_option_by_value(item, (void*)Options.ClockFreq); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_SHOW_FPS); pl_menu_select_option_by_value(item, (void*)Options.ShowFps); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_CONTROL_MODE); pl_menu_select_option_by_value(item, (void*)Options.ControlMode); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_ANIMATE); pl_menu_select_option_by_value(item, (void*)UiMetric.Animate); item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_AUTOFIRE); pl_menu_select_option_by_value(item, (void*)Options.AutoFire); if ((item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_REWIND_SAVE_RATE))) pl_menu_select_option_by_value(item, (void*)Options.RewindSaveRate); if ((item = pl_menu_find_item_by_id(&OptionUiMenu.Menu, OPTION_REWIND_REPLAY_DELAY))) pl_menu_select_option_by_value(item, (void*)Options.RewindReplayDelay); pspUiOpenMenu(&OptionUiMenu, NULL); break; case TAB_ABOUT: pspUiSplashScreen(&SplashScreen); break; } } while (!ExitPSP && !ResumeEmulation); if (!ExitPSP) { /* Set clock frequency during emulation */ pl_psp_set_clock_freq(Options.ClockFreq); /* Set buttons to normal mode */ pspCtrlSetPollingMode(PSP_CTRL_NORMAL); /* Resume emulation */ if (ResumeEmulation) { if (UiMetric.Animate) pspUiFadeout(); RunEmulator(); if (UiMetric.Animate) pspUiFadeout(); } } } while (!ExitPSP); }