From 86495a83c16538ddcab7da4ea68de38ee2d1837e Mon Sep 17 00:00:00 2001
From: ShizZy
Date: Wed, 4 Sep 2013 22:09:15 -0400
Subject: various fixes to be able to build project
---
src/akiru/akiru.rc | Bin 3284 -> 3144 bytes
src/akiru/akiru.vcxproj | 44 ++++-----
src/akiru/akiru.vcxproj.filters | 19 ++--
src/akiru/src/akiru.cpp | 135 +++++++++++-----------------
src/akiru/src/emuwindow/emu_window_glfw.cpp | 100 +++++++++++++++++++++
src/akiru/src/emuwindow/emu_window_glfw.h | 56 ++++++++++++
src/akiru/src/emuwindow/emuwindow_glfw.cpp | 100 ---------------------
src/akiru/src/emuwindow/emuwindow_glfw.h | 56 ------------
src/common/src/emu_window.h | 30 +++----
src/core/core.vcxproj | 35 ++++----
10 files changed, 268 insertions(+), 307 deletions(-)
create mode 100644 src/akiru/src/emuwindow/emu_window_glfw.cpp
create mode 100644 src/akiru/src/emuwindow/emu_window_glfw.h
delete mode 100644 src/akiru/src/emuwindow/emuwindow_glfw.cpp
delete mode 100644 src/akiru/src/emuwindow/emuwindow_glfw.h
(limited to 'src')
diff --git a/src/akiru/akiru.rc b/src/akiru/akiru.rc
index db4fc80b9..dd5241bdf 100644
Binary files a/src/akiru/akiru.rc and b/src/akiru/akiru.rc differ
diff --git a/src/akiru/akiru.vcxproj b/src/akiru/akiru.vcxproj
index f5ab86719..f74948853 100644
--- a/src/akiru/akiru.vcxproj
+++ b/src/akiru/akiru.vcxproj
@@ -46,35 +46,35 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -190,13 +190,13 @@
-
+
-
+
diff --git a/src/akiru/akiru.vcxproj.filters b/src/akiru/akiru.vcxproj.filters
index 2fc1128af..a0cff2548 100644
--- a/src/akiru/akiru.vcxproj.filters
+++ b/src/akiru/akiru.vcxproj.filters
@@ -2,32 +2,23 @@
-
- emuwindow
-
-
- emuwindow
+
+ emu_window
-
- emuwindow
-
-
- emuwindow
+
+ emu_window
-
-
-
-
+
{e3161526-9f53-4670-8dae-2be81ff01bc2}
diff --git a/src/akiru/src/akiru.cpp b/src/akiru/src/akiru.cpp
index 0d15c5b20..bb69cf1b1 100644
--- a/src/akiru/src/akiru.cpp
+++ b/src/akiru/src/akiru.cpp
@@ -1,9 +1,9 @@
-/*!
+/**
* Copyright (C) 2013 Akiru Emulator
*
- * @file akiry.cpp
+ * @file akiru.cpp
* @author ShizZy
- * @date 2012-02-11
+ * @date 2013-09-04
* @brief Main entry point
*
* @section LICENSE
@@ -23,102 +23,73 @@
*/
#include "common.h"
-#include "platform.h"
-#if EMU_PLATFORM == PLATFORM_LINUX
-#include
-#endif
+//#if EMU_PLATFORM == PLATFORM_LINUX
+//#include
+//#endif
-#include "config.h"
-#include "xml.h"
-#include "x86_utils.h"
-
-//#include "core.h"
-//#include "dvd/loader.h"
-//#include "powerpc/cpu_core.h"
-//#include "hw/hw.h"
-//#include "video_core.h"
-
-#include "emuwindow/emuwindow_glfw.h"
+#include "emu_window/emu_window_glfw.h"
#include "akiru.h"
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// This is needed to fix SDL in certain build environments
-#ifdef main
-#undef main
-#endif
-
//#define PLAY_FIFO_RECORDING
/// Application entry point
int __cdecl main(int argc, char **argv) {
u32 tight_loop;
- LOG_NOTICE(TMASTER, APP_NAME " starting...\n");
+ printf("akiru starting...\n");
- char program_dir[MAX_PATH];
- _getcwd(program_dir, MAX_PATH-1);
- size_t cwd_len = strlen(program_dir);
- program_dir[cwd_len] = '/';
- program_dir[cwd_len+1] = '\0';
+ //char program_dir[MAX_PATH];
+ //_getcwd(program_dir, MAX_PATH-1);
+ //size_t cwd_len = strlen(program_dir);
+ //program_dir[cwd_len] = '/';
+ //program_dir[cwd_len+1] = '\0';
- common::ConfigManager config_manager;
- config_manager.set_program_dir(program_dir, MAX_PATH);
- config_manager.ReloadConfig(NULL);
- core::SetConfigManager(&config_manager);
+ //common::ConfigManager config_manager;
+ //config_manager.set_program_dir(program_dir, MAX_PATH);
+ //config_manager.ReloadConfig(NULL);
+ //core::SetConfigManager(&config_manager);
EmuWindow_GLFW* emu_window = new EmuWindow_GLFW;
- if (E_OK != core::Init(emu_window)) {
- LOG_ERROR(TMASTER, "core initialization failed, exiting...");
- core::Kill();
- exit(1);
- }
-
-#ifndef PLAY_FIFO_RECORDING
- // Load a game or die...
- if (E_OK == dvd::LoadBootableFile(common::g_config->default_boot_file())) {
- if (common::g_config->enable_auto_boot()) {
- core::Start();
- } else {
- LOG_ERROR(TMASTER, "Autoboot required in no-GUI mode... Exiting!\n");
- }
- } else {
- LOG_ERROR(TMASTER, "Failed to load a bootable file... Exiting!\n");
- exit(E_ERR);
- }
- // run the game
- while(core::SYS_DIE != core::g_state) {
- if (core::SYS_RUNNING == core::g_state) {
- if(!(cpu->is_on)) {
- cpu->Start(); // Initialize and start CPU.
- } else {
- for(tight_loop = 0; tight_loop < 10000; ++tight_loop) {
- cpu->execStep();
- }
- }
- } else if (core::SYS_HALTED == core::g_state) {
- core::Stop();
- }
- }
- core::Kill();
-#else
- // load fifo log and replay it
-
- // TODO: Restructure initialization process - Fix Flipper_Open being called from dvd loaders (wtf?)
- Flipper_Open();
- video_core::Start(emu_window);
- core::SetState(core::SYS_RUNNING);
-
- fifo_player::FPFile file;
- fifo_player::Load("/home/tony/20_frames.gff", file);
- fifo_player::PlayFile(file);
+ //if (E_OK != core::Init(emu_window)) {
+ // LOG_ERROR(TMASTER, "core initialization failed, exiting...");
+ // core::Kill();
+ // exit(1);
+ //}
+
+ //// Load a game or die...
+ //if (E_OK == dvd::LoadBootableFile(common::g_config->default_boot_file())) {
+ // if (common::g_config->enable_auto_boot()) {
+ // core::Start();
+ // } else {
+ // LOG_ERROR(TMASTER, "Autoboot required in no-GUI mode... Exiting!\n");
+ // }
+ //} else {
+ // LOG_ERROR(TMASTER, "Failed to load a bootable file... Exiting!\n");
+ // exit(E_ERR);
+ //}
+ //// run the game
+ //while(core::SYS_DIE != core::g_state) {
+ // if (core::SYS_RUNNING == core::g_state) {
+ // if(!(cpu->is_on)) {
+ // cpu->Start(); // Initialize and start CPU.
+ // } else {
+ // for(tight_loop = 0; tight_loop < 10000; ++tight_loop) {
+ // cpu->execStep();
+ // }
+ // }
+ // } else if (core::SYS_HALTED == core::g_state) {
+ // core::Stop();
+ // }
+ //}
+ //core::Kill();
+
+ while (1) {
+ }
- // TODO: Wait for video core to finish - PlayFile should handle this
- while (1);
-#endif
delete emu_window;
- return E_OK;
+ return 0;
}
diff --git a/src/akiru/src/emuwindow/emu_window_glfw.cpp b/src/akiru/src/emuwindow/emu_window_glfw.cpp
new file mode 100644
index 000000000..884c10ad0
--- /dev/null
+++ b/src/akiru/src/emuwindow/emu_window_glfw.cpp
@@ -0,0 +1,100 @@
+/**
+ * Copyright (C) 2005-2012 Gekko Emulator
+ *
+ * @file emuwindow_glfw.h
+ * @author ShizZy
+ * @date 2012-04-20
+ * @brief Implementation implementation of EmuWindow class for GLFW
+ *
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details at
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Official project repository can be found at:
+ * http://code.google.com/p/gekko-gc-emu/
+ */
+
+#include "common.h"
+#include "video_core.h"
+#include "emuwindow_glfw.h"
+#include "gc_controller.h"
+#include "keyboard_input/keyboard_input.h"
+
+static void OnKeyEvent(GLFWwindow win, int key, int action) {
+ EmuWindow_GLFW* emuwin = (EmuWindow_GLFW*)glfwGetWindowUserPointer(win);
+ input_common::GCController::GCButtonState state;
+
+ if (action == GLFW_PRESS) {
+ state = input_common::GCController::PRESSED;
+ } else {
+ state = input_common::GCController::RELEASED;
+ }
+ for (int channel = 0; channel < 4 && emuwin->controller_interface(); ++channel) {
+ emuwin->controller_interface()->SetControllerStatus(channel, key, state);
+ }
+}
+
+static void OnWindowSizeEvent(GLFWwindow win, int width, int height) {
+ EmuWindow_GLFW* emuwin = (EmuWindow_GLFW*)glfwGetWindowUserPointer(win);
+ emuwin->set_client_area_width(width);
+ emuwin->set_client_area_height(height);
+}
+
+/// EmuWindow_GLFW constructor
+EmuWindow_GLFW::EmuWindow_GLFW() {
+ // Initialize the window
+ if(glfwInit() != GL_TRUE) {
+ LOG_ERROR(TVIDEO, "Failed to initialize GLFW! Exiting...");
+ exit(E_ERR);
+ }
+ glfwWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
+ glfwWindowHint(GLFW_OPENGL_VERSION_MINOR, 1);
+ render_window_ = glfwCreateWindow(640, 480, GLFW_WINDOWED, "gekko", 0);
+
+ // Setup callbacks
+ glfwSetWindowUserPointer(render_window_, this);
+ glfwSetKeyCallback(render_window_, OnKeyEvent);
+ glfwSetWindowSizeCallback(render_window_, OnWindowSizeEvent);
+
+ DoneCurrent();
+}
+
+/// EmuWindow_GLFW destructor
+EmuWindow_GLFW::~EmuWindow_GLFW() {
+ glfwTerminate();
+}
+
+/// Swap buffers to display the next frame
+void EmuWindow_GLFW::SwapBuffers() {
+ glfwSwapBuffers(render_window_);
+}
+
+/// Polls window events
+void EmuWindow_GLFW::PollEvents() {
+ // TODO(ShizZy): Does this belong here? This is a reasonable place to update the window title
+ // from the main thread, but this should probably be in an event handler...
+ static char title[128];
+ sprintf(title, "%s (FPS: %02.02f)", window_title_.c_str(),
+ video_core::g_renderer->current_fps());
+ glfwSetWindowTitle(render_window_, title);
+
+ glfwPollEvents();
+}
+
+/// Makes the GLFW OpenGL context current for the caller thread
+void EmuWindow_GLFW::MakeCurrent() {
+ glfwMakeContextCurrent(render_window_);
+}
+
+/// Releases (dunno if this is the "right" word) the GLFW context from the caller thread
+void EmuWindow_GLFW::DoneCurrent() {
+ glfwMakeContextCurrent(NULL);
+}
diff --git a/src/akiru/src/emuwindow/emu_window_glfw.h b/src/akiru/src/emuwindow/emu_window_glfw.h
new file mode 100644
index 000000000..1256cabe4
--- /dev/null
+++ b/src/akiru/src/emuwindow/emu_window_glfw.h
@@ -0,0 +1,56 @@
+/**
+ * Copyright (C) 2005-2012 Gekko Emulator
+ *
+ * @file emuwindow_glfw.h
+ * @author ShizZy
+ * @date 2012-04-20
+ * @brief Implementation implementation of EmuWindow class for GLFW
+ *
+ * @section LICENSE
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details at
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * Official project repository can be found at:
+ * http://code.google.com/p/gekko-gc-emu/
+ */
+
+#ifndef VIDEO_CORE_EMUWINDOW_GLFW_
+#define VIDEO_CORE_EMUWINDOW_GLFW_
+
+#include
+#include
+
+#include "video/emuwindow.h"
+
+class EmuWindow_GLFW : public EmuWindow {
+public:
+ EmuWindow_GLFW();
+ ~EmuWindow_GLFW();
+
+ /// Swap buffers to display the next frame
+ void SwapBuffers();
+
+ /// Polls window events
+ void PollEvents();
+
+ /// Makes the graphics context current for the caller thread
+ void MakeCurrent();
+
+ /// Releases (dunno if this is the "right" word) the GLFW context from the caller thread
+ void DoneCurrent();
+
+ GLFWwindow render_window_; ///< Internal GLFW render window
+
+private:
+
+};
+
+#endif // VIDEO_CORE_EMUWINDOW_GLFW_
diff --git a/src/akiru/src/emuwindow/emuwindow_glfw.cpp b/src/akiru/src/emuwindow/emuwindow_glfw.cpp
deleted file mode 100644
index 884c10ad0..000000000
--- a/src/akiru/src/emuwindow/emuwindow_glfw.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Copyright (C) 2005-2012 Gekko Emulator
- *
- * @file emuwindow_glfw.h
- * @author ShizZy
- * @date 2012-04-20
- * @brief Implementation implementation of EmuWindow class for GLFW
- *
- * @section LICENSE
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details at
- * http://www.gnu.org/copyleft/gpl.html
- *
- * Official project repository can be found at:
- * http://code.google.com/p/gekko-gc-emu/
- */
-
-#include "common.h"
-#include "video_core.h"
-#include "emuwindow_glfw.h"
-#include "gc_controller.h"
-#include "keyboard_input/keyboard_input.h"
-
-static void OnKeyEvent(GLFWwindow win, int key, int action) {
- EmuWindow_GLFW* emuwin = (EmuWindow_GLFW*)glfwGetWindowUserPointer(win);
- input_common::GCController::GCButtonState state;
-
- if (action == GLFW_PRESS) {
- state = input_common::GCController::PRESSED;
- } else {
- state = input_common::GCController::RELEASED;
- }
- for (int channel = 0; channel < 4 && emuwin->controller_interface(); ++channel) {
- emuwin->controller_interface()->SetControllerStatus(channel, key, state);
- }
-}
-
-static void OnWindowSizeEvent(GLFWwindow win, int width, int height) {
- EmuWindow_GLFW* emuwin = (EmuWindow_GLFW*)glfwGetWindowUserPointer(win);
- emuwin->set_client_area_width(width);
- emuwin->set_client_area_height(height);
-}
-
-/// EmuWindow_GLFW constructor
-EmuWindow_GLFW::EmuWindow_GLFW() {
- // Initialize the window
- if(glfwInit() != GL_TRUE) {
- LOG_ERROR(TVIDEO, "Failed to initialize GLFW! Exiting...");
- exit(E_ERR);
- }
- glfwWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
- glfwWindowHint(GLFW_OPENGL_VERSION_MINOR, 1);
- render_window_ = glfwCreateWindow(640, 480, GLFW_WINDOWED, "gekko", 0);
-
- // Setup callbacks
- glfwSetWindowUserPointer(render_window_, this);
- glfwSetKeyCallback(render_window_, OnKeyEvent);
- glfwSetWindowSizeCallback(render_window_, OnWindowSizeEvent);
-
- DoneCurrent();
-}
-
-/// EmuWindow_GLFW destructor
-EmuWindow_GLFW::~EmuWindow_GLFW() {
- glfwTerminate();
-}
-
-/// Swap buffers to display the next frame
-void EmuWindow_GLFW::SwapBuffers() {
- glfwSwapBuffers(render_window_);
-}
-
-/// Polls window events
-void EmuWindow_GLFW::PollEvents() {
- // TODO(ShizZy): Does this belong here? This is a reasonable place to update the window title
- // from the main thread, but this should probably be in an event handler...
- static char title[128];
- sprintf(title, "%s (FPS: %02.02f)", window_title_.c_str(),
- video_core::g_renderer->current_fps());
- glfwSetWindowTitle(render_window_, title);
-
- glfwPollEvents();
-}
-
-/// Makes the GLFW OpenGL context current for the caller thread
-void EmuWindow_GLFW::MakeCurrent() {
- glfwMakeContextCurrent(render_window_);
-}
-
-/// Releases (dunno if this is the "right" word) the GLFW context from the caller thread
-void EmuWindow_GLFW::DoneCurrent() {
- glfwMakeContextCurrent(NULL);
-}
diff --git a/src/akiru/src/emuwindow/emuwindow_glfw.h b/src/akiru/src/emuwindow/emuwindow_glfw.h
deleted file mode 100644
index 1256cabe4..000000000
--- a/src/akiru/src/emuwindow/emuwindow_glfw.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copyright (C) 2005-2012 Gekko Emulator
- *
- * @file emuwindow_glfw.h
- * @author ShizZy
- * @date 2012-04-20
- * @brief Implementation implementation of EmuWindow class for GLFW
- *
- * @section LICENSE
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details at
- * http://www.gnu.org/copyleft/gpl.html
- *
- * Official project repository can be found at:
- * http://code.google.com/p/gekko-gc-emu/
- */
-
-#ifndef VIDEO_CORE_EMUWINDOW_GLFW_
-#define VIDEO_CORE_EMUWINDOW_GLFW_
-
-#include
-#include
-
-#include "video/emuwindow.h"
-
-class EmuWindow_GLFW : public EmuWindow {
-public:
- EmuWindow_GLFW();
- ~EmuWindow_GLFW();
-
- /// Swap buffers to display the next frame
- void SwapBuffers();
-
- /// Polls window events
- void PollEvents();
-
- /// Makes the graphics context current for the caller thread
- void MakeCurrent();
-
- /// Releases (dunno if this is the "right" word) the GLFW context from the caller thread
- void DoneCurrent();
-
- GLFWwindow render_window_; ///< Internal GLFW render window
-
-private:
-
-};
-
-#endif // VIDEO_CORE_EMUWINDOW_GLFW_
diff --git a/src/common/src/emu_window.h b/src/common/src/emu_window.h
index 08f7d4766..56ff94819 100644
--- a/src/common/src/emu_window.h
+++ b/src/common/src/emu_window.h
@@ -1,7 +1,7 @@
/**
* Copyright (C) 2005-2012 Gekko Emulator
*
- * @file emuwindow.h
+ * @file emu_window.h
* @author Neobrain
* @date 2012-06-01
* @brief Interface for implementing an emulator window manager
@@ -26,12 +26,11 @@
#define CORE_EMUWINDOW_H_
#include "common.h"
-#include "config.h"
-namespace input_common
-{
-class KeyboardInput;
-}
+//namespace input_common
+//{
+//class KeyboardInput;
+//}
// Abstraction class used to provide an interface between emulation code and the frontend (e.g. SDL,
// QGLWidget, GLFW, etc...)
@@ -62,10 +61,10 @@ public:
* @brief Called from KeyboardInput constructor to notify EmuWindow about its presence
* @param controller_interface Pointer to a running KeyboardInput interface
*/
- void set_controller_interface(input_common::KeyboardInput* controller_interface) {
- controller_interface_ = controller_interface;
- }
- input_common::KeyboardInput* controller_interface() { return controller_interface_; }
+ //void set_controller_interface(input_common::KeyboardInput* controller_interface) {
+ // controller_interface_ = controller_interface;
+ //}
+ //input_common::KeyboardInput* controller_interface() { return controller_interface_; }
Config config() { return config_; }
void set_config(Config val) { config_ = val; }
@@ -80,11 +79,11 @@ public:
void set_window_title(std::string val) { window_title_ = val; }
protected:
- EmuWindow() : controller_interface_(NULL), client_area_width_(640), client_area_height_(480) {
+ EmuWindow() : client_area_width_(640), client_area_height_(480) {
char window_title[255];
- sprintf(window_title, "gekko [%s|%s] - %s",
- common::g_config->CPUCoreTypeToString(common::g_config->powerpc_core()).c_str(),
- common::g_config->RenderTypeToString(common::g_config->current_renderer()).c_str(),
+ sprintf(window_title, "akiru [%s|%s] - %s",
+ "null-cpu",
+ "null-renderer",
__DATE__);
window_title_ = window_title;
}
@@ -98,9 +97,6 @@ protected:
private:
Config config_; ///< Internal configuration
- input_common::KeyboardInput* controller_interface_;
-
- DISALLOW_COPY_AND_ASSIGN(EmuWindow);
};
#endif // CORE_EMUWINDOW_H_
diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj
index c976d292e..22fc96fe2 100644
--- a/src/core/core.vcxproj
+++ b/src/core/core.vcxproj
@@ -44,31 +44,31 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -180,6 +180,9 @@
{dfe335fc-755d-4baa-8452-94434f8a1edb}
+
+
+
--
cgit v1.2.3