From c71868a6b192f6893f41afe415a2b11ba0edb403 Mon Sep 17 00:00:00 2001 From: ShizZy Date: Thu, 26 Sep 2013 22:01:09 -0400 Subject: added system.h to project --- src/core/core.vcxproj | 1 + src/core/core.vcxproj.filters | 1 + src/core/src/core.cpp | 18 ++++++++++--- src/core/src/core.h | 28 +++++++------------- src/core/src/system.h | 61 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 22 deletions(-) create mode 100644 src/core/src/system.h (limited to 'src/core') diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj index c771f2e2..90d0628f 100644 --- a/src/core/core.vcxproj +++ b/src/core/core.vcxproj @@ -163,6 +163,7 @@ + diff --git a/src/core/core.vcxproj.filters b/src/core/core.vcxproj.filters index f75e6305..03937304 100644 --- a/src/core/core.vcxproj.filters +++ b/src/core/core.vcxproj.filters @@ -87,6 +87,7 @@ file_sys + diff --git a/src/core/src/core.cpp b/src/core/src/core.cpp index 7f6bb2b0..a748ebbd 100644 --- a/src/core/src/core.cpp +++ b/src/core/src/core.cpp @@ -29,14 +29,26 @@ namespace Core { /// Start the core void Start() { + // TODO(ShizZy): ImplementMe } -/// Kill the core -void Kill() { +/// Run the core CPU loop +void RunLoop() { + // TODO(ShizZy): ImplementMe +} + +/// Step the CPU one instruction +void SingleStep() { } -/// Stop the core +/// Halt the core +void Halt() { + // TODO(ShizZy): ImplementMe +} + +/// Kill the core void Stop() { + // TODO(ShizZy): ImplementMe } /// Initialize the core diff --git a/src/core/src/core.h b/src/core/src/core.h index 2270e46e..f018ff6e 100644 --- a/src/core/src/core.h +++ b/src/core/src/core.h @@ -35,34 +35,24 @@ class EmuWindow; namespace Core { -// State of the full emulator -typedef enum { - SYS_NULL = 0, ///< System is in null state, nothing initialized - SYS_IDLE, ///< System is in an initialized state, but not running - SYS_RUNNING, ///< System is running - SYS_LOADING, ///< System is loading a ROM - SYS_HALTED, ///< System is halted (error) - SYS_STALLED, ///< System is stalled (unused) - SYS_DEBUG, ///< System is in a special debug mode (unused) - SYS_DIE ///< System is shutting down -} SystemState; - - /// Start the core void Start(); -/// Kill the core -void Kill(); +/// Run the core CPU loop +void RunLoop(); + +/// Step the CPU one instruction +void SingleStep(); -/// Stop the core +/// Halt the core +void Halt(); + +/// Kill the core void Stop(); /// Initialize the core int Init(EmuWindow* emu_window); -extern SystemState g_state; ///< State of the emulator -extern bool g_started; ///< Whether or not the emulator has been started - } // namespace //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/core/src/system.h b/src/core/src/system.h new file mode 100644 index 00000000..d35515c6 --- /dev/null +++ b/src/core/src/system.h @@ -0,0 +1,61 @@ +/** + * Copyright (C) 2013 Citrus Emulator + * + * @file system.h + * @author ShizZy + * @date 2013-09-26 + * @brief Emulation of main system + * + * @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 CORE_SYSTEM_H_ +#define CORE_SYSTEM_H_ + +#include "file_sys/meta_file_system.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +namespace System { + +extern MetaFileSystem g_ctr_file_system; + +// State of the full emulator +typedef enum { + STATE_NULL = 0, ///< System is in null state, nothing initialized + STATE_IDLE, ///< System is in an initialized state, but not running + STATE_RUNNING, ///< System is running + STATE_LOADING, ///< System is loading a ROM + STATE_HALTED, ///< System is halted (error) + STATE_STALLED, ///< System is stalled (unused) + STATE_DEBUG, ///< System is in a special debug mode (unused) + STATE_DIE ///< System is shutting down +} State; + +extern volatile State g_state; + +void UpdateState(State state); +void Init(); +void RunLoopFor(int cycles); +void RunLoopUntil(u64 global_cycles); +void Shutdown(); + +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#endif // CORE_SYSTEM_H_ + \ No newline at end of file -- cgit v1.2.3