diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj
index c771f2e2d..90d0628f2 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 f75e6305c..039373047 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 7f6bb2b0e..a748ebbd7 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
+}
+
+/// Run the core CPU loop
+void RunLoop() {
+ // TODO(ShizZy): ImplementMe
+}
+
+/// Step the CPU one instruction
+void SingleStep() {
+}
+
+/// Halt the core
+void Halt() {
+ // TODO(ShizZy): ImplementMe
}
/// Kill the core
-void Kill() {
-}
-
-/// Stop 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 2270e46e2..f018ff6ed 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();
-/// Stop the core
+/// Step the CPU one instruction
+void SingleStep();
+
+/// 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 000000000..d35515c66
--- /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