From d708e2d68a53524ea40e86ebd6157adbdb5b8712 Mon Sep 17 00:00:00 2001
From: ShizZy <shizzy@6bit.net>
Date: Thu, 5 Sep 2013 18:33:46 -0400
Subject: [PATCH] added core and mem_map files to the project

---
 src/akiru/src/akiru.h         | 24 ++++++------
 src/core/core.vcxproj         |  3 ++
 src/core/core.vcxproj.filters |  3 ++
 src/core/src/core.cpp         | 48 +++++++++++++++++++++++-
 src/core/src/core.h           | 70 +++++++++++++++++++++++++++++++++++
 src/core/src/mem_map.cpp      | 52 ++++++++++++++++++++++++++
 src/core/src/mem_map.h        | 58 +++++++++++++++++++++++++++++
 7 files changed, 244 insertions(+), 14 deletions(-)
 create mode 100644 src/core/src/core.h
 create mode 100644 src/core/src/mem_map.cpp
 create mode 100644 src/core/src/mem_map.h

diff --git a/src/akiru/src/akiru.h b/src/akiru/src/akiru.h
index a3b210922a..4752b961e7 100644
--- a/src/akiru/src/akiru.h
+++ b/src/akiru/src/akiru.h
@@ -1,12 +1,12 @@
-/*!
- * Copyright (C) 2005-2012 Gekko Emulator
+/**
+ * Copyright (C) 2013 Akiru Emulator
  *
- * \file    pcafe.h
- * \author  ShizZy <shizzy247@gmail.com>
- * \date    2012-02-11
- * \brief   Main entry point
+ * @file    akiru.cpp
+ * @author  ShizZy <shizzy247@gmail.com>
+ * @date    2013-09-04
+ * @brief   Main entry point
  *
- * \section LICENSE
+ * @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
@@ -22,14 +22,14 @@
  * http://code.google.com/p/gekko-gc-emu/
  */
 
-#ifndef PCAFE_PCAFE_H_
-#define PCAFE_PCAFE_H_
+#ifndef AKIRU_AKIRU_H_
+#define AKIRU_AKIRU_H_
 
 #include "version.h"
 
-#define APP_NAME        "gekko"
+#define APP_NAME        "akiru"
 #define APP_VERSION     "0.31-" VERSION
 #define APP_TITLE       APP_NAME " " APP_VERSION
-#define	COPYRIGHT       "Copyright (C) 2005-2012 Gekko Team"
+#define	COPYRIGHT       "Copyright (C) 2005-2012 Akiru Team"
 
-#endif // PCAFE_PCAFE_H_
\ No newline at end of file
+#endif // AKIRU_AKIRU_H_
diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj
index b413beba99..cd167af473 100644
--- a/src/core/core.vcxproj
+++ b/src/core/core.vcxproj
@@ -183,9 +183,12 @@
   <ItemGroup>
     <ClCompile Include="src\arm\disassembler\arm_disasm.cpp" />
     <ClCompile Include="src\core.cpp" />
+    <ClCompile Include="src\mem_map.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="src\arm\disassembler\arm_disasm.h" />
+    <ClInclude Include="src\core.h" />
+    <ClInclude Include="src\mem_map.h" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/src/core/core.vcxproj.filters b/src/core/core.vcxproj.filters
index 3c0ae87860..9d981b995b 100644
--- a/src/core/core.vcxproj.filters
+++ b/src/core/core.vcxproj.filters
@@ -5,6 +5,7 @@
     <ClCompile Include="src\arm\disassembler\arm_disasm.cpp">
       <Filter>arm\disassembler</Filter>
     </ClCompile>
+    <ClCompile Include="src\mem_map.cpp" />
   </ItemGroup>
   <ItemGroup>
     <Filter Include="arm">
@@ -18,5 +19,7 @@
     <ClInclude Include="src\arm\disassembler\arm_disasm.h">
       <Filter>arm\disassembler</Filter>
     </ClInclude>
+    <ClInclude Include="src\mem_map.h" />
+    <ClInclude Include="src\core.h" />
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/src/core/src/core.cpp b/src/core/src/core.cpp
index b5ac856480..4e956fde30 100644
--- a/src/core/src/core.cpp
+++ b/src/core/src/core.cpp
@@ -1,2 +1,46 @@
-void null() {
-}
\ No newline at end of file
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file    core.cpp
+ * @author  ShizZy <shizzy247@gmail.com>
+ * @date    2013-09-04
+ * @brief   Core of emulator
+ *
+ * @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 "core.h"
+
+namespace Core {
+
+/// Start the core
+void Start() {
+}
+
+/// Kill the core
+void Kill() {
+}
+
+/// Stop the core
+void Stop() {
+}
+
+/// Initialize the core
+int Init(EmuWindow* emu_window) {
+	return 0;
+}
+
+} // namespace
diff --git a/src/core/src/core.h b/src/core/src/core.h
new file mode 100644
index 0000000000..41429e8a3d
--- /dev/null
+++ b/src/core/src/core.h
@@ -0,0 +1,70 @@
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file    core.h
+ * @author  ShizZy <shizzy247@gmail.com>
+ * @date    2013-09-04
+ * @brief   Core of emulator
+ *
+ * @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_CORE_H_
+#define CORE_CORE_H_
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#include "common.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+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();
+
+/// Stop 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
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#endif // CORE_CORE_H_
diff --git a/src/core/src/mem_map.cpp b/src/core/src/mem_map.cpp
new file mode 100644
index 0000000000..3ff516cbdb
--- /dev/null
+++ b/src/core/src/mem_map.cpp
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file    mem_map.cpp
+ * @author  ShizZy <shizzy247@gmail.com>
+ * @date    2013-09-05
+ * @brief   Memory map - handles virtual to physical memory access
+ *
+ * @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 "mem_map.h"
+
+namespace Memory {
+
+u8 Read8(const u32 addr) {
+	return 0xDE;
+}
+
+u16 Read16(const u32 addr) {
+	return 0xDEAD;
+}
+
+u32 Read32(const u32 addr) {
+	return 0xDEADBEEF;
+}
+
+void Write8(const u32 addr, const u32 data) {
+}
+
+void Write16(const u32 addr, const u32 data) {
+}
+
+void Write32(const u32 addr, const u32 data) {
+}
+
+
+
+} // namespace
diff --git a/src/core/src/mem_map.h b/src/core/src/mem_map.h
new file mode 100644
index 0000000000..8ef6e58a2c
--- /dev/null
+++ b/src/core/src/mem_map.h
@@ -0,0 +1,58 @@
+/**
+ * Copyright (C) 2013 Akiru Emulator
+ *
+ * @file    mem_map.h
+ * @author  ShizZy <shizzy247@gmail.com>
+ * @date    2013-09-05
+ * @brief   Memory map - handles virtual to physical memory access
+ *
+ * @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_MEM_MAP_H_
+#define CORE_MEM_MAP_H_
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#include "common.h"
+#include "common_types.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+namespace Memory {
+
+extern u8* g_ram;
+extern u8* g_vram;
+
+extern u32 g_memory_size;
+extern u32 g_memory_mask;
+
+void Init();
+void Shutdown();
+
+u8 Read8(const u32 addr);
+u16 Read16(const u32 addr);
+u32 Read32(const u32 addr);
+
+void Write8(const u32 addr, const u32 data);
+void Write16(const u32 addr, const u32 data);
+void Write32(const u32 addr, const u32 data);
+
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#endif // CORE_MEM_MAP_H_
\ No newline at end of file