| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright 2014 Citra Emulator Project
- // Licensed under GPLv2
- // Refer to the license.txt file included.
- #include <thread>
- #include "common/common.h"
- #include "common/logging/text_formatter.h"
- #include "common/logging/backend.h"
- #include "common/scope_exit.h"
- #include "core/settings.h"
- #include "core/system.h"
- #include "core/core.h"
- #include "core/loader/loader.h"
- #include "citra/config.h"
- #include "citra/emu_window/emu_window_glfw.h"
- /// Application entry point
- int __cdecl main(int argc, char **argv) {
- std::shared_ptr<Log::Logger> logger = Log::InitGlobalLogger();
- std::thread logging_thread(Log::TextLoggingLoop, logger);
- SCOPE_EXIT({
- logger->Close();
- logging_thread.join();
- });
- if (argc < 2) {
- LOG_CRITICAL(Frontend, "Failed to load ROM: No ROM specified");
- return -1;
- }
- Config config;
- std::string boot_filename = argv[1];
- EmuWindow_GLFW* emu_window = new EmuWindow_GLFW;
- System::Init(emu_window);
- Loader::ResultStatus load_result = Loader::LoadFile(boot_filename);
- if (Loader::ResultStatus::Success != load_result) {
- LOG_CRITICAL(Frontend, "Failed to load ROM (Error %i)!", load_result);
- return -1;
- }
- while (emu_window->IsOpen()) {
- Core::RunLoop();
- }
- delete emu_window;
- return 0;
- }
|